




已阅读5页,还剩14页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
课程设计报告书学生成绩管理系统班 级学 号:姓 名:指导老师:目录1、 题目要求-12、 设计思想-33、 系统完成功能及框图-34、 界面设计-45、 核心算法及说明-76、 结论-167、 参考资料-168、 后记-16摘要:学生成绩管理系统提供了强大的学生成绩管理管理功能,方便系统管理员对学生成绩等信息的添加,修改,删除,查询,留言等操作,同时一样的方面学生对自己各科成绩查询,学习的交流.随着科学技术的不断提高,计算机科学日渐成熟,其强大的功能已为人们深刻认识,它已进入人类社会的各个领域并发挥着越来越重要的作用.作为计算机应用的一部分,使用计算机对学生成绩信息进行管理,有着手工管理所无法比拟的优点.1、题目要求题目七:学生成绩管理系统设计学生成绩信息包括:学期,学号,班别,姓名,四门课程成绩(语文、数学、英语和计算机)等。主要功能:(1) 能按学期、按班级完成对学生成绩的录入、修改(2) 能按班级统计学生的成绩,求学生的总分及平均分(3) 能查询学生成绩,不及格科目及学生名单(4) 能按班级输出学生的成绩单要求:使用二进制文件方式存储数据,系统以菜单方式工作2、设计思想我们设计的学生成绩管理系统共有7个功能,所涉及到的函数有按回车返回主菜单、查询、保存、输入、修改、输出、统计等等。这是一个关于学生成绩的管理系统,所以就会涉及到一系列问题,例如:去各科成绩的总和、平均值、不几个学生的科目及对应的成绩。这个程序的整个思路就是按照要求写出相应的程序并使之能够运行。首先,写出所有能够用到的库函数,并设计出能够显示主菜单的程序。其次按照主菜单设计出所有的有关程序。再次,由于这个程序会用到结构体所以会涉及到“将数据从结构体数组保存到文件中” 、“将数据从文件读到结构体数组中”这两个程序。为了使程序更完美还涉及了主函数的显示。最后,就可以按照主菜单进行一系列的操作。其实,这些程序的设计都是根据以前学过的只是进行的简单的程序的叠加。没有什么可以害怕或是担心的。3、系统完成功能及框图退出程序查看所有同学信息输入学生记录修改学生记录按班级查询成绩查询不及格同学成绩统计4、界面设计主菜单运行1后界面运行4后界面运行5后界面5、核心算法及说明#include #include #include #include #define MAX 300struct student char cla10; /班级 char term10; /学期 char name10; / 姓名 char no10; / 学号 float ch; /语文 float ma; /数学 float en; /英语 float com; /计算机;struct data int count; / 当前学生数组中学生的个数 struct student stuMAX; / 学生数组 dd; / 显示主菜单void menu() system(cls); printf(n); printf(ttt*n); printf(ttt* *n); printf(ttt* 学生成绩管理系统 *n); printf(ttt* *n); printf(ttt* 0 退出 *n); printf(ttt* 1 查看所有学生信息 *n); printf(ttt* 2 输入学生记录 *n); printf(ttt* 3 修改学生记录 *n); printf(ttt* 4 查询(班级) *n); printf(ttt* 5 查询(不及格记录) *n); printf(ttt* 6 成绩统计 *n); printf(ttt* *n); printf(ttt*n); / 等待用户按回车后回到主菜单void to_menu() char c1,c2; printf(nnn按回车键返回主菜单.); scanf(%c%c,&c1,&c2); menu(); / 查看所有学生信息void view_data() int i; printf(班级t学期t姓名t学号t语文t数学t英语t计算机); printf(n-n); for(i=0;idd.count;i+) printf(%st%st%st%st%.1ft%.1ft%.1ft%.1fn,dd.stui.cla,dd.stui.term,,dd.stui.no,dd.stui.ch,dd.stui.ma,dd.stui.en,); / 将数据从结构体数组保存到文件中void save_data() FILE *fp; int i,k; k=dd.count; fp=fopen(c:/dada.txt,w); fwrite(&k,sizeof(int),1,fp); for(i=0;ik;i+) fwrite(&dd.stui,sizeof(struct student),1,fp); fclose(fp); / 输入学生记录(按班级和学期)void add_data() struct student st; int b; int i,k,j; char term10,cla10; printf(请输入所要录入的学生的班级:); scanf(%s,cla); printf(请输入所要录入的学期:); scanf(%s,term); while(1) j=0; printf(n请输入学生信息:); printf(n姓名t学号t语文t数学t英语t计算机); printf(n-n); scanf(%s%s%f%f%f%f,,st.no,&st.ch,&st.ma,&st.en,&); for(i=0;idd.count;i+) if(strcmp(dd.stui.no,st.no)=0&strcmp(dd.stui.term,term)=0) if(strcmp(dd.stui.no,st.no)=0) printf(n信息已存在,请重新输入!n); j=1; break; if(j=1) continue; if(j=0) k = dd.count; strcpy(dd.stuk.cla,cla);strcpy(dd.stuk.term,term); strcpy(,); strcpy(dd.stuk.no,st.no); dd.stuk.ch=st.ch; dd.stuk.ma=st.ma; dd.stuk.en=st.en; =; dd.count+; printf(nn继续添加学生信息1-yes 0-no:); scanf(%d,&b); if(b=0) break; save_data();/ 将数据从文件读到结构体数组中void read_data()FILE *fp;int i,k;struct student st;k=0;if(access(c:/dada.txt,0)=-1)/ 如果文件不存在fp=fopen(c:/dada.txt,w);fwrite(&k,sizeof(int),1,fp);fclose(fp);fp=fopen(c:/dada.txt,r);fread(&k,sizeof(int),1,fp);dd.count=k;for(i=0;ik;i+)fread(&st,sizeof(struct student),1,fp); strcpy(dd.stui.cla,st.cla); strcpy(dd.stui.term,st.term);strcpy(,);strcpy(dd.stui.no,st.no);dd.stui.ch=st.ch; dd.stui.ma=st.ma; dd.stui.en=st.en; =;fclose(fp);/ 修改学生成绩记录(按班级和学期)void edit_data()char cla10,term10; int i;float ch,ma,en,com; printf(请输入所要修改记录的班级:); scanf(%s,cla); printf(请输入所要修改记录的学期:); scanf(%s,term);for(i=0;idd.count;i+)if(strcmp(dd.stui.cla,cla)=0&strcmp(dd.stui.term,term)=0) printf(n姓名:%s,学号:%s,,dd.stui.no);printf(n请修改学生数据:); printf(n语文成绩:); scanf(%f,&ch); dd.stui.ch=ch; printf(n数学成绩:); scanf(%f,&ma); dd.stui.ma=ma; printf(n英语成绩:); scanf(%f,&en); dd.stui.en=en; printf(n计算机成绩:); scanf(%f,&com); =com;printf(nn编辑学生记录成功!); save_data();/ 按班级输出成绩单void query_data_cla()int i;char cla10;printf(n请输入要查询成绩的班级:);scanf(%s,cla);for(i=0;idd.count;i+)if(strcmp(dd.stui.cla,cla)=0) printf(班级t学期t姓名t学号t语文t数学t英语t计算机); printf(n-n); printf(%st%st%st%st%.1ft%.1ft%.1ft%.1fn,dd.stui.cla,dd.stui.term,,dd.stui.no,dd.stui.ch,dd.stui.ma,dd.stui.en,); /查询不及格科目的学生名单void query_data_pass() int i,s=0; char cla10,term10; printf(请输入所要查询的班级:); scanf(%s,cla); printf(请输入所要查询的学期:); scanf(%s,term); for(i=0;idd.count;i+) if(strcmp(dd.stui.term,term)=0&strcmp(dd.stui.cla,cla)=0) printf(n姓名:%s,学号:%s 的不及格科目有:,,dd.stui.no); if(dd.stui.ch60)printf(语文t);s+; s=0; if(dd.stui.ma60)printf(数学t);s+; s=0; if(dd.stui.en60)printf(英语t);s+;s=0; if(60)printf(计算机t);s+;s=0; if(s=0)printf(0科); /成绩统计(按班级和学期)求总分和平均分void count_data()char cla10,term10; int i,k=0;float sum4=0.0,average4; printf(请输入所要统计记录的班级:); scanf(%s,cla); printf(请输入所要统计记录的学期:); scanf(%s,term); for(i=0;idd.count;i+) if(strcmp(dd.stui.cla,cla)=0&strcmp(dd.stui.term,term)=0) k+; sum0+=dd.stui.ch; sum1+=dd.stui.ma; sum2+=dd.stui.en; sum3+=; average0=sum0/k; average1=sum1/k; average2=sum2/k; average3=sum3/k; printf(n所查询%s班级%s学期的各科总分为:n,cla,term); printf(语文t数学t英语t计算机); printf(n-n); printf(%.1ft%.1ft%.1ft%.1ft,sum0,sum1,sum2,sum3); printf(n所查询%s班级%s学期的各科平均分为:n,cla,term); printf(语文t数学t英语t计算机); printf(n-n); printf(%.1ft%.1ft%.1ft%.1ft,average0,average1,average2,average3);/ 主函数void main()int fun;read_data();menu();while(1)printf(请输入功能号0-8:,&fun);scanf(%d,&fun);switch(fun)case 0:/ 退出break;case 1:/ 查看所有学生信息view_data();break;case 2:/按班级和学期输入学生记录add_data();break;case 3:/ 按班级和学期修改学生记录edit_data();break;case 4:/ 查询(按班级)query_data_cla();break; case 5: /查询不及格学生及科目(按照班级和学期) query_data_pass(); break; case 6:/ 成绩统计(按班级和学期求平均分和总分)count_data(); break;if(fun=0) break;to_menu();相关程序分析1、查看所有学生信息 先定义相关变量,然后设计输入输出程序。输出所要查询的东西,并设计好输出的形式,这是很重要的一点。这样就可以查看到所有已存的学生信息了2、按班级查询 同样先定义变量,然后按照要求设计所要输出的文字。主要应用for循环对已存的所有的学生信息进行输出。3、查询不及格的记录 同样还是先定义变量,设计出要按照班级和学期查询不几个同学的记录。对于每一科又要进行验证所以涉及到了S+,最后还要有S=0的设计,是
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 机电设备安装电气安全防护方案
- 水泥与混凝土配比优化方案
- 水稻贪青课件
- 机电设备安装气动控制系统方案
- 园区创新资源对接方案
- 水电站税务知识培训课件
- 支气管哮喘口腔医10课件
- 水电收费课件
- 2025版海洋工程设计与施工合同样本
- 2025版国际金融合作贷款合同范本(含信用证)
- MissionPlanner地面站操作使用文档
- 中级采气工操作技能鉴定要素细目表
- 油水气井带压井作业操作规程及工艺技术要求
- (33)-钠钾泵细胞生物学
- 配电室巡检记录表
- 紧急宫颈环扎术的手术指征及术后管理
- GB/T 242-2007金属管扩口试验方法
- 政治理论水平任职资格考试题库
- 路基压实度汇总表
- 【食品生产加工技术】香肠的加工技术
- 贫困户访谈记录
评论
0/150
提交评论