版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、精选优质文档-倾情为你奉上内蒙古科技大学本科生课程设计说明书题 目:面向对象课程设计 学生成绩管理系统学生姓名:*学 号:*专 业:计算机科学与技术班 级:11级-3班指导教师:*2013年1月6日内蒙古科技大学课程设计任务书课程名称面向对象课程设计设计题目学生成绩管理系统指导教师*时间2012.12.312013.1.4一、教学要求1. 巩固和加深学生对C+面向对象课程的基本知识的理解和掌握2. 掌握C+面向对象课程和程序调试的基本技能3. 利用C+进行基本的软件设计4. 掌握书写程序设计说明文档的能力5. 提高运用C+解决实际问题的能力二、设计资料及参数每个学生在教师提供的课程设计题目中任
2、意选择一题,独立完成,题目选定后不可更换。某班学生成绩管理,包括以下功能:v 从键盘输入包括学号、姓名、各门课程成绩(不少于5门),并将其保存在磁盘文件里v 打开文件后,计算每个人的总分和平均分,排序并保存v 具有单项查询或多项查询的功能(即按照给定的关键字,如姓名找出满足条件的纪录)v 具有插入、删除和修改功能v 具有输出文件数据信息的功能三、设计要求及成果1. 分析课程设计题目的功能需求(可选用数组或链表实现,可多人(最多3人)协作完成一个题目)2. 写出详细设计说明(至少包括功能实现分析和模块流程图)3. 编写程序代码,调试程序使其能正确运行(代码书写要规范,标示符要见名知意,要有必要的
3、注释,每人至少3个函数,每人至少200行代码,不包括注释和花括号)4. 设计完成的软件要便于操作和使用5. 设计完成后提交课程设计报告(请严格按照模板进行排版)四、进度安排第一天 选择课程设计题目,分析课题的要求第二天 编程第三天 编程及调试第四天 写课程设计报告第五天 提交课程设计报告(打印稿及电子稿)五、评分标准1. 根据平时上机考勤、表现和进度,教师将每天点名和检查2. 根据课程设计完成情况,必须有可运行的软件。3. 根据课程设计报告的质量,如有雷同,则所有雷同的所有人均判为不及格。六、建议参考资料1C+面向对象程序设计,吴敏 杨国林,内蒙古大学出版社2C+面向对象程序设计习题解答与实验
4、指导,吴敏,内蒙古大学出版社目 录专心-专注-专业第一章 需求分析1.1 引言建立学生成绩管理系统,通过使用计算机对学生成绩进行管理,进一步提高办学效率。此设计说明书是对学生成绩管理系统开发的一个初步的分析说明性文档,旨在通过该文档清晰的阐述系统的实际功能,方便系统开发人员对系统的理解以及与用户的沟通。文档相关说明部分在目录部分已全部涵盖,阅读此文档的相关人员可以通过目录索引找到相应部分予以阅读。1.2 任务概述某班学生成绩管理,包括以下功能:v 从键盘输入包括学号、姓名、各门课程成绩(不少于5门),并将其保存在磁盘文件里v 打开文件后,计算每个人的总分和平均分,排序并保存v 具有单项查询或多
5、项查询的功能(即按照给定的关键字,如姓名找出满足条件的纪录)v 具有插入、删除和修改功能v 具有输出文件数据信息的功能1.3 数据描述该管理系统程序中数据主要有:学生的学号、姓名、各门课程成绩、每个人的总分和平均分、查询、输出、插入、删除和修改等功能。1.4 功能需求(1) 输入模块:有关学生的信息,各门课程成绩的输入;(2) 输出模块:学生成绩的总分和平均分;(3) 查找模块:根据学生的姓名查询该学生的名次、成绩;(4) 排序模块:对学生成绩的排序;1.5 性能需求(1) 要求该管理系统具有一定的可扩展性以便适应发展,且便于维护;(2) 要求该管理系统便于使用,使用步骤简易明了。1.6 运行
6、需求基于windows平台下的窗口图形界面软件,运行主界面为windows的经典运行界面,采用多文档界面,从而使程序更加美观,整齐有序,简易操作。软件运行基于windows平台上的xp,Vista,win7等1.7 任务计划第一天 选择课程设计题目,分析课题的要求第二天 编程第三天 编程及调试第四天 写课程设计报告第五天 提交课程设计报告(打印稿及电子稿)第二章 概要设计2.1 总体设计设计目的:1. 巩固和加深学生对面向对象课程的基本知识的理解和掌握2. 掌握面向对象设计语言编程和程序调试的基本技能3. 利用面向对象设计语言进行基本的软件设计4. 掌握书写程序设计说明文档的能力5. 提高运用
7、面向对象设计语言解决实际问题的能力主菜单退出系统插入学生信息查询学生信息输出学生信息输入学生信息图2.1:程序总体设计图2.2 数据类型设计(或数据结构设计)表2.1:数据类型设计数据数据类型学生各门课程成绩int型学号姓名字符型变量平均分浮点型数据姓名字符型变量2.3接口设计表2.2:函数列表函数名函数格式 /即函数首部函数功能getdatavoid输入学生信息sortvoid按照成绩总分排序dispvoid显示结果initdispvoid初始化界面adddatavoid添加学生记录namefindvoid按照姓名查找记录disponevoid显示一个学生的记录usechoiceint根据用
8、户选择获取不同的操作inputonenameint输入一个学生的姓名delevoid删除学生记录showavervoid显示学生平均分quitvoid退出系统2.3 运行界面设计图2.2:运行界面设计第三章 详细设计3.1 输入模块设计输入学生信息:void compute:getdata()int i,sno;float En,Ch,Ma,Ph,Ge,Tol;char tname10;cout<<"Please input the amounts of students!"cin>>ns;for(i=0;i<ns;i+)cout<<
9、;"Input the student's NO:"cin>>sno;nai.setNo(sno);cout<<"Input the student's name:"cin>>tname;nai.setname(tname);cout<<"Input the student's English score:"cin>>En;sumEng=sumEng+En;nai.setEng(En);cout<<"Input the stude
10、nt's Chinese score:"cin>>Ch;sumChi=sumChi+Ch;nai.setChi(Ch);cout<<"Input the student's Maths score:"cin>>Ma;sumMat=sumMat+Ma;nai.setMat(Ma);cout<<"Input the student's Physics score:"cin>>Ph;sumPhy=sumPhy+Ph;nai.setPhy(Ph);cout<<
11、;"Input the student's Geography score:"cin>>Ge;sumGeo=sumGeo+Ge;nai.setGeo(Ge);Tol=En+Ch+Ma+Ph+Ge;nai.settotal(Tol);3.2 输出模块设计显示输出结果:void compute:disp()cout<<"List"<<" NO"<<" Name"<<" English"<<" Chinese&q
12、uot;<<" Maths"<<" Physics"<<" Geography"<<" Total "<<endl;for(int i=0;i<ns;i+)cout<<i+1<<" "<<nai.getNo()<<" "<<nai.getname()<<" "<<nai.getEng()<<&qu
13、ot; "<<nai.getChi()<<" "<<nai.getMat()<<" "<<nai.getPhy()<<" "<<nai.getGeo()<<" "<<nai.gettotal()<<endl;显示一个学生的记录:void compute:dispone(int i)cout<<"List"<<" NO"<
14、;<" Name"<<" English"<<" Chinese"<<" Maths"<<" Total "<<endl;cout<<1<<" "<<nai.getNo()<<" "<<nai.getname()<<" "<<nai.getEng()<<" "
15、;<<nai.getChi()<<" "<<nai.getMat()<<" "<<nai.getPhy()<<" "<<nai.getGeo()<<" "<<nai.gettotal()<<endl;显示学生平均分:void compute:showaver(int num)int i;for(i=0;i<ns;i+)if(nai.getNo()=num)cout<<"
16、学号:"<<nai.getNo()<<endl;cout<<"姓名:"<<nai.getname()<<endl;3.3 查找模块设计按照姓名查找学生:void compute:namefind(int num)int i; for(i=0;i<ns;i+)if(nai.getNo()=num)dispone(i);if(i>=ns)cout<<"没有您要查的记录"<<endl;按照学号查找学生:int compute:inputonename()i
17、nt num;cout<<"请输入要查找的学生学号:"cin>>num;return num;3.4 排序模块设计按照成绩进行排序:void compute:sort() /直接选择排序int i,j,pick;std temp;for(i=0;i<ns-1;i+)pick=i;for(j=i+1;j<ns;j+)if(naj.gettotal()>napick.gettotal()pick=j;temp=nai;nai=napick;napick=temp;3.5添加模块设计添加学生记录:void compute:adddata(
18、)int i,sno;float En,Ch,Ma,Ph,Ge,Tol;char tname10;if(ns=0)cout<<"请先选择1添加数据,然后在选择2增加记录"<<endl;return ;cout<<"请输入要添加的学生记录"cin>>addns;for(i=0;i<addns;i+)cout<<"Input the student's NO:"cin>>sno;nans+i.setNo(sno);cout<<"In
19、put the student's name:"cin>>tname;nans+i.setname(tname);cout<<"Input the student's English score:"cin>>En;sumEng=sumEng+En;nans+i.setEng(En);cout<<"Input the student's Chinese score:"cin>>Ch;sumChi=sumChi+Ch;nans+i.setChi(Ch);cout&l
20、t;<"Input the student's Maths score:"cin>>Ma;sumMat=sumMat+Ma;nans+i.setMat(Ma);cout<<"Input the student's Physics score:"cin>>Ph;sumPhy=sumPhy+Ph;nans+i.setPhy(Ph);cout<<"Input the student's Geography score:"cin>>Ge;sumGeo=s
21、umGeo+Ge;nans+i.setGeo(Ge);Tol=En+Ch+Ma+Ph+Ge;nans+i.settotal(Tol);ns=ns+addns;3.6删除模块设计删除学生记录:void compute:dele(int num)int i,cunt,flag=0;/学号是否存在if(num<0)cout<<"超出学号范围"<<endl;return ;for(i=0;i<ns;i+)if(nai.getNo()=num)/记录该学号在数组中的位置cunt = i;flag=1;if(!flag)cout<<&qu
22、ot;学号不存在"<<endl;return ; for(i=cunt;i<ns-1;i+)nai.setname(nai+1.getname();nai.setNo(nai+1.getNo();nai.setEng(nai+1.getEng();nai.setChi(nai+1.getChi();nai.setMat(nai+1.getMat();nai.setPhy(nai+1.getPhy();nai.setGeo(nai+1.getGeo();nai.settotal(nai+1.gettotal();ns = ns - 1;3.7退出模块设计退出系统:vo
23、id compute:quit()FLAG=0;cout<<"程序在3秒后关闭"<<endl;_sleep(1000);cout<<"还剩2秒"<<endl;_sleep(1000);cout<<"还剩1秒"<<endl;_sleep(1000);return ;第四章 测试分析4.1 测试程序执行情况图4.1:运行主界面图4.2:输入学生信息图4.3:添加学生记录图4.4:按照学号查找学生记录图4.5:按照总分排序图4.6:学生各科平均分图4.7:学生成绩信息记
24、录图4.8:删除学生信息图4.9:退出学生成绩管理系统4.2 出现的问题和解决的方法1、 多次出现未知标示符,导致程序无法正常运行:发现打代码时,没有把简写字母打上,加上简写字母后,程序运行正常。第五章 课程设计总结课程设计是培养学生综合运用所学知识,发现,提出,分析和解决实际问题,锻炼实践能力的重要环节,是对学生实际工作能力的具体训练和考察过程.随着科学技术发展的日新日异,当今计算机应用在是生活中可以说得是无处不在。因此作为二十一世纪的大学来说掌握计算机开发技术十分重要的。我的课设题目是学生成绩管理系统,对于刚刚接触C语言的学生来说也是有一定难度的。如何将课堂所学和实践相结合是我们此次课设最
25、为重要的一部分,将所学的知识应用到实践中才是我们真正的将知识学到我们自己的脑子里。回顾此次课设,感受颇多,从开始课设到课设结束,确实学到了很多东西,不仅巩固了以前学到的知识,更是学到了很多以前未接触过的知识。通过这次课程设计使我懂得了理论与实际相结合是很重要的,只有理论知识是远远不够的,只有把所学的理论知识与实践相结合起来,从理论中得出结论,才能真正为社会服务,从而提高自己的实际动手能力和独立思考的能力。在设计的过程中遇到的问题,可以说是困难重重,第一次做课设,无法避免会遇到过各种各样的问题,同时在设计的过程中发现了自己的不足之处,对以前所学过的知识理解得不够深刻,掌握得不够牢固,通过这次课程
26、设计后,把以前所学过的知识都重新温故。在课程设计过程中,我学到了很多人生的哲理,懂得怎么样去制定计划,怎么样去实现这个计划,并掌握了在执行过程中怎么样去克服心理上的不良情绪,黑夜过去了,我们收获的是黎明。一时的失意不算什么,只要能坚持下去,就一定会成功的。感谢这次课设让我明白很多,了解很多,同时也改变很多。附录:程序代码#include<string.h>#include<iostream.h>#include <windows.h>#define N 10000int FLAG=1;class stdint No;char name10;float Eng
27、;float Chi;float Mat;float Phy;float Geo;float total;public:void setname(char na)strcpy(name,na);void setNo(int n)No=n; void setEng(float e)Eng=e;void setChi(float c)Chi=c;void setMat(float m)Mat=m;void setPhy(float p)Phy=p;void setGeo(float g)Geo=g;void settotal(float t)total=t;char* getname()retur
28、n name;int getNo()return No;float getEng()return Eng;float getChi()return Chi;float getMat()return Mat;float getPhy()return Phy;float getGeo()return Geo;float gettotal()return total;class computeint ns;int addns;std naN;static float sumEng;static float sumChi;static float sumMat;static float sumPhy;
29、static float sumGeo;public:void getdata(); /输入数据void sort(); /按照成绩总分进行排序 void disp();/显示结果void initdisp();/初始化界面int usechoice();/根据用户选择获取不同的操作void adddata();/添加学生记录void namefind(int);/按照姓名查找记录void dispone(int i);/显示一个学生的记录int inputonename(); /输入一个学生的姓名 void dele(int num); /删除学生记录void showaver(int nu
30、m);/显示学生平均分void quit();/退出系统compute()ns=0; float aveEng()return sumEng/ns; float aveChi()return sumChi/ns; float aveMat()return sumMat/ns;float avePhy()return sumPhy/ns;float aveChem()return sumGeo/ns;int getns()return ns;float compute:sumEng=0.0;float compute:sumChi=0.0;float compute:sumMat=0.0;flo
31、at compute:sumPhy=0.0;float compute:sumGeo=0.0;void compute:getdata()int i,sno;float En,Ch,Ma,Ph,Ge,Tol;char tname10; cout<<"Please input the amounts of students!"cin>>ns;for(i=0;i<ns;i+)cout<<"Input the student's NO:"cin>>sno;nai.setNo(sno);cout<
32、;<"Input the student's name:"cin>>tname;nai.setname(tname);cout<<"Input the student's English score:"cin>>En;sumEng=sumEng+En;nai.setEng(En);cout<<"Input the student's Chinese score:"cin>>Ch;sumChi=sumChi+Ch;nai.setChi(Ch);co
33、ut<<"Input the student's Maths score:"cin>>Ma;sumMat=sumMat+Ma;nai.setMat(Ma);cout<<"Input the student's Physics score:"cin>>Ph;sumPhy=sumPhy+Ph;nai.setPhy(Ph);cout<<"Input the student's Geography score:"cin>>Ge;sumGeo=sum
34、Geo+Ge;nai.setGeo(Ge);Tol=En+Ch+Ma+Ph+Ge;nai.settotal(Tol);void compute:sort() /直接选择排序int i,j,pick;std temp;for(i=0;i<ns-1;i+)pick=i;for(j=i+1;j<ns;j+)if(naj.gettotal()>napick.gettotal()pick=j;temp=nai;nai=napick;napick=temp;void compute:disp()cout<<"List"<<" NO&q
35、uot;<<" Name"<<" English"<<" Chinese"<<" Maths"<<" Physics"<<" Geography"<<" Total "<<endl;for(int i=0;i<ns;i+)cout<<i+1<<" "<<nai.getNo()<<"
36、; "<<nai.getname()<<" "<<nai.getEng()<<" "<<nai.getChi()<<" "<<nai.getMat()<<" "<<nai.getPhy()<<" "<<nai.getGeo()<<" "<<nai.gettotal()<<endl;void compu
37、te:initdisp()cout<<"*"<<endl;cout<<" 学生成绩管理系统 "<<endl;cout<<"*"<<endl;cout<<endl;cout<<"请根据要求选择下面的操作:"<<endl;cout<<"1、输入学生成绩记录"<<endl;cout<<"2、添加学生记录"<<endl;cout&
38、lt;<"3、按照学号查找学生记录"<<endl;cout<<"4、删除学生记录"<<endl;cout<<"5、按照总分排序"<<endl;cout<<"6、显示学生平均分"<<endl;cout<<"7、显示学生成绩记录信息"<<endl;cout<<"8、退出系统"<<endl;int compute:usechoice()int o
39、pt;cout<<endl;cout<<"请选择相应的操作,输入序号即可:"cin>>opt;return opt;void compute:adddata()int i,sno;float En,Ch,Ma,Ph,Ge,Tol;char tname10;if(ns=0)cout<<"请先选择1添加数据,然后在选择2增加记录"<<endl;return ;cout<<"请输入要添加的学生记录"cin>>addns;for(i=0;i<addns;
40、i+)cout<<"Input the student's NO:"cin>>sno;nans+i.setNo(sno);cout<<"Input the student's name:"cin>>tname;nans+i.setname(tname);cout<<"Input the student's English score:"cin>>En;sumEng=sumEng+En;nans+i.setEng(En);cout<&l
41、t;"Input the student's Chinese score:"cin>>Ch;sumChi=sumChi+Ch;nans+i.setChi(Ch);cout<<"Input the student's Maths score:"cin>>Ma;sumMat=sumMat+Ma;nans+i.setMat(Ma);cout<<"Input the student's Physics score:"cin>>Ph;sumPhy=sumPhy+
42、Ph;nans+i.setPhy(Ph);cout<<"Input the student's Geography score:"cin>>Ge;sumGeo=sumGeo+Ge;nans+i.setGeo(Ge);Tol=En+Ch+Ma+Ph+Ge;nans+i.settotal(Tol);ns=ns+addns;void compute:dispone(int i)cout<<"List"<<" NO"<<" Name"<<&qu
43、ot; English"<<" Chinese"<<" Maths"<<" Total "<<endl;cout<<1<<" "<<nai.getNo()<<" "<<nai.getname()<<" "<<nai.getEng()<<" "<<nai.getChi()<<&quo
44、t; "<<nai.getMat()<<" "<<nai.getPhy()<<" "<<nai.getGeo()<<" "<<nai.gettotal()<<endl;void compute:namefind(int num)int i; for(i=0;i<ns;i+)if(nai.getNo()=num)dispone(i);if(i>=ns)cout<<"没有您要查的记录"<
45、;<endl;int compute:inputonename()int num;cout<<"请输入要查找的学生学号:"cin>>num;return num;void compute:dele(int num)int i,cunt,flag=0;/学号是否存在if(num<0)cout<<"超出学号范围"<<endl;return ;for(i=0;i<ns;i+)if(nai.getNo()=num)/记录该学号在数组中的位置cunt = i;flag=1;if(!flag)cout
46、<<"学号不存在"<<endl;return ; for(i=cunt;i<ns-1;i+)nai.setname(nai+1.getname();nai.setNo(nai+1.getNo();nai.setEng(nai+1.getEng();nai.setChi(nai+1.getChi();nai.setMat(nai+1.getMat();nai.setPhy(nai+1.getPhy();nai.setGeo(nai+1.getGeo();nai.settotal(nai+1.gettotal();ns = ns - 1;void
47、compute:showaver(int num)int i;for(i=0;i<ns;i+)if(nai.getNo()=num)cout<<"学号:"<<nai.getNo()<<endl;cout<<"姓名:"<<nai.getname()<<endl;void compute:quit()FLAG=0;cout<<"程序在3秒后关闭"<<endl;_sleep(1000);cout<<"还剩2秒"<<endl;_sleep(1000);cout<<"还剩1秒"<<endl;_sleep(1000);return ;void main()comput
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024年房屋买卖合同证明范本
- 2024年教育软件代理协议范本书
- 吉林公务员面试模拟35
- 建筑工程总包各分部分项工程质量观感标准和实测实量标准
- 2024年个人分期还款协议书模板
- 2015年06月27日湖北省宜昌市乡镇公务员面试真题
- 2024年聘用高管合同范本
- 2024年借款车辆抵押合同范本
- 广西申论模拟117
- 2024年红木家具买卖合同格式
- 苏教版一年级数学下册公开课《两位数加一位数(进位)》教学设计
- 三年级上册北师大版数学应用题专题训练
- 北师大版数学八上4.3.1《正比例函数的图像与性质》(22张).ppt课件
- 20201105 中药均一化研究技术指导原则(试行)》的通告(2020年第38号)
- 新会计准则会计科目表(中英文对照)
- 框架剪力墙结构施工组织设计施工方案
- 频谱分析与处理PPT课件
- 校园放心食品安全工程A级示范食堂量化评定标准
- 2012土壤学 第十五章 土壤分类与调查技术ppt
- 既有火车站站场改造过渡旅客天桥应用技术
- 公司搞笑小品 公司活动小品 (公司岁月) (最新)
评论
0/150
提交评论