版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、C语言学生成绩学习管理系统设计C语言学生成绩学习管理系统设计40/40C语言学生成绩学习管理系统设计.航空航天大学课程设计报告大作业名称:C语言课程设计大作业题目:学生成绩管理系统设计院(系):计算机学院专业:计算机科学与技术班级:学号:姓名:指导教师:完成日期:2016年12月24日word专业资料.目录第1章大纲设计11.1题目的容与要求.11.2整体结构.1第2章详细设计22.1主模块.22.2输入模块.32.3显示模块.32.4更正模块.42.5删除模块.42.6盘问模块.52.7统计模块.6第3章调试解析7第4章使用说明8参照文件12附录(程序清单)14word专业资料.第1章大纲设
2、计1.1题目的容与要求容:学生成绩信息包括:姓名、学号、语文、数学、英语。实现的主要功能有:)信息保护。包括学生成绩的输入、按学号删除、按学号更正等。信息盘问。输入学号或姓名,显示出该生三个科目的成绩,计算出三科总分并显示,按总分将全部学生成绩排序,显示出该生的名次。)成绩统计。先输入任意一个科目,接着选择a或b来分别显示平均分或统计分数段学生,若选择a,则直接显示出该科目的平均分;若选择b,则提示用户输入一个分数段,显示全部该科目属于该分数段的学生信息,并给出学生总数。要求:)系统以菜单方式工作。在不同样的界面为用户给出详细提示。)系统利用C语言实现,源程序要有合适的说明。)采用VC环境进行
3、运行调试。1.2整体结构本程序主要分为七个模块(功能模块图见图1.1):结构体模块,输入模块,显示模块,更正模块,删除模块,盘问模块,统计模块。结构体模块:建立一个结构体模块,为链表存信息用。输入模块:键盘输入word专业资料.每个学生的信息,并保存在文件中。显示模块:显示全部学生的详细信息。更正模块:更正某个学生的成绩信息。删除模块:删除某个学生的全部信息。盘问模块:盘问某个学生的详细信息。统计模块:经过功能选择,统计并显示某一科目的平均分或某分数段学生的详细信息。学生成绩管理系统主输显修删查统模入示改除询计块模模模模模模块块块块块块1.1功能模块图2章详细设计2.1主模块控制整个程序的运行
4、,控制菜单操作,经过主函数模块分别调用各个模块,实现各项功能,流程如图2.1所示。开始显示主菜单Y选0退出word专业资料.NNY1-6执行详细功能显示结果结束图主模块流程图说明:显示主菜单;选择不同样序号执行不同样功能;2.2输入模块输入全部学生信息并保存,流程如图2.2所示。input()printf(输入学号:);printf(输入姓名:);printf(第%d门成绩的分数:,j+1);计算总分、平均分printf(nn信息保存成功!恭贺!nn);结束word专业资料.图输入模块流程图说明:循环输入每个学生的信息;保存全部信息2.3显示模块显示全部学生的详细信息,流程图如2.3所示。Pr
5、int()显示信息图显示模块流程图结束说明:选择号好功能;显示全部学生的详细信息。2.4更正模块更正某个学生各个科目的成绩,流程图如2.4所示。xiugai()printf(n请输入要更正的同学的学号:);printf(n请输入要更正学生更正后的的信息n);printf(n更正成功!恭贺!n);Y可否连续更正?结束word专业资料.N图更正模块流程图说明:输入要更正学生的学号;输入要更正的科目信息;更正成功,可否要连续更正。是,连续;否,回到主菜单。2.5删除模块按学号删除某学生的全部信息,流程图如图2.5所示。word专业资料.shanchu()printf(n请输入要删除的同学的学号:);
6、printf(n该同学信息以下:n);Y可否删除?Yprintf(n删除成N功!恭贺!n);可否连续删除?N结束图删除模块流程图说明:输入要删除的学生的学号;显示该生信息,可否删除。是,删除;否,可否连续操作。可否连续删除。是,重复上述操作;否,退出回到主菜单。2.6盘问模块输入要盘问学生的学号,显示该生详细信息,流程图如图2.6所示。chaxun()printf(n请输入学生学号:);显示该生详细信息可否连续盘问?YN图盘问模块流程图结束word专业资料.说明:输入要盘问的学生的学号;显示该生的详细信息;可否连续盘问。是,连续盘问下一位;否,回到主菜单。2.7统计模块经过选择不同样功能,显示
7、某个科目的平均分或某分数段学生的详细信息,流程图如图2.7所示。tongji()printf(n输入一个科目:);casea:caseb:选择功能a或b计算该科目平printf(n请输入分数均分段:_空格_n);printf(nn该科目的平显示属于该分数段均成绩为:%.2fn,ave);的学生;学生总数可否连续盘问其他科目?YN结束图统计模块流程图说明:经过菜单项选择择科目;word专业资料.经过菜单项选择择a或b功能,分别显示该科目平均分或某分数段学生信息;可否连续盘问?是,连续;否,回到主菜单。第3章调试解析在此次课程设计中,程序编写的过程中遇到了很多问题,主若是函数实现方面问题很多。问题
8、1:盘问函数chaxun()中,会造成数据凌乱,原因是for循环中某行代码运用错误,以下:for(i=0;in;i+)if(stui.num=x)k=i;/*找到要盘问的同学学号,并用k记下其下标*/OutputOneStudent(k);OutputOneStudent(k);拿出后,盘问功能正常实现。正确编写以下:for(i=0;in;i+)if(stui.num=x)word专业资料.k=i;/*找到要盘问的同学学号,并用k记下其下标*/OutputOneStudent(k);问题2:统计函数tongji(),功能实现完后不能够回到主菜单。解决方法是,把功能函数gongneng()其中的
9、while循环删掉。第4章使用说明运行截图以下:输入成绩word专业资料.信息显示word专业资料.更正信息删除信息word专业资料.盘问信息6.1统计信息科目平均分word专业资料.6.2统计信息科目某分数段学生信息退出系统word专业资料.参照文件王敬华,C语言程序设计教程(第二版),清华大学初版社,2009年8月谭浩强,C语言程序设计教程(第二版),清华大学初版社,1999年12月谭浩强,C语言程序设计题解与上机指导,清华大学初版社,2000年11月田淑清,C语言程序设计指导与习题集,中国铁道初版社,2000年1月荣梅、梁晓林,VisualC+合用教程,冶金工业初版社,2004年附录(程
10、序清单)程序代码:#include#include#include#defineN3structstudentintnum;/学号word专业资料.charname20;/姓名floatscore3;/三门课成绩floatsum;/总分floataver;/平均分stuN;voidmenu();/主菜单功能voidinput();/输入信息到结构体中voidsave(intx);/保存stud.dat文件函数voidprint();/输出显示全部学生信息voidSaveAllStudent(intn);/保存全部学生信息voidxiugai(intn);/按学号更正成绩intshanchu(i
11、ntn);/按学号删除voidOutputOneStudent(inti);/盘问一个学生的信息voidchaxun(intn);/按学号盘问成绩voidtongji();/统计科目信息voidgongneng(intx);/a或b功能分别显示科目平均分或分数段学生信息intmain()word专业资料.printf(*n);printf(*n);printf(*Hwadee&学生成绩管理系统&Hwadee*n);printf(*n);printf(*nnn);printf(*欢迎使用*n);while(1)word专业资料.menu();return0;/*主菜单*/voidmenu()in
12、tchoice;intn=N;printf(n请选择功能:n);printf(n1:输入成绩n2:显示信息n3:更正成绩n4:删除信息n5:查询成绩n6:成绩统计n0:退出系统nn);printf(n请选择序号:n);scanf(%d,&choice);switch(choice)case1:input();save(N);word专业资料.break;case2:print();break;case3:xiugai(n);break;case4:shanchu(n);break;case5:chaxun(n);break;case6:tongji();break;case0:printf(n
13、感谢使用,再见!nn);exit(-1);break;default:word专业资料.printf(输入错误!n);break;/*写入函数*/voidinput()inti,j;printf(n输入信息n);for(i=0;iN;i+)printf(输入学号:);scanf(%d,&stui.num);printf(输入姓名:);scanf(%s,&);for(j=0;jN;j+)printf(第%d门成绩的分数:,j+1);scanf(%f,&stui.scorej);word专业资料.stui.sum=stui.score0+stui.score1+stui.scor
14、e2;stui.aver=stui.sum/3;printf(n);/*写入文件*/voidsave(intx)FILE*fp;/*定义文件指针用于向文件读入数据*/inti;if(fp=fopen(student.dat,rb+)=NULL)/*以二进制读,写方式打开文*/printf(cannotopenfilen);exit(1);for(i=0;iN;i+)word专业资料.if(fwrite(&stui,sizeof(structstudent),1,fp)!=1)printf(filewriteerrorn);fclose(fp);printf(nn信息保存成功!恭贺!nn);/*
15、显示全部学生信息*/voidprint()inti;printf(学号姓名语文数学英语总分平均分n);for(i=0;iN;i+)word专业资料.printf(%d%s%.2f%.2f%.2f%.2f%.2fn,stui.num,,stui.score0,stui.score1,stui.score2,stui.sum,stui.aver);/*保存全部学生信息*8*/voidSaveAllStudent(intn)FILE*fp;if(fp=fopen(student.dat,wb)=NULL)printf(文件打开失败!n);exit(1);fwrite(stu,siz
16、eof(structstudent),n,fp);fclose(fp);word专业资料./*更正学生信息*/voidxiugai(intn)structstudenttemp;intk=-1,x,i;charc1=y;while(c1=y)printf(n请输入要更正的同学的学号:);scanf(%d,&x);for(i=0;in;i+)if(x=stui.num)k=i;/*找到要更正的同学学号,并用k记下其下标*/break;word专业资料.if(k0)printf(n输入学号有误,请重新输入!);elseprintf(n请输入要更正学生更正后的的信息n);printf(语文(空格)数
17、学(空格)英语tn);scanf(%f%f%f,&temp.score0,&temp.score1,&temp.score2);temp.sum=(temp.score0+temp.score1+temp.score2);temp.aver=(temp.score0+temp.score1+temp.score2)/3;stuk.score0=temp.score0;/*更正该学生信息*/stuk.score1=temp.score1;stuk.score2=temp.score2;stuk.sum=temp.sum;stuk.aver=temp.aver;word专业资料.printf(n更
18、正成功!恭贺!n);break;SaveAllStudent(k);printf(n连续更正操作吗?);printf(n连续更正请按y;不进行更正请按nn);getchar();c1=getchar();printf(n按任意键连续!n);getchar();/*删除学生信息*/intshanchu(intn)inti,k=-1,x;word专业资料.charc1=y,c2;while(c1=y)c2=n;printf(n请输入要删除的同学的学号:);scanf(%d,&x);for(i=0;in;i+)if(x=stui.num)k=i;/*找到要删除的同学学号,并用k记下其下标*/brea
19、k;if(k0)printf(n输入学号有误,请重新输入!);word专业资料.elseprintf(n该同学信息以下:n);OutputOneStudent(k);printf(nn确定删除?n);printf(确定进行删除请按y;不进行删除请按nn);getchar();c2=getchar();if(c2=y)for(i=k;i3|x1)break;for(i=0;in;i+)if(stui.num=x)k=i;/*找到要盘问的同学学号,并用k记下其下标*/OutputOneStudent(k);stux-1.num=1;/该生排名for(j=0;jstux-1.sum)stux-1.n
20、um+;word专业资料.printf(n该生排名为第%d名。n,stux-1.num);printf(nn连续盘问其他学生信息吗?);printf(n连续盘问请按y;不进行盘问请按nn);getchar();c=getchar();printf(n按任意键连续!n);getchar();/*学生信息统计操作*/voidtongji()charc=y;while(c=y)word专业资料.intx;printf(n输入一个科目:);printf(nn1:语文n2:数学n3:英语n0:退出);printf(nn请选择序号:);scanf(%d,&x);if(x0&x6)switch(x)case
21、1:gongneng(x);break;case2:gongneng(x);break;case3:gongneng(x);word专业资料.break;case0:exit(-1);break;default:printf(输入错误!n);printf(nn连续盘问其他科目信息吗?);printf(n连续盘问请按y;不进行盘问请按nn);getchar();c=getchar();/*选择a或b来分别显示该科平均分或统计分数段学生*/voidgongneng(intx)printf(nn请选择功能:n);word专业资料.printf(na:显示该科目平均分nb:统计分数段学生n);printf(n请选择a或b:);charc;scanf(%s,&c);switch(c)casea:floatave;ave=(stu0.scorex-1+stu1.
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 中途接班班主任工作经验总结
- 垂体瘤患者护理查房 (1)课件
- 河南大学《高等数学》课件-空间解析几何
- 2026年运动半身裙行业分析报告及未来发展趋势报告
- 2026年胸苷行业分析报告及未来发展趋势报告
- 2026年税控电脑加油机行业分析报告及未来发展趋势报告
- 重症疾病康复的标准治疗方案总结2026
- 2026年黑颈龟养殖行业分析报告及未来发展趋势报告
- 2026年步进式衰减器行业分析报告及未来发展趋势报告
- 2026年村卫生室行业分析报告及未来发展趋势报告
- 2026年北京市海淀区初三一模化学试卷(含答案)
- 2026年上海市嘉定区高三下学期二模化学试卷和答案
- 钉钉内部审批制度流程
- 2026中国东方航空第二期国际化储备人才招聘备考题库及参考答案详解一套
- 模具加工异常奖惩制度
- 【答案】《人工智能数学思维与应用》(杭州电子科技大学)章节期末慕课答案
- 2025年水下机器人探测精度五年技术报告
- 2025年中核集团校招笔试题库及答案
- 医疗设备人员培训方案范文
- 安徽交控集团所属安徽交控资源有限公司2026年校园招聘备考题库完整参考答案详解
- “欧普照明杯”城市照明行业电工理论考试题库(附答案)
评论
0/150
提交评论