C语言课程设计报告学生成绩

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

C语言课程设计报告一、组员信息。组长:岳英明(信科092班学号0909281074)负责构思程序的大体算法,流程图,编写代码,检查错误。成员:孟琼瑶(信科092班学号0909281075)主要编写代码,查资料,界面设计。二、设计目的进一步加深、巩固学生所学专业课程(《C语言》)的基本理论知识,理论联系实际,进一步培养学生综合分析问题和解决问题的能力。掌握运用C语言独立地编写、调试应用程序和进行其它相关设计的技能。三、成绩管理系统主要功能1.输入记录2.用指定格式显示全部记录3.根据姓名查找记录4.根据姓名删除记录5.保存记录到文件6.按序号显示记录7.按姓名由小到大的顺序排序四、系统流程图开始结束选择操作输入数据排序显示数据查询删除输出界面插入数据退出系统按学号按姓名保存数据吧按景平均成绩选择7选择6选择5选择4选择3选择2选择1选择8按平均成绩高低i读取数据吧选择8三门成绩学号姓名五、界面设计此系统界面采用图形和数字化菜单设计。主界面设计如下:-----------------------------------------------------------------------------------------欢迎进入学生成绩管理系统-----制作者:武汉纺织大学理学院信科092班岳英明************************主菜单**********************1.登记学生资料2.删除学生资料3.查找学生资料4.修改学生资料5.保存学生资料6.退出系统*********************************************************六、程序代码#includestdio.h#includestdlib.h#includestring.hintshoudsave=0;/**/structstudent{charnum[10];/*学号*/charname[20];charsex[4];intcgrade;intmgrade;integrade;inttotle;intave;charneartime[10];/*最近更新时间*/};typedefstructnode{structstudentdata;structnode*next;}Node,*Link;voidmenu(){printf(*********************************主菜单*****************************************);printf(\t1登记学生资料\t\t\t\t\t2删除学生资料\n);printf(\t3查询学生资料\t\t\t\t\t4修改学生资料\n);printf(\t5保存学生资料\t\t\t\t\t0退出系统\n);printf(********************************************************************************\n);}voidprintstart(){printf(-----------------------------------------------------------------------\n);}voidWrong(){printf(\n=====提示:输入错误!\n);}voidNofind(){printf(\n=====提示:没有找到该学生!\n);}voidprintc()/*本函数用于输出中文*/{printf(学号\t姓名性别英语成绩数学成绩C语言成绩总分平均分\n);}voidprinte(Node*p)/*本函数用于输出英文*/{printf(%-12s%s\t%s\t%d\t%d\t%d\t%d\t%d\n,p-data.num,p-data.name,p-data.sex,p-data.egrade,p-data.mgrade,p-data.cgrade,p-data.totle,p-data.ave);}Node*Locate(Linkl,charfindmess[],charnameornum[])/*该函数用于定位连表中符合要求的接点,并返回该指针*/{Node*r;if(strcmp(nameornum,num)==0)/*按学号查询*/{r=l-next;while(r!=NULL){if(strcmp(r-data.num,findmess)==0)returnr;r=r-next;}}elseif(strcmp(nameornum,name)==0)/*按姓名查询*/{r=l-next;while(r!=NULL){if(strcmp(r-data.name,findmess)==0)returnr;r=r-next;}}return0;}voidAdd(Linkl)/*增加学生*/{Node*p,*r,*s;charnum[10];r=l;s=l-next;while(r-next!=NULL)r=r-next;/*将指针置于最末尾*/while(1){printf(请你输入学号(以'0'返回上一级菜单:));scanf(%s,num);if(strcmp(num,0)==0)break;while(s){if(strcmp(s-data.num,num)==0){printf(=====提示:学号为'%s'的学生已经存在,若要修改请你选择'4修改'!\n,num);printstart();printc();printe(s);printstart();printf(\n);return;}s=s-next;}p=(Node*)malloc(sizeof(Node));strcpy(p-data.num,num);printf(请你输入姓名:);scanf(%s,p-data.name);getchar();printf(请你输入性别:);scanf(%s,p-data.sex);getchar();printf(请你输入c语言成绩:);scanf(%d,&p-data.cgrade);getchar();printf(请你输入数学成绩:);scanf(%d,&p-data.mgrade);getchar();printf(请你输入英语成绩:);scanf(%d,&p-data.egrade);getchar();p-data.totle=p-data.egrade+p-data.cgrade+p-data.mgrade;p-data.ave=p-data.totle/3;/*信息输入已经完成*/p-next=NULL;r-next=p;r=p;shoudsave=1;}}voidQur(Linkl)/*查询学生*/{intsel;charfindmess[20];Node*p;if(!l-next){printf(\n=====提示:没有资料可以查询!\n);return;}printf(\n=====1按学号查找\n=====2按姓名查找\n);scanf(%d,&sel);if(sel==1)/*学号*/{printf(请你输入要查找的学号:);scanf(%s,findmess);p=Locate(l,findmess,num);if(p){printf(\t\t\t\t查找结果\n);printstart();printc();printe(p);printstart();}elseNofind();}elseif(sel==2)/*姓名*/{printf(请你输入要查找的姓名:);scanf(%s,findmess);p=Locate(l,findmess,name);if(p){printf(\t\t\t\t查找结果\n);printstart();printc();printe(p);printstart();}elseNofind();}elseWrong();}voidDel(Linkl)/*删除*/{intsel;Node*p,*r;charfindmess[20];if(!l-next){printf(\n=====提示:没有资料可以删除!\n);return;}printf(\n=====1按学号删除\n=====2按姓名删除\n);scanf(%d,&sel);if(sel==1){printf(请你输入要删除的学号:);scanf(%s,findmess);p=Locate(l,findmess,num);if(p){r=l;while(r-next!=p)r=r-next;r-next=p-next;free(p);printf(\n=====提示:该学生已经成功删除!\n);shoudsave=1;}elseNofind();}elseif(sel==2){printf(请你输入要删除的姓名:);scanf(%s,findmess);p=Locate(l,findmess,name);if(p){r=l;while(r-next!=p)r=r-next;r-next=p-next;free(p);printf(\n=====提示:该学生已经成功删除!\n);shoudsave=1;}elseNofind();}elseWrong();}voidModify(Linkl){Node*p;charfindmess[20];if(!l-next){printf(\n=====提示:没有资料可以修改!\n);return;}printf(请你输入要修改的学生学号:);scanf(%s,findmess);p=Locate(l,findmess,num);if(p){printf(请你输入新学号(原来是%s):,p-data.num);scanf(%s,p-data.num);printf(请你输入新姓名(原来是%s):,p-data.name);scanf(%s,p-data.name);getchar();printf(请你输入新性别(原来是%s):,p-data.sex);scanf(%s,p-data.sex);printf(请你输入新的c语言成绩(原来是%d分):,p-data.cgrade);scanf(%d,&p-data.cgrade);getchar();printf(请你输入新的数学成绩(原来是%d分):,p-data.mgrade);scanf(%d,&p-data.mgrade);getchar();printf(请你输入新的英语成绩(原来是%d分):,p-data.egrade);scanf(%d,&p-data.egrade);p-data.totle=p-data.egrade+p-data.cgrade+p-data.mgrade;p-data.ave=p-data.totle/3;printf(\n=====提示:资料修改成功!\n);shoudsave=1;}elseNofind();}voidDisp(Linkl){intcount=0;Node*p;p=l-next;if(!p){printf(\n=====提示:没有资料可以显示!\n);return;}printf(\t\t\t\t显示结果\n);printstart();printc();printf(\n);while(p){printe(p);p=p-next;}printstart();printf(\n);}voidTongji(Linkl){Node*pm,*pe,*pc,*pt,*pa;/*用于指向分数最高的接点*/Node*r=l-next;if(!r){printf(\n=====提示:没有资料可以统计!\n);return;}pm=pe=pc=pt=pa=r;while(r!=

1 / 15
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功