您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 管理学资料 > C语言课程设计-学生成绩管理系统
C语言课程设计报告:学生成绩管理系统系统需求一、当前学生信息:通过结构体structstudent来保存学生的姓名,学号,性别,语文,数学,英语和计算机等等相关信息,并且通过cin函数来进行给当前学生输入初始信息.二、学生成绩查询:输入一个学号,在文件中查找此学生,若找到则输出此学生的全部信息和成绩;若找不到则输出查找失败的信息.同时也可以全部把各科的平均成绩,最高和最低分输出。三、新生插入:通过给该生的学号来和原班上的学生的学号比较大小,若大就在后,若小则靠前排,将此生的信息保存下来。四、输出全部学生信息和全部学生成绩。五、退出系统.六、附加说明:系统将来完善的功能有:可以通过性别来模糊查询,也可以通过姓名的姓来先进行模糊查询,以便后面精确查找。总体设计一、仔细阅读系统要求,首先将此系统化分为如下模块(即如下函数)1、输入初始的学生信息:其中包括学生的姓名、学号和性别以及学生的语文、数学、英语和计算机等相关信息;可用函数cin(stu*p1)来实现此操作。2、查询模块:可用stu*lookdata(stu*p1)来实现。找到就输出此学生全部信息包括学生的语文、数学、英语和计算机等的成绩。3、插入模块:可用insert()函数来实现。其中通过学号的大小来比较的,并且以此来排序。4、输出学生的信息以及成绩:通过学生的姓名来查看学生的语文、数学、英语和计算机等相关成绩,同时也可以分别通过caverage()、maverage()、eaverage()和comaverage()来输出语文、数学、英语和计算机等成绩的平均分数、最高和最低分数。5、退出系统:可用一个函数exit()来实现,首先将信息保存到文件中,释放动态创建的内存空间,再退出此程序。二、系统主模块结构图:详细设计一、界面设计此系统界面采用图形和数字化菜单设计。主界面设计如下:学生成绩管理系统请选择相应的数字执行相应的功能:1:是否输入其他数据2:查看数据3:插入数据4:查找数据5:更新数据6:保留数据7:显示或打印数据8:语文成绩状况9:数学成绩状况10:英语成绩状况11:计算机成绩状况12:?13:退出系统二、数据结构设计:程序设计中用到的结构体类型:学生信息结构体类型:typedefstructstudent{charname[MAX];intnum[MAX];charsex[MAX];intchinese;intmathematic;intenglish;intcomputer;structstudent*next;}程序代码://原始密码是123456#includestdio.h#includestddef.h#includestddef.h#includestring.h#defineMAX10typedefstructstudent{/*定义结构体*/charname[MAX];/*姓名*/intnum[MAX];/*学号*/charsex[MAX];/*性别*/intchinese;/*语文*/intmathematic;/*数学*/intenglish;/*英语*/intcomputer;/*计算机*/structstudent*next;/*结构体指针*/}stu;stu*head;/*头指针*/voidprint()/*显示或打印函数*/{system(cls);printf(\t\t\tScoreManageSystem\n);/*成绩管理系统*/printf(1EnterRecord\t);/*输入数据*/printf(2Display\t);/*显示*/printf(3Insert\t);/*插入数据*/printf(4Quest\t);/*访问数据*/printf(5Update\t);/*以前数据*/printf(6Save\t);/*保留数据*/printf(7Fresh\t);/*更新数据*/printf(8ChineseAverage\t);/*语文平均成绩*/printf(9MathAverage\t);/*数学平均成绩*/printf(10EnglishAverage\t);/*英语平均成绩*/printf(11ComputerAverage\t);/*计算机平均成绩*/printf(12Quit\t\n);/*退出*/}voidcin(stu*p1)/*输入相关数据的函数*/{printf(Entername:\n);scanf(%s,&p1-name);printf(Enternum:\n);scanf(%d,&p1-num);printf(Entersex:\n);scanf(%s,&p1-sex);printf(Enterscore:\n);printf(Enterchinese:\n);scanf(%d,&p1-chinese);printf(Entermath:\n);scanf(%d,&p1-mathematic);printf(EnterEnglish:\n);scanf(%d,&p1-english);printf(EnterComputer:\n);scanf(%d,&p1-computer);}stu*cindata()/*其他数据是否继续输入的函数*/{stu*p1,*p2;inti=1;charch;p1=(stu*)malloc(sizeof(stu));head=p1;while(i){cin(p1);printf(DoyouWanttoContinue?yesorno);/*是否继续输入数据*/ch=getchar();ch=getchar();if(ch=='n'||ch=='N'){i=0;p1-next=NULL;}else{p2=p1;p1=(stu*)malloc(sizeof(stu));p2-next=p1;}}return(p1-next);}stu*lookdata(stu*p1)/*查看数据的函数*/{while(p1!=NULL){printf(Num:%d\t,p1-num);printf(Name:%s\t,p1-name);printf(Sex:%s\t,p1-sex);printf(\n);printf(Chinese:%d\t,p1-chinese);printf(Math:%d\t,p1-mathematic);printf(English:%d\t,p1-english);printf(Computer:%d\t,p1-computer);printf(\n);p1=p1-next;}returnp1;}voidinsert()/*通过比较学号来插入数据的函数*/{stu*p1,*p3,*p2;charch;p1=head;p3=(stu*)malloc(sizeof(stu));p3-next=NULL;if(head==NULL){head=p3;return;}cin(p3);while(p1!=NULL&&(p1-nump3-num))/*通过学号的比较来插入*/{p2=p1;p1=p1-next;}if(p2==head){p3-next=head;head=p3;return;}p3-next=p1;p2-next=p3;}find(stu*p2)/*通过姓名查找查看数据的函数*/{charname[20];intb=0;printf(Enterthenameofthestudentyouwanttofind:);/*通过姓名查看*/scanf(%s,name);while(p2!=NULL){if(strcmp(name,p2-name)==0){printf(Thedatayouwanthasbefound\n);printf(Name:%s\t,p2-name);printf(Num:%d\t,p2-num);printf(sex%s\t,p2-sex);printf(\n);printf(Chinese:%d\t,p2-chinese);printf(Math:%d\t,p2-mathematic);printf(English:%d\t,p2-english);printf(Computer:%d\t,p2-computer);printf(\n);b=1;}elseif(b==0)printf(sorrynotfinddata!);p2=p2-next;}if(b==1){print();printf(Findone\n);}else{print();printf(Notfind\n);}}voidcaverage()/*求各学生语文平均分、最高和最低分成绩的函数*/{stu*p1;inti;floatmax=0.0,min=200.0;floatsum=0.0,aver=0;p1=head;if(p1==NULL)printf(notdata!);else{for(i=0;p1!=NULL;i++,p1=p1-next)sum+=p1-chinese;aver=sum/i;p1=head;for(i=0;p1!=NULL;i++,p1=p1-next){if(maxp1-chinese)max=p1-chinese;}p1=head;for(i=0;p1!=NULL;i++,p1=p1-next)if(minp1-chinese)min=p1-chinese;}printf(ChineseAverage:%f,aver);printf(ChineseMax:%f,max);printf(ChineseMin:%f,min);}voidmaverage()/*求各学生数学平均分、最高和最低分成绩的函数*/{stu*p1;inti;floatmax=0.0,min=200.0;floatsum=0.0,aver=0;p1=head;if(p1==NULL)printf(notdata!);else{for(i=0;p1!=NULL;i++,p1=p1-next)sum+=p1-mathematic;aver=sum/i;p1=head;for(i=0;p1!=NULL;i++,p1=p1-next){if(maxp1-mathematic)max=p1-mathematic;}p1=head;for(i=0;p1!=NULL;i++,p1=p1-next)if(minp1-mathematic)min=p1-mathematic;}printf(MatheAverage:%f,aver);printf(MatheMax:%f,max);printf(MatheMin:%f,min);}voideaverage()/*求各学生英语平均分、最高和最低分成绩的函数*/{stu*p1;inti;floatmax=0.0,min=200.0;floatsum=0.0,aver=0;p1=head;if(p1==NULL)printf(notdata!);else{for(i=0;p1!=NULL;i++,p1=p1-next)sum+=p1-english;aver=sum/i;p1=head;for(i=0;p1!=NULL;i++,p1=p1-next){if(maxp1-english)max=p1-english;}p1=head;for(i=0;p1!=NULL;i++,p1=p1-next)if(minp1-english)min=p1-english;}printf(EnglishAverage:%f,aver);printf(EnglishMax:%f,max);printf(EnglishMin:%f,min);}voidcomaverage()/*求各学生计算机平均分、最高和最低分成绩的函数*/{stu*p1;inti;floatmax=
本文标题:C语言课程设计-学生成绩管理系统
链接地址:https://www.777doc.com/doc-5853695 .html