您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 质量控制/管理 > 学生成绩管理系统c语言代码(供参考)
C程序学生管理系统以下是用c语言编写的学生成绩管理系统的简单代码,可以用vc运行(供参考)#includestdio.h#includestdlib.h#includestring.htypedefstructstudent//定义学生{charname[10];intnumber;charsex[2];intmath;integlish;intclanguge;intaverage;}student;typedefstructunit//定义接点{studentdate;structunit*next;}unit;unit*build()//建立链表并返回指针{unit*p;if((p=(unit*)malloc(sizeof(unit)))==NULL){printf(=初始化失败!);return0;}else{p-next=NULL;p-date.number=0;//头结点存放学生人数printf(初始化成功!\n);returnp;}}voidadd(unit*head)//增加学生{unit*p,*q;intm,n=0;q=head-next;p=(unit*)malloc(sizeof(unit));printf(=请输入新生姓名!\n);gets(p-date.name);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);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++;}voiddeletion(unit*head)//删除一名学生{unit*p=head-next,*q=head;charN[10];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);}}}intdisplay(unit*head)//显示学生信息{unit*p=head-next;intm,n=0;charN[10];if(p==NULL){printf(=系统无学生!\n);return0;}while(n==0){printf(******************************************************************************\n);printf(=请选择你的操作!\n);printf(=\t\t\t1.显示所有\t2.按姓名查找\n\t\t\t3.按学号查找\t4.返回主菜单\n);scanf(%d,&m);fflush(stdin);switch(m){case1:printf(\n=该系统拥有%d名学生!\n\n,head-date.number);p=head-next;printf(\t姓名\t学号\t性别\t数学\t英语\tc语言\t综合\n\n);while(p){printf(\t%s\t%d\t%s\t%d\t%d\t%d\t%d\n,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;case2: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%s\t%d\t%s\t%d\t%d\t%d\t%d\n,p-date.name,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(=你要查的学生不存在!);}}break;case3: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%s\t%d\t%s\t%d\t%d\t%d\t%d\n,p-date.name,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;case4:n=1;break;}}return1;}intrange(unit*head)//排序{unit*p=head,*q=head-next;intn,i,m=head-date.number;printf(*******************************************************************************\n);printf(\t\t\t1.按学号\t2.按成绩\n\n);printf(=请选择操作!\n》);scanf(%d,&n);fflush(stdin);if(q==NULL){printf(=无学生可排序!\n);return0;}switch(n){case2:for(i=0;im;i++)//按总分排序{p=head;q=head-next;while(q-next){if((q-date.average)(q-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;case1:for(i=0;i=m;i++)//按学号排序{p=head;q=head-next;while(q-next){if((q-date.number)(q-next-date.number)){p-next=q-next;p=p-next;q-next=p-next;p-next=q;}else{p=p-next;q=q-next;}}}break;}printf(=排序成功!\n);return1;}voidmenu(){printf(\n*********************************主菜单***************************************\n);printf(\t\t\t1.新建系统\t2.添加学生\n\t\t\t3.删除学生\t4.查看信息\n\t\t\t5.排列顺序\t6.读取信息\n\t\t\t7.保存信息\t8.退出系统\n);printf(=请选择你的操作!\n);}intsave(unit*head)//保存{FILE*fp;unit*p;p=head;if((fp=fopen(d:\\学生,wb+))==NULL){printf(=保存失败!);return0;}while(p){fwrite(&(p-date),sizeof(student),1,fp);p=p-next;}printf(=保存成功!);fclose(fp);return1;}unit*read()//读入系统学生信息{inti;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){printf(=系统无学生!\n);return0;}fread(&(q-date),sizeof(student),1,fp);for(i=0;ihead-date.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);returnhead;}voidmain(){intm=0,n,i;unit*head;printf(********************************************************************************\n\n);printf(\t\t\t*欢迎使用学生成绩管理系统*\n);printf(\n\t\t\t\t\t\t\t\t编译员:吹吹风\n\n);printf(=正在读取系统信息......\n);if((head=read())==0){printf(=是否新建?\n);printf(\t\t\t是(1)\t\t否(2)\n);scanf(%d,&i);fflush(stdin);if(i==1)head=build();elseif(i==2)exit(1);}elseprintf(=信息导入成功!);while(m==0){menu();scanf(%d,&n);fflush(stdin);switch(n){case1:head=build();break;case2:add(head);break;case3:deletion(head);break;case4:display(head);break;case5:range(head);break;case6:head=read();if(head!=0)printf(
本文标题:学生成绩管理系统c语言代码(供参考)
链接地址:https://www.777doc.com/doc-6522331 .html