《C++课程设计学生成绩管理系统.doc》由会员分享,可在线阅读,更多相关《C++课程设计学生成绩管理系统.doc(26页珍藏版)》请在三一办公上搜索。
1、存档资料 成绩: 华东交通大学课 程 设 计 报 告 书所属课程名称C+程序设计题 目学生成绩管理系统院 (系)土木建筑学院班 级14级测绘工程一班学号20140110170107学生姓名指导教师辅导教师 2015年 12 月 21 日 课程设计(论文)任务书 土木 学院 测绘 专业 2014-测绘1 班 一、课程设计(论文)题目 :学生成绩管理 二、课程设计(论文)工作自 2015 年 12 月21日起至 2015 年 12 月 25日止 三、课程设计(论文) 地点: 8506 四、课程设计(论文)内容要求:1. 本课程设计的目的(1)进一步巩固和加深对“C程序设计”课程基本知识的理解和掌握
2、,了解C语言在项目开发中的应用。(2)学习程序设计开发的一般方法,了解和掌握项目开发过程及方式,培养正确的设计思想和分析问题、解决问题的能力,特别是项目设计能力。(3)通过对标准化、规范化文档的掌握并查阅有关技术资料等,培养项目设计开发能力,同时提倡团队合作精神。 2. 课程设计的任务及要求1) 基本要求:(1) 对系统功能进行需求分析;(2) 使用Visual C+编译器进行程序编译;(3) 提出系统的设计方案;(4) 编写源程序代码并进行调试。2) 创新要求在基本要求达到后,可进行创新设计。3) 课程设计报告撰写及装订要求课程设计报告的撰写要求表述简明,图表准确。报告按如下内容和顺序用A4
3、纸进行打印并装订成册。(1)封面采用统一的课程设计封面,并按要求填写好封面要求的个人信息和选题。(2)设计任务书(3)评阅书(4)目录 (5)正文 (6)主要参考文献4) 课程设计评分标准: 每人按指定题目进行设计,严禁抄袭,要求每人自己动手编写程序,采取同一组同时检查程序及运行结果,检查时同组成员每人陈述自己的分工,同一选题不同组如发现代码完全一样,则双方都作不及格处理。(1)达到课程设计的目的与要求,程序的可读性较好,并调试正确,60分;(2)能正确回答设计的中老师所提问题,可增加10分;(3)课程设计报告书写规范整齐,可增加10分;(4)心得体会认真总结,可增加10分;(5)程序有创新性
4、,可增加10分;成绩评定实行优秀、良好、中等、及格和不及格五个等级。不及格者需重做。5) 课程设计进度安排(1)准备阶段(3学时):选择设计题目、了解设计目的要求、查阅相关资料。(2)程序模块设计分析阶段(4学时):程序总体设计、详细设计。(3) 代码编写调试阶段(10学时):程序模块代码编写、调试、测试。(4) 撰写论文阶段(3学时):总结课程设计任务和设计内容,撰写课程设计论文。6)课程设计题目具体要求: 从键盘输入某班级30个学生的学号、姓名、三门课(语文、数学、英语)的成绩,分别实现如下功能: (1)统计每个学生的总分和平均分;(2)按总分由大到小排出名次;(3)打印出成绩在全班平均分
5、以上的学生名单和数据信息。 (4)任意输入一个学号,能够查找出该学生在班级中的排名及其考试成绩。 要求:各个功能要求分别用独立的函数来实现,在主函数中通过菜单选择来实现各个功能。且要求使用结构体数组来存储和处理30个学生信息,定义的结构体主要包括:学号、姓名、三门课成绩、总分、平均分、名次等成员。我们可使用for语句和switchcase语句实现主菜单功能的循环选择,继而实现各部分的功能。并且使每部分独立,执行各自的功能。学生签名:2015年 12 月25 日课程设计(论文)评阅意见序号项 目等级优秀良好中等及格不及格1课程设计态度评价2出勤情况评价3任务难度评价4工作量饱满评价5设计中创新性
6、评价6论文书写规范化评价综合评定等级评阅人 宋岚 职称 讲师 2015年12月26日 目录一、需求分析 . 5页二、概要设计. 6页三、详细设计. 10页 四、运行结果及分析. 21页五、课程设计心得. 23页六、参考文献. 24页第1章 需求分析1.菜单设计 菜单是应用程序非常重要的组成部分,菜单可以很简明的交代该程序各部分的功能。因此菜单是一个程序设计好坏最直观的表现。2.功能分析 我设计的程序管理系统可以对学生的成绩进行输入,输出,排序,查找,修改,打印等功能。(1) 进入程序页面之后,输入“1”对学生的成绩进行输入。(2) 输入学生成绩之后,输入“2”,对学生的成绩进行输出,并且可以继
7、续输入“5”,对学生成绩进行排序。排序的顺序是根据成绩由高到低。(3) 输出学生成绩之后,可以输入“3”,对学生的成绩信息进行查找。(4) 输入“4”,可以对信息有误的学生进行修改,再次输入“5”,可以进行新的排序。(5) 输入“6”,可以实现打印学生信息的功能。3.程序作用 该程序可以实现很多功能,方便了老师更好的管理学生的成绩信息,并且避免了使用纸张手写的麻烦过程。对于学生而言,该程序方便了学生查询自己考试成绩,并且可以做到对学生成绩的保护。 第2章 概要设计Main()函数Menu()函数Student()Add()Output()Find()Modify()Sort()Student类
8、私有成员:char name20; char sex5; int number; int score3; int total; int average;公有函数一.各个子函数功能及其流程:1. 首先定义一个学生类Class Student;并定义其各个私有变量和公有函数Class StudentClassaddoutputfindmodify私有变量2. Student();构造函数,用于初始化学生类中的各个变量并记录。3. Add();函数:用于添加学生信息的函数包括学号姓名成绩等的内容。主函数main()菜单函数menu()选择菜单中的选项添加学生信息调用Add()函数调用重载 (istr
9、eam & scin, student &s1); friend ostream & operator stun; n+; coutflag; if(toupper(flag)!=Y) if(toupper(flag)=N) break; else coutflag; /*/*函数名称:student:output功能描述:实现输出功能*/void student:output() /输出函数 if(n!=0) cout -n; cout number name sex math Chinese English total averagen; cout - n; for(int t=0;tn;
10、t+) coutstut; getch(); /*/*函数名称:student:find功能描述:实现查找功能*/void student:find() /查找函数 int f3=0; char n120; student temp; coutn1; for(int j=0;jn;j+) if(strcmp(stuj.name,n1)=0) temp=stuj; f3=1; if(f3=0) cout对不起,没有你要查找的学生成绩endl; else cout -n; cout number name sex math Chinese English total averagen; cout
11、- n; cout temp.number temp.name temp.sex temp.score0 temp.score1 temp.score2 temp.total temp.averageendl; getch(); /*/*函数名称:student:modify功能描述:实现学生信息修改功能*/void student:modify() /修改函数 int f4=0; int t; char n250; coutn2; for(int j=0;jn;j+) if(strcmp(stuj.name,n2)=0) t=j; f4=1; if(f4=0) cout对不起,没有你要修改的
12、学生成绩endl; else coutstut.number; coutstut.name; coutstut.sex; coutstut.score0; coutstut.score1; coutstut.score2; stut.total=stut.score0+stut.score1+stut.score2; stut.average=stut.total/3; cout 修改成功 !endl; getch(); void student:sort() /排序函数 int i,j,k; student s3; for( i=0;i(n-1);i+) k=i; for(j=i+1;jst
13、ui.average)k=j; if(k!=i) s3=stui; stui=stuk; stuk=s3; coutnn排序成功!nn; student & student:operator=(student & T) strcpy(name,T.name); strcpy(sex,T.sex); number=T.number; for(int i=0;i3;i+)scorei=T.scorei; total=T.total; average=T.average; return ( * this ); ostream & operator (ostream & scout, student
14、&s2) coutsetw(6)s2.numbersetw(10)s2.namesetw(8)s2.sexsetw(8)s2.score0 setw(8)s2.score1setw(10)s2.score2setw(10)s2.totalsetw(8)s2.average (istream & scin,student &s1) couts1.number; couts1.name; couts1.sex; couts1.score0; couts1.score1; couts1.score2; s1.total=s1.score0+s1.score1+s1.score2; s1.averag
15、e=s1.total/3; return scin; student:student() /构造函数 strcpy(name, ); strcpy(sex, ); number=0; for(int i=0;i3;i+)scorei=0; total=0; average=0; /*/*函数名称:void menu()功能描述:实现菜单制作*/void menu() /菜单函数 coutnnn学生成绩管理系统主菜单 endl; coutnnn1.添加学生信息 endl; cout2.输出学生信息 endl; cout3.查找学生信息 endl; cout4.修改学生信息 endl; cout5
16、.学生信息排序 endl; cout6.打印学生成绩 endl;cout7.退出系统 endl; coutchoose; switch(choose) case 1: s.add(); break; case 2: s.output(); break; case 3: s.find(); break; case 4: s.modify(); break; case 5: s.sort(); break; default : break; while(choose!=0); /*/第四章 运行结果及分析1.菜单 进入程序页面,显示程序菜单,进行选择。2. 输入学生成绩 对学生的信息和成绩进行输入
17、3. 输出并排序 对各个学生的成绩进行排序后输出,按总分的由高到低排序。4. 查找学生信息 输入学生姓名,对学生的成绩进行查找5. 学生信息修改 输入信息有误的学生姓名,先进行查找,然后对该学生的成绩信息进行修改 第5章课程设计心得 通过这次课程设计,发现自己C+的知识还处于一种刚入门的阶段,并没有非常熟练的掌握各种函数的应用。但是这次课设收获还是非常多的,更进一步明白我们日常的各种应用是怎样制作的,也对程序代码有了新的认识。他们不简简单单是普通的符号和字母,他们更是我们实现各种功能的关键。在课程设计的过程中,我们不断地翻阅书本,对自己不熟悉的知识再次学习,并且上网参考其他的文献资料。帮助我们
18、解决了诸多在设计过程中遇到的问题。虽然我们课程设计的时间比较短暂,但是从中我们也学习到很多,我们将会针对自己的不足,不断地提高。课程设计不光考验的是我们的知识水平,更加考验的是我们的耐心。因为我们要不断地调试程序,并且要想出办法对程序进行改进。我通过这次课设,掌握了各种函数的用法,学会了制作菜单。但是这个程序还是有不完整的地方。例如打印功能的实现,我设计的程序并不能很好的实现打印功能,但这不影响该程序的使用。总的来说,这次课设让我学到很多,认识到不足,也体会到了C+这门课的神奇之处。以后,在课程结束之后,我们还会多多练习,争取做到更好! 第六章 参考文献1 谢昕,刘觉夫,王更生.C+程序设计(第二版)M.北京邮电大学出版社.2010.122 宋岚,曾辉,王更生,李广丽。C+语言基础实训教程M.北京邮电大学出版社2015.13 OSChina开源中国社区