学生成绩管理系统C++课程设计.doc

上传人:laozhun 文档编号:2385362 上传时间:2023-02-17 格式:DOC 页数:22 大小:566KB
返回 下载 相关 举报
学生成绩管理系统C++课程设计.doc_第1页
第1页 / 共22页
学生成绩管理系统C++课程设计.doc_第2页
第2页 / 共22页
学生成绩管理系统C++课程设计.doc_第3页
第3页 / 共22页
学生成绩管理系统C++课程设计.doc_第4页
第4页 / 共22页
学生成绩管理系统C++课程设计.doc_第5页
第5页 / 共22页
点击查看更多>>
资源描述

《学生成绩管理系统C++课程设计.doc》由会员分享,可在线阅读,更多相关《学生成绩管理系统C++课程设计.doc(22页珍藏版)》请在三一办公上搜索。

1、信息科学与技术学院程序设计基础课程设计报告题目名称: 学生成绩管理 学生姓名: 骆聪非 学 号: 2011508019 专业班级:计算机科学与技术 2011级 1班指导教师: 郭理 2012年 7月 5日1. 课程设计题目与要求21.1. 课程设计题目:21.2. 课程设计要求:21.3. 其他要求:22. 总体设计23. 详细设计33.1. 数据结构设计33.2. 主模块功能设计43.3. 部分功能模块代码53.3.1. 实现录入学生信息53.3.2. 实现修改学生成绩53.3.3. 实现对学生成绩的查询64. 运行结果64.1. 调试过程64.2. 调试结果说明115. 课程设计总结11显

2、示对应的拉丁字符的拼音字典 - 查看字典详细内容1. 课程设计题目与要求1.1. 课程设计题目:学生成绩管理1.2. 课程设计要求:1、问题描述(功能要求): (1)能按学期,按班级完成对学生成绩的录入,修改(2)能按班级统计学生的成绩,求学生的总分及平均分,并能根据学生的平均成绩进行排序(3)能查询学生成绩,不及格科目及学生名单(4)能按班级输出学生的成绩单 2、问题的解决方案: 根据系统功能要求,可以将问题解决分为以下步骤: (1)分析系统中的各个实体之间的关系及其属性和行为; (2)根据问题描述,设计系统的类层次; (3)完成类层次中各个类的描述(包括属性和方法); (4)完成类中各个成

3、员函数的定义; (5)完成系统的应用模块; (6)功能调试; (7)完成系统总结报告以及系统使用说明书。 1.3. 其他要求: (1)只能使用C/C+语言,源程序要有适当的注释,使程序容易阅读 (2)至少采用文本菜单界面(如果能采用图形菜单界面更好) (3)学生可自动增加新功能模块2. 总体设计该系统实现对若干大学生的学习成绩进行管理,能实现按学期、按班级完成对学生成绩的录入、修改,能按班级统计学生的成绩,求学生的总分及平均分,并能根据学生的平均成绩进行排序能查询学生成绩,不及格科目及学生名单,能按班级输出学生的成绩单等。整个系统用VC+进行实现,用指针、链表来实现学生成绩的数据结构设计,系统

4、具有录入、修改、求总、求平均分、输出等功能。系统的各个功能模块都用类的形式来实现,可以将学生成绩按照分数的高低进行排序。学 生 成 绩 管理 系 统对 信 息 进 行 处理输 出 处 理后 的 信 息接 收 输 入 信 息显示数据库中的相关 信 息显示操作完成 的 情况根 据 用 户 的 需 求 调 用 相 应 的 功 能 模 块将 输 入的 数 据添 加 到数 据 库中 修改相应的信 息汇总相应的信息统计相应的信息删除相应的信 息3. 详细设计3.1. 数据结构设计采用C+程序设计语言,从键盘输入学生的基本信息(学号,姓名,英语成绩,高数成绩),计算每个学生的平均成绩,并将数据存入文件stu

5、dent.txt中。按如下格式输出大于等于平均成绩的学生信息: 学号 姓名 英语 数学 C+ 平均成绩。提供按学期、按班级进行查询的功能。尽可能使用运算符重载以简化操作。使用多文件结构和菜单操作,并考虑相应的操作权限(每个教师输入“自己的学生”的“某门课程”的成绩,而其他学生的其他课程不能输入,只有教务老师才能执行归档类的操作),以提高程序的实用性3.2. 主模块功能设计“学生成绩管理信息系统”主要分为学生浏览和后台管理两个子系统。设计主要功能:能按学期、按班级完成对学生成绩的录入、修改;能按班级统计学生的成绩,求学生的总分及平均分,并能根据学生的平均成绩进行排序;能查询学生成绩,不及格科目及

6、学生名单;能按班级输出学生的成绩单。 显 示学生浏览查 询录 入学生成绩管理系统统修 改后台管理删 除统 计排 序 “学生成绩管理”系统主模块功能图 系统界面 输入信息 信息正确 继续 结束3.3. 部分功能模块代码3.3.1. 实现录入学生信息 否 是 录入学生信息功能模块图3.3.2. 实现修改学生成绩修改学生信息输入学号输入信息错误修改C+成绩修改数学成绩修改姓名修改英语成绩输入新的成绩 修改学生成绩功能模块图3.3.3. 实现对学生成绩的查询系统界面查找学生信息按姓名查找按学号查找输入错误显示信息学生成绩查询功能模块图4. 运行结果4.1. 调试过程 首先是学生成绩信息的录入显示录入学

7、生成绩信息 查询平均成绩排名 查询个人情况 查询各科平均成绩输出班级成绩单修改个人成绩统计有不及格科目的同学退出系统菜单(1) 录入学生信息模块。完成数据储存工作,从键盘输入学生纪录,学生纪录由学生的基本信息和成绩信息字段构成,当读取纪录时也就是把储存的数据文件复制到单链表中。(2) 修改成绩模块。完成对学生纪录的维护,它实现了对学生成绩的更新,修改,删除,并将修改后的数据存入源数据文件。(3)查询成绩模块。完成在列表中满足相关条件的学生纪录,用户可以按照学号或姓名进行查找,若找到该学生的纪录,则返回指向该学生的记录指针。4.2. 调试结果说明 本文所阐述的学生成绩管理系统,具有对学生成绩信息

8、的输入功能,但是输入格式有所限制,比如学号的输入只能是四个数字,不是四个数字,此系统就不予识别,调试无法再进行下去,而且学号不能相同,相同也会影响程序的调试。输入的学生数不能少于六个,否则也无法调试下去。在输出班级成绩单的模块中,系统将成绩单保存到了文件夹中,方便进行查看,统计学生是否有不及格科目的过程,可以将学生的姓名学号成绩等都显示出来,非常方便查看。各功能模块在主菜单中都有选择序号,操作人员可以根据序号选择要进行的操作,退出的时候只要选择0,即可方便退出。5. 课程设计总结 经过两个星期的C+程序设计,让我明白到了C+这门课的重要性,C+作为一门电脑学的基础课,是我们必须掌握的顺电脑飞速

9、发展的今天,掌握电脑的应用是如今每一位大学生所必须掌握的,掌握电脑有对各人来说有我种好处,学习电脑是一种本领,也是一种生存的技能,而C+做为电脑的基础,掌握它更是我们这些大学生所必须掌握的。拿到题目,我真的不知道该怎么办,但随着慢慢的设计,思路也总算有了,这样才能继续进行下去,这时我才真正认识到了C+的功能原来是那么的多。一个复杂的成绩管理系统,经过500-600行的代码就可以完完全全的达到,这是让我非常惊讶的,但相对,如今的C+也是非常难的,这学期学到的I/O流,类,都是C+的重点,但学下来以后感觉还是很难所以必须先打好基础,基础好了,学什么都会容易很多。这次的程序设计让我重新认识到了C+,

10、这是一门非常重要的科目,我们必须付出很多倍的努力学习它,才能熟练地掌握它。参考文献1. 郑莉,董渊,何江舟C+语言程序设计(第四版)清华大学出版社2. 严蔚敏,吴伟民 数据结构(C语言版)清华大学出版社3. 教师教案PPT(指针,链表,数组)4. C+语言上机指导书5. 网络资源(C+语言程序设计视频教程)3.2主要代码描述#include#include#include#includeusing namespace std;class Stupublic:char name8;int number;double English,Math,Cjj,Total,Average; Stu()Eng

11、lish=0;Math=0;Cjj=0;Total=0;Average=0;strcpy(name,无);number=0;return;Stu()Stu(double Eng,double Mat,double C,int num,char s38);void getname();void getnumber();void getEnglish();void getMath();void getCjj();double getTotal();double getAverage();Stu:Stu(double Eng,double Mat,double C,int num,char s38)

12、English=Eng;Math=Mat;Cjj=C;number=num;strcpy(name,s3);void Stu:getname()char s8;couts;strcpy(name,s);void Stu:getnumber()int n;coutn;number=n;void Stu:getEnglish()double E;coutE;English=E;void Stu:getMath()double m;coutm;Math=m;void Stu:getCjj()double c;coutc;Cjj=c;double Stu:getTotal()return Total=

13、English+Math+Cjj;double Stu:getAverage()return Average=Total/3.0;void output1(Stu &p)coutttp.nametp.numbertp.Englishtp.Mathtp.Cjjn;void output2(Stu &p)couttp.nametp.numbertp.Englishtp.Mathtp.Cjjtp.Averagetp.Totaln;void input(Stu &p)p.getname();p.getnumber();p.getEnglish();p.getMath();p.getCjj();p.ge

14、tTotal();p.getAverage();void order(Stu &p1,Stu &p2,Stu &p3,Stu &p4,Stu &p5,Stu &p6)sheji:char *name6=p1.name,p2.name,p3.name,p4.name,p5.name,p6.name;int number6=p1.number,p2.number,p3.number,p4.number,p5.number,p6.number;double English6=p1.English,p2.English,p3.English,p4.English,p5.English,p6.Engli

15、sh;double Math6=p1.Math,p2.Math,p3.Math,p4.Math,p5.Math,p6.Math;double Cjj6=p1.Cjj,p2.Cjj,p3.Cjj,p4.Cjj,p5.Cjj,p6.Cjj;double Total6=p1.Total,p2.Total,p3.Total,p4.Total,p5.Total,p6.Total;double Average6=p1.Average,p2.Average,p3.Average,p4.Average,p5.Average,p6.Average;Stu soure6=p1,p2,p3,p4,p5,p6;cha

16、r *s1,s28;double *p;int n;double mat;couttt主菜单endl;coutt1.查询平均分排名;endl;coutt2.查询个人情况;endl;coutt3.查询各科平均成绩;endl;coutt4.输出班级成绩;endl;coutt5.修改各人成绩;endl;coutt6.查询不及格成绩;endl;coutt0.退出;endl;int q;coutq;if(q=1)p=Average;coutt*以平均成绩进行排名*endl;strcpy(s2,均分);for(int i1=1;i16;i1+) for(int j1=0;j16-i1;j1+)if(pj1

17、=pj1+1) mat=pj1,pj1=pj1+1,pj1+1=mat;s1=namej1,namej1=namej1+1,namej1+1=s1;n=numberj1,numberj1=numberj1+1,numberj1+1=n;couttt名次t姓名t学号ts2n;for(i1=0;i16;i1+) couttti1+1tnamei1tnumberi1tpi1endl;coutendl;goto sheji;if(q=2)int w;coutw;coutt姓名t学号t英语t数学tC+t均分t总分n;for(int i=0;i6;i+)if(w=numberi)output2(soure

18、i);goto sheji;else if(q=3)coutt*各科平均成绩*endl;double a1=0,b=0,d=0,e=0,h=0;for(int j=0;j6;j+)a1+=Englishj;coutt英语的平均分为t(double(a1/5.0)endl;for(int i=0;i6;i+)b+=Mathi;coutt数学的平均分为t(double(b/5.0)endl;for(int k=0;k6;k+)e+=Cjjk;couttC+的平均分为t(double(e/5.0)endl;goto sheji;else if(q=4)ofstream file(d:student.

19、txt);if(!file)coutstudent.txt cant open.n;abort();filet姓名t学号t英语t数学tC+t均分t总分n;for(int i=0;i6;i+)filetnameitnumberitEnglishitMathitCjjitAverageitTotalin;file.close();cout计算机-1的成绩单已输入到了D:student.txt中。希望你查看!endl;goto sheji;else if(q=5)coutt*在这里对学生成绩进行修改*endl;int b1;cout请输入你要修改学生的学号:b1;if(b1=p1.number)p1

20、=Stu();input(p1);coutt修改成功!endl; else if(b1=p2.number)p2=Stu();input(p2);coutt修改成功!endl; else if(b1=p3.number)p3=Stu();input(p3);coutt修改成功!endl; else if(b1=p4.number)p4=Stu();input(p4);coutt修改成功!endl; else if(b1=p5.number)p5=Stu();input(p5);coutt修改成功!endl; else if(b1=p1.number)p1=Stu();input(p1);cou

21、tt修改成功!endl;else if(b1!=p1.number|b1!=p2.number|b1!=p3.number|b1!=p4.number|b1!=p5.number|b1!=p6.number)cout对不起!该学号不存在!请确认后在输入!endl;goto sheji;else if(q=6) cout*统计有不及格科目的同学*endl;for(int i=0;i6;i+)if(Englishi60|Mathi60|Cjji60)coutt姓名t学号t英语t数学tC+t均分t总分n;output2(sourei);goto sheji;else if(q=0)cout谢谢你的支

22、持!endl;exit(1);void main() Stu m1,m2,m3,m4,m5,m6;void Stu:getname();cout *欢迎来到计算机-1成绩管理系统*endl; cout请对各学生的成绩进行输入:endl; input(m1); input(m2); input(m3); input(m4); input(m5);input(m6); cout你输入的是:endl; couttt姓名t学号t英语t数学tC+n; output1(m1); output1(m2); output1(m3); output1(m4); output1(m5); output1(m6); order(m1,m2,m3,m4,m5,m6);

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 建筑/施工/环境 > 项目建议


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号