C++实现学生成绩统计管理系统.docx
- 文档编号:2891531
- 上传时间:2022-11-16
- 格式:DOCX
- 页数:17
- 大小:20.79KB
C++实现学生成绩统计管理系统.docx
《C++实现学生成绩统计管理系统.docx》由会员分享,可在线阅读,更多相关《C++实现学生成绩统计管理系统.docx(17页珍藏版)》请在冰豆网上搜索。
C++实现学生成绩统计管理系统
课程设计任务书
题目:
C++实现学生成绩统计管理系统
学号
姓名
专业计算机科学与技术
课程C++
指导教师职称讲师
完成时间:
20年月----20年月
枣庄学院计算机科学系制
课程设计任务书及成绩评定
课程设计的任务和具体要求
1、开设本课程的目的是使学生通过小型软件的开发过程,进一步掌握面向对象的程序设计方法,培养学生的创新能力和创新意识。
2.提高综合运用所学的理论知识和方法独立分析和解决问题的能力;
3.训练用系统的观点和软件开发一般规范进行软件开发,培养软件工作者所应具备的科学的工作方法和作风。
指导教师签字:
日期:
指导教师评语
成绩:
指导教师签字:
日期:
课程设计所需软件、硬件等
1、微型计算机
2、Windowsxp
3、VC6.0
课程设计进度计划
起至日期
工作内容
备注
2010年12月1日-2010年12月20日
2010年12月20日-2010年12月26日
收集资料
编写程序
参考文献、资料索引
序号
文献、资料名称
编著者
出版单位
《C++程序设计》(第二版),谭浩强著,清华大学出版社
目录
1课程设计的目的………………………………………………………………1
2课程设计的要求………………………………………………………………1
3课程设计报告内容……………………………………………………………1
1程序设计题目………………………………………………………………1
2程序实现思路………………………………………………………………1
3程序模块分析………………………………………………………………1
4系统顶级用例图……………………………………………………………2
5程序清单……………………………………………………………………2
4总结……………………………………………………………………………3
参考文献…………………………………………………………………………3
附录………………………………………………………………………………3
一、课程设计教学目的
本课程设计是《高级语言程序设计(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
#defineSmax200
usingnamespacestd;
structstudent
{
stringnum;
stringname;
floateng;
floatmath;
floatclang;//定义c++
floatgete(){returneng;}
floatgetm(){returnmath;}
floatgetcl(){returnclang;}
stringgetn(){returnnum;}
stringgetna(){returnname;}
intrank[3];
introw;//排名
intsinto(string,string,float,float,float);//输入数据
voidsshow();//输出数据
floatsall();//求和
floatsave();//求平均
voidobjrank();//成绩分类
};
voidshows()//普通函数
{
cout< < < } intstudent: : sinto(stringa1,stringa2,floatb1,floatb2,floatb3) { num=a1;name=a2; eng=b1;math=b2;clang=b3; return0; } voidstudent: : sshow()//输出 { cout< < < : fixed)< (1)< cout< : fixed)< } floatstudent: : sall()//求总分 {returneng+math+clang; } floatstudent: : save()//求平均分 {returnsall()/3;} voidstudent: : objrank() {intn; rank[0]=(int)eng; rank[1]=(int)math; rank[2]=(int)clang; for(inti=0;i<3;i++) {n=rank[i]/10; switch(n) { case9: n=1;break; case8: n=2;break; case7: n=3;break; case6: n=4;break; default: n=5;} rank[i]=n; } } //类student结束 //类leo开始 classleo {private: studentitem[Smax]; intsize; public: leo(); voidlsize(int);//设置数组大小 voidlinit();//清空 voidlinsert();//添加 voidldelet(string);//删除 voidlsearch(string);//查找 voidlchan(string);//修改 voidlpcent();//成绩分类 voidlrow();//排序 voidobave();//求平均 voidlview();//显示全部数据 voidlcin();//从磁盘输出 voidlcout();//储存到磁盘 }; leo: : leo() {studentitem[Smax]; lsize(0); } voidleo: : lsize(inti) {size=i; } voidleo: : linit() {lsize(0); cout<<"学生数据清除成功"< cout<<"当前无学生数据。 请添加...."< } voidleo: : ldelet(stringa) { intk=0;stringc; for(inti=0;i if(item[i].getn()==a) { cout<<"你将要删除的数据如下: "< shows(); item[i].sshow(); cout<<"确定删除吗? 请输入(y/n): "; cin>>c; if(c=="y"||c=="Y"){item[i]=item[--size];k=1;} } if(k! =1)cout<<"\n删除失败! "< elsecout<<"\n删除成功! "< } voidleo: : linsert()//添加 { stringa="y"; while(a=="y") {intmn=0; if(size>Smax)cout<<"超出范围,不能再添加! "< else { cout<<"\n请输入学号,姓名,英语,数学,c++成绩: "< stringa1,a2;floatb1,b2,b3; cin>>a1>>a2>>b1>>b2>>b3; for(inti=0;i if(item[i].getn()==a1) {mn++;
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- C+ 实现 学生 成绩 统计 管理 系统