学生成绩管理系统(C语言课设 )

这个学生成绩管理系统使用C语言编写,具有多项功能以方便管理学生信息和成绩。首先从文件中读取数据到系统中,并提供了多种功能(增删改查等)选项以满足不同的需求。

学生成绩管理系统功能:

  1. 显示学生信息
  2. 增加学生信息
  3. 删除学生信息
  4. 修改学生信息
  5. 查询学生信息
  6. 总分降序排序学生成绩
  7. 统计学生平均成绩
  8. 统计每科平均成绩
  9. 统计信息录入系统中人数
  10. 输出总成绩最高的学生信息
  11. 退出

运行示例:
请添加图片描述运行之后要自己先往系统里面增加学生数据哦

请添加图片描述

注意:因为设涉及到文件操作,需要把下面文件读取和保存函数中的文件位置修改为自己所要保存的文件位置或者按照如下操作建立文件:

  1. 打开D盘新建一个文件夹名字叫 学生成绩管理系统 (名字要一模一样哦)
    请添加图片描述

  2. 在该文件夹中新建文本文档命名为 xscjglxt (如下图:)
    在这里插入图片描述

目录

  • 1.函数声明
  • 2.结构体和全局变量定义
  • 3.主函数和主菜单函数
  • 4.显示学生信息
  • 5.增加学生信息
  • 6.删除学生信息
  • 7.修改学生信息
  • 8.查询学生信息
  • 9.总分降序排序学生成绩
  • 10.统计学生平均成绩
  • 11.统计每科平均成绩
  • 12.统计信息录入系统中人数
  • 13.输出总成绩最高的学生信息
  • 14.从文件中读取数据(*==注意这里的文件位置要改为自己的==)
  • 15.将数据保存至文件(*==注意这里的文件位置要改为自己的==)
  • 16.源代码

1.函数声明

void regist();//登录界面
void findid();//按照学号索引查询
void show();//查看所有的学生成绩信息
void del();//删除学生信息
void edit();//修改学生信息
void add();//添加学生信息
void mysort();//总分降序排序
void avegxs();//查询学生成绩平均值大于90的学生成绩
void avegkm();//查询学生成绩平均值小于60的学生成绩
void save();//保存学生信息到文件
void load();//从文件读取学生信息到内存
void menu();//菜单总录入人数
void maxn();//输出系统中总成绩最大的学生信息

2.结构体和全局变量定义

typedef struct student
{char id[15];//学生学号char name[50];//学生姓名char sex[10];//学生性别char great[50];//学生班级int E,M,Y;//学生的英语、数学、语文成绩float ave;//学生的平均成绩int all;//学生的总成绩
}student;student students[100];
static int length;//保存当前系统中的人数

3.主函数和主菜单函数

主函数运行之后首先从文件中读取学生信息到系统当中,然后显示系统菜单提供多种功能让用户选择。

//主函数
int main()
{printf("登陆成功!");load();//从文件中读取信息到内测menu();//菜单
}
void menu()//菜单
{while(1){regist();int n;scanf("%d",&n);switch(n){case 1:show();break;case 2:add();break;case 3:del();break;case 4:edit();break;case 5:findid();break;case 6:mysort();break;case 7:avegxs();break;case 8:avegkm();break;case 9:cens();break;case 10:maxn();break;case 11:exit(0);}save();printf("按任意键继续\n");getchar();getchar();system("cls");}}
void regist()//登录界面
{printf("\n\n\t*****************************学生信息管理系统******************************\n");printf("\t*                              1.显示学生信息                             *|\n");printf("\t*                              2.增加学生信息                             *|\n");printf("\t*                              3.删除学生信息                             *|\n");printf("\t*                              4.修改学生信息                             *|\n");printf("\t*                              5.查询学生信息                             *|\n");printf("\t*                              6.总分降序排序学生成绩                     *|\n");printf("\t*                              7.统计学生平均成绩                         *|\n");printf("\t*                              8.统计每科平均成绩                         *|\n");printf("\t*                              9.统计信息录入系统中人数                   *|\n");printf("\t*                              10.输出总成绩最高的学生信息                *|\n");printf("\t*                              11.退出                                    *|\n");printf("\t***************************************************************************\n");printf("请输入你要进行的操作:\n");
}

4.显示学生信息

这里会将系统中所有的学生信息显示到屏幕上

void show()//查看所有的学生成绩信息
{printf("------------------------------------------------------------------------------------------------------------------------\n");printf("学生姓名|\t学号\t|\t班级\t| 性别 | 语文成绩 | 数学成绩 | 英语成绩 | 总成绩 \n");printf("------------------------------------------------------------------------------------------------------------------------\n");for(int i =0;i<length;i++){printf("\n%s\t|  %s\t|  %s\t|  %s  |    %d    |    %d    |    %d    |    %d    \n",students[i].name,students[i].id,students[i].great,students[i].sex,students[i].Y,students[i].M,students[i].E,students[i].all);printf("------------------------------------------------------------------------------------------------------------------------\n");}
}

5.增加学生信息

增加学生信息时会进行判定是否系统当中内存已满或者该学号已存在则不可以添加该学生信息(学号唯一)。

void add()//添加学生信息
{int flag=0;if(length>=100){printf("该班级人数已满!!!");}else{printf("请输入学生信息:\n");printf("学生姓名:");char op[50];scanf("%s",op);printf("学生学号:");char opp[50];scanf("%s",opp);for(int i=0;i<length;i++){if(strcmp(opp,students[i].id)==0)flag=1;}if(flag==1){printf("警告!!!该学号已存在!!!请返回修改!!!");return;}strcpy(students[length].name,op);strcpy(students[length].id,opp);printf("学生班级:");scanf("%s",students[length].great);printf("请输入学生性别:");scanf("%s",students[length].sex);printf("语文成绩:");scanf("%d",&students[length].Y);printf("数学成绩:");scanf("%d",&students[length].M);printf("英语成绩:");scanf("%d",&students[length].E);students[length].all=students[length].Y+students[length].M+students[length].E;students[length].ave=((float)(students[length].Y+students[length].M+students[length].E)/3);length++;}
}

6.删除学生信息

根据学生学号对学生信息进行删除

void del()//删除学生信息
{printf("请输入该学生的学号:\n");char op[50];int flag=0;scanf("%s",op);for(int i=0;i<length;i++){if(strcmp(students[i].id,op)==0){for(int j=i;j<length-1;j++)students[j]=students[j+1];flag=1;length--;break;}}if(!flag)printf("不存在该学号学生!!!请重新输入!!!\n");
}

7.修改学生信息

void edit()//修改学生信息
{printf("请输入该学生学号:\n");char op[50];char opp[50];int flag=0;scanf("%s",op);for(int i=0;i<length;i++){if(strcmp(students[i].id,op)==0){printf("请输入该学生新的信息:\n");strcpy(students[i].id,opp);printf("班级:");scanf("%s",students[i].great);printf("性别:");scanf("%s",students[i].sex);printf("语文成绩:");scanf("%d",&students[i].Y);printf("数学成绩:");scanf("%d",&students[i].M);printf("英语成绩:");scanf("%d",&students[i].E);students[i].ave=(students[i].Y+students[i].E+students[i].M)/3;students[i].all=students[i].Y+students[i].E+students[i].M;flag=1;break;}}if(flag==0)printf("该学生不存在\n");
}

8.查询学生信息

根据学号对学生信息进行查询

void findid()//按照学号索引查询
{printf("请输入学生学号:\n");char op[15];int flag=0;scanf("%s",op);for(int i=0;i<length;i++){if(strcmp(students[i].id,op)==0){printf("------------------------------------------------------------------------------------------------------------------------\n");printf("学生姓名|\t学号\t|\t班级\t| 性别 | 语文成绩 | 数学成绩 | 英语成绩 | 总成绩 \n");printf("\n%s\t|  %s\t|  %s\t|  %s  |    %d    |    %d    |    %d    |    %d\n",students[i].name,students[i].id,students[i].great,students[i].sex,students[i].Y,students[i].M,students[i].E,students[i].all);printf("------------------------------------------------------------------------------------------------------------------------\n");flag=1;}}if(!flag){printf("不存在该学号的学生\n");}
}

9.总分降序排序学生成绩

通过冒泡排序对学生信息按照学生总成绩从高到低进行排序

void mysort()//总分降序排序
{student vis;for(int i=0;i<length;i++)for(int j=0;j<length-i-1;j++){if(students[j].all<students[j+1].all){vis=students[j];students[j]=students[j+1];students[j+1]=vis;}}show();
}

10.统计学生平均成绩

void avegxs()//查询学生成绩平均值
{printf("------------------------------------------------------------------------------------------------------------------------\n");printf("学生姓名|\t学号\t|\t班级\t| 性别 | 语文成绩 | 数学成绩 | 英语成绩 | 平均成绩 \n");printf("------------------------------------------------------------------------------------------------------------------------\n");for(int i=0;i<length;i++){//if(students[i].ave>90)//{printf("\n%s\t|  %s\t|  %s\t|  %s  |    %d    |    %d    |    %d    |    %.2lf    \n",students[i].name,students[i].id,students[i].great,students[i].sex,students[i].Y,students[i].M,students[i].E,students[i].all*1.0/length);printf("------------------------------------------------------------------------------------------------------------------------\n");//}}
}

11.统计每科平均成绩

void avegkm()//查询各门平均值
{printf("------------------------------------------------------------------------------------------------------------------------\n");printf("语文成绩 | 数学成绩 | 英语成绩 \n");printf("------------------------------------------------------------------------------------------------------------------------\n");double ans1=0,ans2=0,ans3=0;for(int i=0;i<length;i++){ans1+=students[i].Y;ans2+=students[i].M;ans3+=students[i].E;}ans1=ans1*1.0/length;ans2=ans2*1.0/length;ans3=ans3*1.0/length;printf("\n%.2lf    |    %.2lf    |    %.2lf    \n",ans1,ans2,ans3);printf("------------------------------------------------------------------------------------------------------------------------\n");}

12.统计信息录入系统中人数

void cens()
{printf("系统中共有%d个人的信息\n",length);
}

13.输出总成绩最高的学生信息

void maxn()//查询学生成绩最高的学生信息
{int vis=students[0].all;for(int i=1;i<length;i++){if(students[i].all>vis)vis=students[i].all;}for(int i=0;i<length;i++){if(students[i].all==vis){printf("------------------------------------------------------------------------------------------------------------------------\n");printf("学生姓名|\t学号\t|\t班级\t| 性别 | 语文成绩 | 数学成绩 | 英语成绩 | 总成绩 \n");printf("------------------------------------------------------------------------------------------------------------------------\n");printf("\n%s\t|  %s\t|  %s\t|  %s  |    %d    |    %d    |    %d    |    %d    \n",students[i].name,students[i].id,students[i].great,students[i].sex,students[i].Y,students[i].M,students[i].E,students[i].all);printf("------------------------------------------------------------------------------------------------------------------------\n");}}
}

14.从文件中读取数据(*注意这里的文件位置要改为自己的)

void load()//从文件读取学生信息到内存
{FILE *fp=fopen("D:\\学生成绩管理系统\\xscjglxt.txt","r");if(fp==NULL){printf("文件打开失败\n");}int i=0;while(fscanf(fp,"%s %s %s %s %d %d %d %f %d\n",students[i].id,students[i].name,students[i].great,students[i].sex,&students[i].Y,&students[i].M,&students[i].E,&students[i].ave,&students[i].all)==9){i++;}length=i;fclose(fp);
}

15.将数据保存至文件(*注意这里的文件位置要改为自己的)

void save()//保存学生信息到文件
{FILE *fp=fopen("D:\\学生成绩管理系统\\xscjglxt.txt","w");for(int i=0;i<length;i++){fprintf(fp,"%s %s %s %s %d %d %d %f %d\n",students[i].id,students[i].name,students[i].great,students[i].sex,students[i].Y,students[i].M,students[i].E,students[i].ave,students[i].all);}fclose(fp);
}

16.源代码

这是博主在两年前大一时写的内容,代码中还有许多不足的地方可以优化,请大佬们谅解。
有问题欢迎联系博主QQ:1187574742

#include<stdio.h>
#include<string.h>
void regist();//登录界面
void findid();//按照学号索引查询
void show();//查看所有的学生成绩信息
void del();//删除学生信息
void edit();//修改学生信息
void add();//添加学生信息
void mysort();//总分降序排序
void avegxs();//查询学生成绩平均值大于90的学生成绩
void avegkm();//查询学生成绩平均值小于60的学生成绩
void save();//保存学生信息到文件
void load();//从文件读取学生信息到内存
void menu();//菜单总录入人数
void maxn();//输出系统中总成绩最大的学生信息
typedef struct student
{char id[15];char name[50];char sex[10];char great[50];int E,M,Y;float ave;int all;
}student;student students[100];
static int length;int main()
{printf("登陆成功!");load();//从文件中读取信息到内侧menu();//菜单
}void regist()//登录界面
{printf("\n\n\t*****************************学生信息管理系统******************************\n");printf("\t*                              1.显示学生信息                             *|\n");printf("\t*                              2.增加学生信息                             *|\n");printf("\t*                              3.删除学生信息                             *|\n");printf("\t*                              4.修改学生信息                             *|\n");printf("\t*                              5.查询学生信息                             *|\n");printf("\t*                              6.总分降序排序学生成绩                     *|\n");printf("\t*                              7.统计学生平均成绩                         *|\n");printf("\t*                              8.统计每科平均成绩                         *|\n");printf("\t*                              9.统计信息录入系统中人数                   *|\n");printf("\t*                              10.输出总成绩最高的学生信息                *|\n");printf("\t*                              11.退出                                    *|\n");printf("\t***************************************************************************\n");printf("请输入你要进行的操作:\n");
}
void findid()//按照学号索引查询
{printf("请输入学生学号:\n");char op[15];int flag=0;scanf("%s",op);for(int i=0;i<length;i++){if(strcmp(students[i].id,op)==0){printf("------------------------------------------------------------------------------------------------------------------------\n");printf("学生姓名|\t学号\t|\t班级\t| 性别 | 语文成绩 | 数学成绩 | 英语成绩 | 总成绩 \n");printf("\n%s\t|  %s\t|  %s\t|  %s  |    %d    |    %d    |    %d    |    %d\n",students[i].name,students[i].id,students[i].great,students[i].sex,students[i].Y,students[i].M,students[i].E,students[i].all);printf("------------------------------------------------------------------------------------------------------------------------\n");flag=1;}}if(!flag){printf("不存在该学号的学生\n");}
}
void show()//查看所有的学生成绩信息
{printf("------------------------------------------------------------------------------------------------------------------------\n");printf("学生姓名|\t学号\t|\t班级\t| 性别 | 语文成绩 | 数学成绩 | 英语成绩 | 总成绩 \n");printf("------------------------------------------------------------------------------------------------------------------------\n");for(int i =0;i<length;i++){printf("\n%s\t|  %s\t|  %s\t|  %s  |    %d    |    %d    |    %d    |    %d    \n",students[i].name,students[i].id,students[i].great,students[i].sex,students[i].Y,students[i].M,students[i].E,students[i].all);printf("------------------------------------------------------------------------------------------------------------------------\n");}
}
void del()//删除学生信息
{printf("请输入该学生的学号:\n");char op[50];int flag=0;scanf("%s",op);for(int i=0;i<length;i++){if(strcmp(students[i].id,op)==0){for(int j=i;j<length-1;j++)students[j]=students[j+1];flag=1;length--;break;}}if(!flag)printf("不存在该学号学生!!!请重新输入!!!\n");
}
void edit()//修改学生信息
{printf("请输入该学生学号:\n");char op[50];char opp[50];int flag=0;scanf("%s",op);for(int i=0;i<length;i++){if(strcmp(students[i].id,op)==0){printf("请输入该学生新的信息:\n");strcpy(students[i].id,opp);printf("班级:");scanf("%s",students[i].great);printf("性别:");scanf("%s",students[i].sex);printf("语文成绩:");scanf("%d",&students[i].Y);printf("数学成绩:");scanf("%d",&students[i].M);printf("英语成绩:");scanf("%d",&students[i].E);students[i].ave=(students[i].Y+students[i].E+students[i].M)/3;students[i].all=students[i].Y+students[i].E+students[i].M;flag=1;break;}}if(flag==0)printf("该学生不存在\n");
}
void add()//添加学生信息
{int flag=0;if(length>=100){printf("该班级人数已满!!!");}else{printf("请输入学生信息:\n");printf("学生姓名:");char op[50];scanf("%s",op);printf("学生学号:");char opp[50];scanf("%s",opp);for(int i=0;i<length;i++){if(strcmp(opp,students[i].id)==0)flag=1;}if(flag==1){printf("警告!!!该学号已存在!!!请返回修改!!!");return;}strcpy(students[length].name,op);strcpy(students[length].id,opp);printf("学生班级:");scanf("%s",students[length].great);printf("请输入学生性别:");scanf("%s",students[length].sex);printf("语文成绩:");scanf("%d",&students[length].Y);printf("数学成绩:");scanf("%d",&students[length].M);printf("英语成绩:");scanf("%d",&students[length].E);students[length].all=students[length].Y+students[length].M+students[length].E;students[length].ave=((float)(students[length].Y+students[length].M+students[length].E)/3);length++;}
}
void mysort()//总分降序排序
{student vis;for(int i=0;i<length;i++)for(int j=0;j<length-i-1;j++){if(students[j].all<students[j+1].all){vis=students[j];students[j]=students[j+1];students[j+1]=vis;}}show();
}
void maxn()//查询学生成绩最高的学生信息
{int vis=students[0].all;for(int i=1;i<length;i++){if(students[i].all>vis)vis=students[i].all;}for(int i=0;i<length;i++){if(students[i].all==vis){printf("------------------------------------------------------------------------------------------------------------------------\n");printf("学生姓名|\t学号\t|\t班级\t| 性别 | 语文成绩 | 数学成绩 | 英语成绩 | 总成绩 \n");printf("------------------------------------------------------------------------------------------------------------------------\n");printf("\n%s\t|  %s\t|  %s\t|  %s  |    %d    |    %d    |    %d    |    %d    \n",students[i].name,students[i].id,students[i].great,students[i].sex,students[i].Y,students[i].M,students[i].E,students[i].all);printf("------------------------------------------------------------------------------------------------------------------------\n");}}
}
void avegxs()//查询学生成绩平均值
{printf("------------------------------------------------------------------------------------------------------------------------\n");printf("学生姓名|\t学号\t|\t班级\t| 性别 | 语文成绩 | 数学成绩 | 英语成绩 | 平均成绩 \n");printf("------------------------------------------------------------------------------------------------------------------------\n");for(int i=0;i<length;i++){//if(students[i].ave>90)//{printf("\n%s\t|  %s\t|  %s\t|  %s  |    %d    |    %d    |    %d    |    %.2lf    \n",students[i].name,students[i].id,students[i].great,students[i].sex,students[i].Y,students[i].M,students[i].E,students[i].all*1.0/length);printf("------------------------------------------------------------------------------------------------------------------------\n");//}}
}
void avegkm()//查询各门平均值
{printf("------------------------------------------------------------------------------------------------------------------------\n");printf("语文成绩 | 数学成绩 | 英语成绩 \n");printf("------------------------------------------------------------------------------------------------------------------------\n");double ans1=0,ans2=0,ans3=0;for(int i=0;i<length;i++){ans1+=students[i].Y;ans2+=students[i].M;ans3+=students[i].E;}ans1=ans1*1.0/length;ans2=ans2*1.0/length;ans3=ans3*1.0/length;printf("\n%.2lf    |    %.2lf    |    %.2lf    \n",ans1,ans2,ans3);printf("------------------------------------------------------------------------------------------------------------------------\n");}
void save()//保存学生信息到文件
{FILE *fp=fopen("D:\\学生成绩管理系统\\xscjglxt.txt","w");for(int i=0;i<length;i++){fprintf(fp,"%s %s %s %s %d %d %d %f %d\n",students[i].id,students[i].name,students[i].great,students[i].sex,students[i].Y,students[i].M,students[i].E,students[i].ave,students[i].all);}fclose(fp);
}
void load()//从文件读取学生信息到内存
{FILE *fp=fopen("D:\\学生成绩管理系统\\xscjglxt.txt","r");if(fp==NULL){printf("文件打开失败\n");}int i=0;while(fscanf(fp,"%s %s %s %s %d %d %d %f %d\n",students[i].id,students[i].name,students[i].great,students[i].sex,&students[i].Y,&students[i].M,&students[i].E,&students[i].ave,&students[i].all)==9){i++;}length=i;fclose(fp);
}
void cens()
{printf("系统中共有%d个人的信息\n",length);
}
void menu()//菜单
{while(1){regist();int n;scanf("%d",&n);switch(n){case 1:show();break;case 2:add();break;case 3:del();break;case 4:edit();break;case 5:findid();break;case 6:mysort();break;case 7:avegxs();break;case 8:avegkm();break;case 9:cens();break;case 10:maxn();break;case 11:exit(0);}save();printf("按任意键继续\n");getchar();getchar();system("cls");}}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/486801.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

VegaPrime 2013 VP2013

Vega Prime 2013 VegaPrime 2013 VP2013

lxml库和Xpath提取网页数据的基础与实战:完整指南与实战【第92篇—提取网页】

使用lxml库和Xpath提取网页数据的基础与实战 在网络爬虫和数据抓取中&#xff0c;从网页中提取所需信息是一项常见的任务。lxml库和Xpath是Python中用于解析和提取HTML/XML数据的强大工具。本文将介绍lxml库的基础知识&#xff0c;以及如何使用Xpath表达式来准确地提取网页数据…

安卓游戏开发之音频技术优劣分析

一、引言 在安卓游戏开发中&#xff0c;音频处理技术扮演着至关重要的角色&#xff0c;它不仅能够增强游戏的沉浸感和玩家体验&#xff0c;还能通过声音效果传达关键的游戏信息。以下将对几种常见的安卓游戏音频处理技术进行优劣分析&#xff0c;并结合应用场景来阐述其特点。 …

Hackme 1

信息收集 Nmap部分 存活扫描&#xff1a; └─# nmap -sn 192.168.10.1/24 Starting Nmap 7.94SVN ( https://nmap.org ) at 2024-02-20 15:00 CST Nmap scan report for 192.168.10.1 (192.168.10.1) Host is up (0.00012s latency). MAC Address: 00:50:56:C0:00:08 (VMwar…

[算法沉淀记录] 排序算法 —— 归并排序

排序算法 —— 归并排序 算法介绍 归并排序是一种分治算法&#xff0c;由约翰冯诺伊曼在1945年发明。它的工作原理是将未排序的列表划分为n个子列表&#xff0c;每个子列表包含一个元素(包含一个元素的列表被认为是有序的)&#xff0c;然后重复合并子列表以生成新的有序子列表…

.netcore 6.0/7.0项目迁移至.netcore 8.0 注意事项

1、SqlSugarCore 相关 1.1 主项目添加数据&#xff0c;否则会报数据库连接错误&#xff1a; <InvariantGlobalization>false</InvariantGlobalization> <PropertyGroup><TargetFramework>net8.0</TargetFramework><Nullable>enable</…

sambamba — samtools 的高效平替工具

sambamba — samtools 的高效平替工具 sambamba 是一个 BAM 文件处理工具。 sambamba 它使用了 D 语言的多线程和异步 IO 特性&#xff0c;实现了高效的并行化处理。sambamba 可以在多核 CPU 上同时运行多个任务&#xff0c;利用硬盘和内存的带宽&#xff0c;提高了处理速度。…

Protocol Buffers v21.12 安装 ( linux 系统 )

下载 Protocol Buffers v21.12 Protocol Buffers v21.12 解压 tar zxvf protobuf-cpp-3.21.12.tar.gz执行 进入解压目录&#xff0c;执行下面configure可执行程序&#xff0c;目的是监测安装环境&#xff0c;生成makefile ./configure执行完后可以检查是否生成makefile文件 构…

短视频新媒体的福音:视频抽插帧AI效率是人工的100倍以上

进入全民短视频时代&#xff0c;人像视频的拍摄也正在迈向专业化。随着固化审美的瓦解&#xff0c;十级磨皮的网红滤镜被打破&#xff0c;多元化的高级质感成为新的风向标&#xff0c;“美”到每一帧是人们对动态视频提出的更高要求。 目前&#xff0c;大部分手机均可记录主流的…

PLC_博图系列☞基本指令“赋值”

PLC_博图系列☞基本指令“赋值” 文章目录 PLC_博图系列☞基本指令“赋值”背景介绍&#xff1a;赋值说明参数示例 关键字&#xff1a; PLC、 西门子、 博图、 Siemens 、 赋值 背景介绍 这是一篇关于PLC编程的文章&#xff0c;特别是关于西门子的博图软件。我并不是专业的…

使用Postman和JMeter进行signature签名

一、前言 ​ 有些接口的请求会带上sign&#xff08;签名&#xff09;进行请求&#xff0c;各接口对sign的签名内容、方式可能不一样&#xff0c;但一般都是从接口的入参中选择部分内容组成一个字符串&#xff0c;然后再进行签名操作, 将结果赋值给sign; 完整规范的接口文档都会…

WebService学习,wsdl文件详解

目录 第一章、起因1.1&#xff09;学习原因1.2&#xff09;提问的过程&#xff08;逐步提出问题&#xff09;1、&#xff1f;wsdl链接的含义&#xff0c;有什么作用&#xff1f;2、什么是wsdl文档&#xff1f;3、如何阅读wsdl文件&#xff1f;4、wsdl文件有什么作用&#xff1f…