《学生成绩管理系统代码c语言编写21767.pdf》由会员分享,可在线阅读,更多相关《学生成绩管理系统代码c语言编写21767.pdf(17页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、 学生成绩管理系统代码c 语言编写 文件编码(GHTU-UITID-GGBKT-POIU-WUUI-8968)C 程序 学生管理系统/*Note:Your choice is C IDE*/#include stdio.h#includestdlib.h#includestring.h typedef struct student/定义学生 char name10;int number;char sex2;int math;int eglish;int clanguge;int average;student;typedef struct unit/定义接点 student date;stru
2、ct unit*next;unit;unit*build()/建立链表并返回指针 unit*p;if(p=(unit*)malloc(sizeof(unit)=NULL)printf(=初始化失败!);return 0;else p-next=NULL;p-date.number=0;/头结点存放学生人数 printf(初始化成功!n);return p;void add(unit*head)/增加学生 unit*p,*q;int m,n=0;q=head-next;p=(unit*)malloc(sizeof(unit);printf(=请输入新生姓名!n);gets(p-date.name
3、);fflush(stdin);printf(=请输入学号!n);while(n=0)scanf(%d,&m);fflush(stdin);if(q=NULL)n=1;while(q)if(q-date.number=m)printf(=你输入的学号与已有同学的学号相同,请重新输入!n);q=head-next;break;else q=q-next;if(q=NULL)n=1;p-date.number=m;printf(=请输入性别!n);gets(p-date.sex);fflush(stdin);printf(=请输入数学成绩n);scanf(%d,&m);fflush(stdin);
4、p-date.math=m;printf(=请输入英语成绩n);scanf(%d,&m);fflush(stdin);p-date.eglish=m;printf(=请输入c语言成绩n);scanf(%d,&m);fflush(stdin);p-date.clanguge=m;p-date.average=(p-date.math+p-date.eglish+p-date.clanguge);q=head-next;head-next=p;p-next=q;head-date.number+;void deletion(unit*head)/删除一名学生 unit*p=head-next,*q
5、=head;char N10;printf(=请输入你想删除的学生姓名!n);gets(N);fflush(stdin);if(p=NULL)printf(=系统无学生可删除!n);while(p)if(strcmp(p-date.name,N)=0)q-next=p-next;head-date.number-;printf(=删除%s成功!n,p-date.name);free(p);break;else p=p-next;q=q-next;if(p=NULL)printf(=你要删除的学生不存在,删除失败!n);int display(unit*head)/显示学生信息 unit*p=h
6、ead-next;int m,n=0;char N10;if(p=NULL)printf(=系统无学生!n);return 0;while(n=0)printf(*n);printf(=请选择你的操作!n);printf(=ttt1.显示所有t2.按姓名查找nttt3.按学号查找t4.返回主菜单n);scanf(%d,&m);fflush(stdin);switch(m)case 1:printf(n=该系统拥有%d名学生!nn,head-date.number);p=head-next;printf(t姓名t学号t性别t数学t英语tc语言t综合nn);while(p)printf(t%st%
7、dt%st%dt%dt%dt%dn,p-date.name,p-date.number,p-date.sex,p-date.math,p-date.eglish,p-date.clanguge,p-date.average);p=p-next;break;case 2:printf(=请输入查找姓名!n);gets(N);fflush(stdin);p=head-next;while(p)if(strcmp(p-date.name,N)=0)printf(t姓名t学号t性别t数学t英语tc语言t综合n);printf(t%st%dt%st%dt%dt%dt%dn,p-date.name,p-d
8、ate.number,p-date.sex,p-date.math,p-date.eglish,p-date.clanguge,p-date.average);break;else p=p-next;if(p=NULL)printf(=你要查的学生不存在!);break;case 3:printf(=请输入查找学号!n);scanf(%d,&m);fflush(stdin);p=head-next;while(p)if(p-date.number=m)printf(t姓名t学号t性别t数学t英语tc语言t综合n);printf(t%st%dt%st%dt%dt%dt%dn,p-date.nam
9、e,p-date.number,p-date.sex,p-date.math,p-date.eglish,p-date.clanguge,p-date.average);break;else p=p-next;if(p=NULL)printf(=你要查的学生不存在!n);break;case 4:n=1;break;return 1;int range(unit*head)/排序 unit*p=head,*q=head-next;int n,i,m=head-date.number;printf(*n);printf(ttt1.按学号t2.按成绩nn);printf(=请选择操作!n);sca
10、nf(%d,&n);fflush(stdin);if(q=NULL)printf(=无学生可排序!n);return 0;switch(n)case 2:for(i=0;inext;while(q-next)if(q-date.average)next-date.average)p-next=q-next;p=p-next;q-next=p-next;p-next=q;else p=p-next;q=q-next;break;case 1:for(i=0;inext;while(q-next)if(q-date.number)(q-next-date.number)p-next=q-next;
11、p=p-next;q-next=p-next;p-next=q;else p=p-next;q=q-next;break;printf(=排序成功!n);return 1;void menu()printf(n*主菜单*n);printf(ttt1.新建系统t2.添加学生nttt3.删除学生t4.查看信息nttt5.排列顺序t6.读取信息nttt7.保存信息t8.退出系统n);printf(=请选择你的操作!n);int save(unit*head)/保存 FILE*fp;unit*p;p=head;if(fp=fopen(d:学生,wb+)=NULL)printf(=保存失败!);retu
12、rn 0;while(p)fwrite(&(p-date),sizeof(student),1,fp);p=p-next;printf(=保存成功!);fclose(fp);return 1;unit*read()/读入系统学生信息 int i;unit*p,*q,*head;FILE*fp;if(head=(unit*)malloc(sizeof(unit)=NULL)printf(=开辟空间失败!);exit(1);else head-next=NULL;head-date.number=0;/头结点存放学生人数 q=head;if(fp=fopen(d:学生,rb)=NULL)print
13、f(=系统无学生!n);return 0;fread(&(q-date),sizeof(student),1,fp);for(i=0;idate.number;i+)if(p=(unit*)malloc(sizeof(unit)=NULL)printf(=读值失败!);exit(1);fread(&(p-date),sizeof(student),1,fp);p-next=q-next;q-next=p;fclose(fp);return head;void main()int m=0,n,i;unit*head;printf(*nn);printf(ttt*欢迎使用学生成绩管理系统*n);p
14、rintf(ntttttttt编译员:岳英明nn);printf(=正在读取系统信息.n);if(head=read()=0)printf(=是否新建?n);printf(ttt是(1)tt否(2)n);scanf(%d,&i);fflush(stdin);if(i=1)head=build();else if(i=2)exit(1);else printf(=信息导入成功!);while(m=0)menu();scanf(%d,&n);fflush(stdin);switch(n)case 1:head=build();break;case 2:add(head);break;case 3:deletion(head);break;case 4:display(head);break;case 5:range(head);break;case 6:head=read();if(head!=0)printf(=读取存盘成功!n);break;case 7:save(head);break;case 8:m=1;break;