版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、西北师范大学xxxx计算机与电子信息工程系 课程设计报告书课程名称: c语言程序设计 专 业: 计算机科学与技术(网络应用与技术) 课题名称: 学生成绩管理 班 级: 学 号: 姓 名: 指导教师: 2014-2015 学年 第二学期 学生成绩管理 (难易程度:中)1. 课程设计要求学习成绩管理系统的主要要求为:1) 能按学期、按班级完成对学生成绩的录入、修改2) 能按班级统计学生的成绩,求学生的总分及平均分3) 能查询学生成绩,不及格科目及学生名单4) 能按班级输出学生的成绩单2. 设计目的及意义课题的设计旨在训练我们的基本编程能力,使我们熟悉c语言图形模式下的编程。本程序中涉及结构体、数组
2、、绘图等方面的知识。通过本程序的训练,使我们能对c语言有一个更深刻的了解。开发一个学生成绩管理系统,采用计算机对学生成绩进行管理。3. 课题说明 本系统主要用于对学生的成绩进行管理。通过本系统,可以将各个学生的成绩记录输入到系统中,保存到文件,便于查阅和相关管理。此外,该系统还能实现对学生成绩记录的显示,查询以及插入或删除学生的成绩记录等功能。4. 功能模块图学生成绩管理系统输入学生资料输出学生成绩查找显示学生成绩按照姓名查找修改学习资料显示所有学生名单查找删除学生信息从文件中读取信息保存学生资料退出程序5. 功能描述 主要功能用来对学生的成绩进行收集和输入。在学生信息保存在系统中的前提下,成
3、绩录入需要输入学生资料,比如班级,学号,姓名。在准确输入学生资料后,就可以对该学生的各科成绩进行录入。该学生各科成绩输入成功后,系统会提示是否继续进行操作,如果想继续输入学生成绩就输入y,不想再输入学生成绩的话就输入n,再输入n之后,系统返回到主菜单。输入学生资料是得分学期来进行处理,执行一次该模块只能输入一个学期的学生信息。在此过程中每输入一个学生的信息,通过循环在输入完成时将学生个数返回给n,case1中就是利用n=input(stud,n)这一赋值过程来执行该函数中的输入过程。输入完成后按任意键即可返回菜单。6. 执行住流程图 开始输入指令10输 入学生资料查找显示成绩修改资料显示名单查
4、找删除信息读取查找信息保存资料输出成绩123456789退出 7. 程序运行结果8. 设计过程遇到的问题 在输入了学生成绩之后,若不退出程序继续读取文件,同一个学生的信息会多次输出。输入的数据长度有要求,不能够输入的太长否则就会输出结果排列不整齐甚至无法输出数据。输入学生成绩时只能连续输入相同学期的学生。输入的学生成绩等信息相同时如姓名,程序不提示出错,不能处理。 同时好多地方都不懂,不明白其中的原理,做起来不上手。9. 课题总结第一次做这种设计面广、综合性强的课程设计刚开始难度还是有点大的,主要是在函数调用方面容易出现混乱,刚开始的时候功能少还容易解决,写到后面再在综合起来就容易出现问题。尤
5、其是在修改删除函数中要调用文件操作函数,查找函数,然后找到具体删除的可行性办法还是不太容易,最后采用后一项覆盖前一项的方法解决。10.设计课题感想 这学期我们学习了c+这一编程语言,学的很浅薄,平时都只能编一些比较小的程序。这次课程设计花了很长时间,学到了不少的知识,开拓了视野。并且,本设计不像平时编写的程序,运行一下直接推出操作界面。而是可以像一个计算机上使用的软件一样,可以不用退出系统,继续使用其功能,只需要在主函数中调用一个循环即可。除此之外,还学习到了课程设计的流程相关的知识。不过大多属于网上搜的,自己的能力很弱不能做出来。 附录 代码#include#include#include#
6、include#include#include#includeusing namespace std;typedef classpublic:int cls;char nam10;char num10;int chinese;int english;int computer;int math;student;student stud1100,stud2100;int menu()char a;while(a7|a0)system(cls);std:cout 欢迎使用学生成绩管理系统 ;std:coutstd:endl;std:cout* 学生成绩管理系统 * std:endl;std:cout
7、setw(32) 1.输入学生成绩 std:endl;std:coutsetw(32) 2.输出学生成绩endl;std:coutsetw(32) 3.查找并显示学生成绩endl;std:coutsetw(32) 4.按姓名查找,修改学生资料endl;std:coutsetw(32) 5.显示所有学生名单endl;std:coutsetw(32) 6.查找并删除学生信息endl;std:coutsetw(32) 7.从文件读取数据endl;std:coutsetw(32) 0.储存学生资料并退出系统endl;std:coutsetfill(=)setw(80)=endl;std:cout请选择
8、(0-7)endl;std:coutsetw(35) ;a=getchar();return(a-0);/*/int input(student stud,int n) /输入数据(第一学期)。 int i=0; char sign,x10; for(;sign !=n&sign !=n;) std:coutsetw(15) studn+i.nam; std:coutsetw(15) studn+i.cls; std:coutsetw(15) studn+i.num; std:coutsetw(15) studn+i.chinese; std:coutsetw(15) studn+i.math
9、; std:coutsetw(15) studn+i.english; std:coutsetw(15) studn+puter; gets(x); std:coutsetw(10) ; std:cout&sign; i+; return(n+i);/*输出数据*/void display(student stud, int n)int i; std:coutsetw(15) setfill(-)setw(65)-endl; std:coutsetw(15) 班级 学号 姓名 语文 数学 英语 计算机 总分 平均分endl; std:coutsetw(15) ; std:coutse
10、tfill(-)setw(65)-endl; for(i=1;in+1;i+) std:coutsetw(15) ; int s=studi-1.chinese+studi-1.math+studi-1.english+puter; std:cout studi-1.cls studi-1.num studi-1.nam studi-1.chinese studi-1.math studi-1.english puter s s/41 & i%10=0) std:coutsetw(15) setfill(-)setw(35)-endl; std:co
11、utsetw(15) ; system(pause); std:coutsetw(15) setfill(-)setw(35)-endl; std:coutsetw(15) ; system(pause);/*查找学生显示其信息*/void query(student stud,int n)char nam20; std:coutsetw(15) 输入其姓名:nam;int i=0;while(strcmp(studi.nam,nam)!=0&in)i+;if(i=n)coutttt没有发现该学生的资料!endl;return; std:coutsetw(15) 学号:studi.numend
12、l; std:coutsetw(15) 班级:studi.clsendl; std:coutsetw(15) 语文:studi.chineseendl; std:coutsetw(15) 英语:studi.englishendl; std:coutsetw(15) 数学:studi.mathendl; std:coutsetw(15) 计算机:puterendl;/*删除学生信息*/int delete(student stud,int n)char s20;int i=0,j;std:coutsetw(15)请输入要删除的学生的姓名:s;while(strcmp(studi
13、.nam,s)!=0&in) i+; if(i=n) printf(ttt没有发现该学生资料!n);return(n); for(j=i;jn-1;j+) strcpy(studj.num,studj+1.num);strcpy(studj.nam,studj+1.nam); studj.cls=studj+1.cls;studj.chinese=studj+1.chinese;studj.math=studj+1.math;studj.english=studj+1.english; puter=studj+1.computer; coutsetw(15) 当前信息已删除成
14、功!na;while(strcmp(studi.nam,na)!=0&in)i+;if(i=n)coutttt没有发现该学生的资料!endl; std:cout修改班级:studi.cls; std:cout修改学号:studi.num; std:cout修改语文成绩:studi.chinese; std:cout修改英语成绩:studi.english; std:cout修改数学成绩:studi.math; std:cout修改计算机成绩:puter; std:cout修改成功endl; return(n);/*显示学生名单*/void show(student stud,
15、int n) for(int i=0;in;i+)std:coutsetw(15)ndl;system(pause);/*从文件读取数据*/int addfromtext(student stud, int n) int i=0,number,x=0,y=0; file *fp; char filename20; coutsetw(15) filename; if(fp=fopen(filename,rb)=null) coutsetw(15) 无法打开文件endl; coutsetw(15) ; system(pause); return(n); fscanf(fp,%d
16、,&number); for(;inumber;) fscanf(fp,%d%s%s%d%d%d%d%d%dn,&studn+i.cls,&studn+i.num,&studn+i.nam,&studn+i.chinese, &studn+i.math,&studn+i.english,&studn+puter,&x,&y); i+; n+=number; fclose(fp); coutsetw(15) 读入成功!endl; coutsetw(15) ; system(pause); return(n); /*将所有记录写进文件*/void writetotext(student
17、stud,int n) int i=0; file *fp; char filename20; coutsetw(15) 将资料输入文件endl; coutsetw(15) filename; if(fp=fopen(filename,w+)=null) coutsetw(15) 无法打开文件endl; system(pause); return; fprintf(fp,%dn,n); for(;in;) fprintf(fp,%-8d%-8s%-8s%-5d%-5d%-5d%-5d%-5d%-5dn,studi.cls,studi.num,studi.nam, studi.chinese,s
18、tudi.math,studi.english,puter, studi.chinese+studi.math+studi.english+puter, (studi.chinese+studi.math+studi.english+puter)/4); i+;fclose(fp);/*主函数调用*/void main()int n1=0,n2=0;for(;)switch(menu()case 1:int t;std:coutsetw(15) 输入学生资料endl;std:coutsetw(15) 输入学期endl;std:coutset
19、w(15)t;if(t=1) n1=input(stud1,n1);else if(t=2)n2=input(stud2,n2);break;case 2:std:coutsetw(15) 输出所有学生资料endl;if(n1!=0)std:coutsetw(15) 第一学期:endl;std:coutsetw(15) ;display(stud1,n1);if(n2!=0)std:coutsetw(15) 第二学期:endl;std:coutsetw(15) ;display(stud2,n2);break;case 3:int r;std:coutsetw(15) 查找学生endl;std
20、:coutsetw(15) 请输入学期:r;if(r=1)query(stud1,n1);else if(r=2)query(stud2,n2);std:coutsetw(15) ;system(pause);break;case 4:int p;std:coutsetw(15) 修改学生资料endl;std:coutsetw(15) 请输入学期:p;if(p=1)std:coutsetw(15) 输入你要修改的学生的姓名:;n1=revise(stud1,n1);else if(p=2)std:coutsetw(15) 输入你要修改的学生的姓名:;n2=revise(stud2,n2);system(pause);break;case 5:std:coutsetw(15) 显示所有学生名单endl; if(n1!=0) std:coutsetw(15) 第一学期endl;show(stud1,n1);coutsetw(15) endl;if(n2!=0) std:coutsetw(15) 第二学期endl;show(stud2,n2);system(pause);break; case 6:std:coutsetw(15)查找并删除学生信息endl;int o;std:cout请输入学期:endl;std:couts
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 客户投诉处理五步高效解决方案手册
- 关于2026年一季度目标确认的确认函5篇
- 感恩教育:感谢师长关爱小学主题班会课件
- 新能源光伏系统故障诊断与处理方案
- 小学主题班会课件:勤学如春起之苗
- 房地产经纪人客户接待流程标准手册
- 筑牢心理防线守护心灵健康小学五年级主题班会课件
- 2026四川成都航空职业技术大学招聘助学助管员与科研助理128人(第三批)参考题库含答案详解【培优A卷】
- 2026河北雄安新区安新县公共服务局招聘专项岗位人员200名笔试题库(考点精练)附答案详解
- 招1人【招聘】西宁市城北区火车西站社区卫生服务中心财务岗位招聘参考题库【B卷】附答案详解
- 国家职业技能标准-农业技术员
- SL+258-2017水库大坝安全评价导则
- 网络安全设备巡检记录表
- 家政服务员(母婴护理员)(三级/高级工)理论知识试题及答案
- 建筑智慧运维与故障诊断
- 职业生涯发展展示 (修改)
- 《无人机维护技术》 课件 项目3 维护典型作业无人机
- 湖北小学生诗词大赛备考试题库400题(三四年级适用)
- 普通诊所污水、污物、粪便处理方案 及周边环境情况说明
- 蔡志忠漫画国学系列孙子兵法
- 反比例函数 单元作业设计
评论
0/150
提交评论