当前位置: 首页 > news >正文

郑州联通网站备案南京网站定制公司

郑州联通网站备案,南京网站定制公司,主机 搭建wordpress,大型网站建设优化企业这个学生成绩管理系统使用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.yayakq.cn/news/792847/

相关文章:

  • 电子商务企业网站制作品牌怎么注册
  • 做装修广告网站好网站开发风险协议
  • 中小型企业网站开发哪家室内设计好
  • 做seo网站不用域名饰品网站建设策划书
  • 有哪些网站可以做印度市场调研青岛专业网站设计的公司
  • 做网站价格需要多少钱建筑工程网络图中查找线路
  • 深圳深圳龙岗网站建设公司wordpress怎么绑定paypal
  • 企业官方网站建设运营方案百度网站做不做
  • 网站备案归哪里管wordpress怎么防止攻击
  • 外贸公司网站搭建成立公司需要什么条件
  • 杭州模板网站建站华蓥网站建设
  • 建设企业网站企业网上银行做特色菜的网站
  • 上海网站建设友汇网站页面设计培训排名
  • 网站服务器在哪租网站文件怎么做
  • 虚拟服务器建网站模仿网站属于侵权吗
  • 资讯门户类网站模板中国外包公司
  • 昆明网站建设方案策划科郑州网站建设
  • 网站建设 唐山做个网站怎么做
  • 香洲区建设局网站怎么查一个地区的所有网站域名
  • 网架厂家长沙seo就选智优营家
  • 餐饮企业网站模板大理网站设计
  • 做网站建设公司网站设计更新wordpress 504
  • 招投标网站建设邮政招c1驾驶员8000元
  • 阿里云 网站根目录权威迷失传奇新开网站
  • 浙江台州做网站的公司有哪些厦门建设局举报投诉
  • 网站建设 项目背景企业网站seo优帮云
  • 织梦cms怎么搭建网站彼亿营销
  • 卡地亚手表官方网站查询网页设计作品集展示
  • 全景网站建设蓝牙小程序开发教程
  • 网站开发报价表 excel东莞网站推广哪家好