资源预览内容
第1页 / 共32页
第2页 / 共32页
第3页 / 共32页
第4页 / 共32页
第5页 / 共32页
第6页 / 共32页
第7页 / 共32页
第8页 / 共32页
第9页 / 共32页
第10页 / 共32页
亲,该文档总共32页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
精品资料c+实现学生成绩统计系统.C+实现学生成绩统计管理系统C+实现学生成绩统计管理系统课程设计任务书 题目: C+实现学生成绩统计管理系统 学 号 姓 名 专 业 计算机科学与技术 课 程 C+ 指导教师 职称 讲师 完成时间:20 年 月-20 年 月枣庄学院计算机科学系制课程设计任务书及成绩评定课程设计的任务和具体要求1、开设本课程的目的是使学生通过小型软件的开发过程,进一步掌握面向对象的程序设计方法,培养学生的创新能力和创新意识。2.提高综合运用所学的理论知识和方法独立分析和解决问题的能力;3.训练用系统的观点和软件开发一般规范进行软件开发,培养软件工作者所应具备的科学的工作方法和作风。指导教师签字: 日期: 指导教师评语成绩: 指导教师签字: 日期: 课程设计所需软件、硬件等1、微型计算机2、Windows xp 3、VC6.0课程设计进度计划起至日期工作内容备注2010年12月1日-2010年12月20日2010年12月20日-2010年12月26日收集资料编写程序参考文献、资料索引序号文献、资料名称编著者出版单位C+程序设计(第二版),谭浩强著,清华大学出版社目 录一、课程设计教学目的本课程设计是高级语言程序设计(C+)课程的组成之一,也是它的继续和延伸。采用研究型学习方法,完成一个管理类型的小型软件。开设本课程的目的是使学生通过小型软件的开发过程,进一步掌握面向对象的程序设计方法,培养学生的创新能力和创新意识。二、课程设计的要求1.了解并掌握面向对象程序设计方法,具备初步的独立分析和设计能力;2.初步掌握软件开发过程的问题分析、系统设计、程序编码、测试等基本方法和技能;3.提高综合运用所学的理论知识和方法独立分析和解决问题的能力;4.训练用系统的观点和软件开发一般规范进行软件开发,培养软件工作者所应具备的科学的工作方法和作风。5.设计的题目要求达到一定工作量(300行以上代码),并具有一定的深度和难度。6.编写出课程设计说明书。7.学生必须仔细阅读C+语言程序设计课程设计方案,认真主动完成课设的要求。有问题及时主动通过各种方式与教师联系沟通。学生要发挥自主学习的能力,充分利用时间,安排好课设的时间计划,并在课程设过程中不断检测自己的计划完成情况。8.课程设计前期安排学习C+编程和面向对象的软件工程的有关知识,以自学和上机实验为主。三.课程设计报告内容1题目内容学生成绩统计管理系统2功能要求:成绩的输入(学号、姓名、英语、数学、C+语言)。成绩统计(各科平均成绩、各科成绩“优秀”、“良好”、“中等”、“及格”、“不及格”的人数及其所占比例)。总成绩统计(学生的总成绩、平均成绩及成绩排名)。成绩的统计结果显示。学生数据的添加、修改、与删除。学生数据的读取与存储。3程序实现思路(技术线路):先创建一个学生元素类,用于存放学生的各种数据。然后创建另一个类,把数据存储,可便进行各种操作。本程序中比较核心的技术就是用到了堆排序,将学生按优先级(高的排前面,低的排后面)的大小进行有序排列。堆排序的时间复杂度较一般排序(如:冒泡,选择等)来得低,可使程序显示数据时效率更高。3程序模块分析:1)添加数据:把用户输入的数据添加到学生类对象数组中,然后再将其入堆,使其有序。2)删除数据:由用户输入要删除的学生的学号,然后将其从学生类对象数组中删除,使数组中的数据仍然有序。3)查找数据:由用户输入要查找的学生的学号,然后调用leo类中关于查找的函数,将查找结果显示在屏幕上。4)显示数据:调用leo类中关于显示数据的函数,把所有的学生数据都显示在屏幕上。5)清除数据:调用leo类中关于清除数据的函数,把所有的学生数据都清空。6)退出程序:若用户输入了数字0,则主函数结束循环,同时程序也就结束了。5程序清单:(见附录)四、总结通过做这个课程设计让我逐步学会了使用面向对象程序设计设计方法及思想来解决实际问题,更深刻的理解了C+这种面向对象程序的设计语言。同时,通过查阅各类技术文献、资料、手册解决了许多设计时遇到的难题,也使我提高了编写技术文献的能力。附录:#include#include#include#include#define Smax 200using namespace std;class student Public:string num;string name;float eng;float math;float clang;/定义c+ float gete()return eng; float getm()return math; float getcl()return clang; string getn()return num; string getna()return name; int rank3; int row;/排名 int sinto(string,string,float,float,float);/输入数据 void sshow();/输出数据 float sall();/ 求和 float save();/求平均 void objrank();/成绩分类; void shows()/普通函数 coutsetw(6)排名setw(6)学号setw(10)姓名 setw(6)英语setw(6)数学setw(6)c+ setw(6)总分setw(10)平均分endl; int student:sinto(string a1,string a2,float b1,float b2,float b3 )num=a1;name=a2; eng=b1;math=b2;clang=b3; return 0;void student:sshow()/输出 coutsetw(6)rowsetw(6)numsetw(10)namesetw(6) engsetw(6)mathsetw(6)clangsetw(6)sall() setw(10)setiosflags(ios:fixed)setprecision(1)save()endl; coutsetiosflags(ios:fixed)setprecision(0);float student:sall()/求总分 return eng+math+clang;float student:save()/求平均分return sall()/3;void student:objrank() int n;rank0=(int)eng;rank1=(int)math;rank2=(int)clang;for(int i=0;i3;i+) n=ranki/10; switch(n) case 9:n=1;break; case 8:n=2;break; case 7:n=3;break; case 6:n=4;break; default:n=5; ranki=n;/类student结束/类leo开始class leoprivate:student itemSmax;int size;public:leo();void lsize(int);/设置数组大小void linit();/清空void linsert();/添加void ldelet(string);/删除void lsearch(string);/查找void lchan(string);/修改void lpcent();/成绩分类void lrow();/排序 void obave();/求平均void lview();/显示全部数据void lcin();/从磁盘输出void lcout();/储存到磁盘;leo:leo() student itemSmax; lsize(0);void leo:lsize(int i)size=i;void leo:linit() lsize(0); cout学生数据清除成功endl; cout当前无学生数据。请添加.endl;void leo:ldelet(string a) int k=0;string c; for(int i=0;isize;i+)if(itemi.getn()=a)cout你将要删除的数据如下:endl;shows();itemi.sshow(); coutc;if(c=y|c=Y) itemi=item-size;k=1;if(k!=1)coutn删除失败!endl;else coutn删除成功!Smax)cout超出范围,不能再添加!endl; else coutn请输入学号,姓名,英语,数学,c+成绩:a1a2b1b2b3;for(int i=0;isize;i+) if(itemi.getn()=a1) mn+; co
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号