




下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
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.执行住流程图开始输入指令1012345678输入 学输 出成绩查 找显 示修 改资料显 示名单查
4、 找删 除读 取查 找保 存资料9生 资成绩信息信息料退出7.程序运行结果8.设计过程遇到的问题在输入了学生成绩之后,若不退出程序继续读取文件,同一个学生的信息会多次输出。输入的数据长度有要求,不能够输入的太长否则就会输出结果排列不整齐甚至无法输出数据。输入学生成绩时只能连续输入相同学期的学生。输入的学生成绩等信息相同时如姓名,程序不提示出错,不能处理。同时好多地方都不懂,不明白其中的原理,做起来不上手。9.课题总结第一次做这种设计面广、综合性强的课程设计刚开始难度还是有点大的,主要是在函数调用方面容易出现混乱,刚开始的时候功能少还容易解决,写到后面再在综合起来就容易出现问题。尤其是在修改删除
5、函数中要调用文件操作函数,查找函数,然后找到具体删除的可行性办法还是不太容易,最后采用后一项覆盖前一项的方法解决。10.设计课题感想这学期我们学习了C+这一编程语言,学的很浅薄,平时都只能编一些比较小的程序。这次课程设计花了很长时间,学到了不少的知识,开拓了视野。并且,本设计不像平时编写的程序,运行一下直接推出操作界面。而是可以像一个计算机上使用的软件一样,可以不用退出系统,继续使用其功能,只需要在主函数中调用一个循环即可。除此之外,还学习到了课程设计的流程相关的知识。不过大多属于网上搜的,自己的能力很弱不能做出来。附录代码#include#include#include#include#in
6、clude#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:coutsetw(32) 1.输入学
7、生成绩 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)am;std:coutsetw(15) studn+i.cls;std:coutsetw(15) studn+i.num;std:coutsetw(15) studn+i.chinese;std:coutsetw(15) studn+i.math;std:coutsetw(15) studn+i.english;std:coutsetw(15) studn+iputer;gets(x);std:coutsetw(10) ;
9、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:coutsetfill(-)setw(65)-endl;for(i=1;in+1;i+)std:coutsetw(15) ;int s=studi-1.chinese+studi-1.math+studi-1.english+studi
10、-1puter;std:coutstudi-1.clsstudi-1.numstudi-1.namstudi-1.chinesestudi-1.mathstudi-1.englishstudi-1puterss/41 & i%10=0)std:coutsetw(15) setfill(-)setw(35)-endl;std:coutsetw(15) ;system(pause);std:coutsetw(15) setfill(-)setw(35)-endl;std:coutsetw(15) ;system(pause);/*查找学生显示其信息*/void Query(Student stud
11、,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.numendl;std:coutsetw(15) 班级: studi.clsendl;std:coutsetw(15) 语文: studi.chineseendl;std:coutsetw(15) 英语: studi.englishendl;std:coutsetw(15) 数学:
12、studi.mathendl;std:coutsetw(15) 计算机: studiputerendl;/*删除学生信息*/int Delete(Student stud,int n)char s20;int i=0,j;std:coutsetw(15)请输入要删除的学生的姓名:s;while(strcmp(studi.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
13、.cls=studj+1.cls;studj.chinese=studj+1.chinese;studj.math=studj+1.math;studj.english=studj+1.english;studjputer=studj+1puter;coutsetw(15) 当前信息已删除成功 !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
14、:cout修改英语成绩: studi.english;std:cout修改数学成绩: studi.math;std:cout修改计算机成绩: studiputer;std:cout修改成功 endl;return(n);/*显示学生名单*/void show(Student stud,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 filen
15、ame20;coutsetw(15) filename;if(fp=fopen(filename,rb)=NULL):;coutsetw(15) 无法打开文件 endl;coutsetw(15) ;system(pause);return(n);fscanf(fp,%d,&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+iputer,&x,&y);i+;
16、n+=number;fclose(fp);coutsetw(15) 读入成功 !endl;coutsetw(15) ;system(pause);return(n);/*将所有记录写进文件*/void WritetoText(Student 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,
17、%dn,n);for(;in;)fprintf(fp,%-8d%-8s%-8s%-5d%-5d%-5d%-5d%-5d%-5dn,studi.cls,studi.num,stu di.nam,studi.chinese,studi.math,studi.english,studiputer, studi.chinese+studi.math+studi.english+studiputer, (studi.chinese+studi.math+studi.english+studiputer)/ 4);i+;fclose(fp);/*/void main()主函数调用int n1=0,n2=0
18、;for(;)switch(menu()case 1:int t;std:coutsetw(15) 输入学生资料 endl;std:coutsetw(15) 输入学期 endl;std:coutsetw(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:coutse
19、tw(15) 第二学期: endl;std:coutsetw(15) ;Display(stud2,n2);break;case 3:int r;std:coutsetw(15) 查找学生 endl;std: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:coutse
20、tw(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:coutsetw(15)o;if(o=1)std:cou
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025-2030年中国压载水设备等境外融资报告
- 2025-2030年中国加气混凝土砌块项目可行性研究报告
- 2025-2030年中国云计算产业园区行业市场现状分析规划研究报告
- 2025-2030年中国中央商务区建设行业市场深度分析及投资可行性研究报告
- 某年度镂铣机械竞争策略分析报告
- 租房合同终止协议书范本
- 跨国元素外包合同
- 防水工程材料储存合同
- 防水工程施工保修合同
- 消费品借贷协议
- 装修公司合同保密协议书
- 2025-2030中国公路建设行业发展分析及发展前景与趋势预测研究报告
- 2025购销茶叶合同范本
- 户外场地安全课件
- 研究我国平台企业在社会责任履行及其治理机制的现状与问题
- 叉车使用安全协议书
- ai训练师面试题及答案
- 2024-2025学年人教版数学五年级下学期期末试卷(含答案)
- 安全管理:承包商安全管理制度(模板)
- 2025年湖北省新华书店(集团)有限公司招聘笔试参考题库附带答案详解
- 2025年宣城郎溪开创控股集团有限公司下属子公司招聘12人笔试参考题库附带答案详解
评论
0/150
提交评论