欢迎来到淘文阁 - 分享文档赚钱的网站! | 帮助中心 好文档才是您的得力助手!
淘文阁 - 分享文档赚钱的网站
全部分类
  • 研究报告>
  • 管理文献>
  • 标准材料>
  • 技术资料>
  • 教育专区>
  • 应用文书>
  • 生活休闲>
  • 考试试题>
  • pptx模板>
  • 工商注册>
  • 期刊短文>
  • 图片设计>
  • ImageVerifierCode 换一换

    学生成绩管理系统设计与实现56.docx

    • 资源ID:46226782       资源大小:77.60KB        全文页数:21页
    • 资源格式: DOCX        下载积分:15金币
    快捷下载 游客一键下载
    会员登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录   QQ登录  
    二维码
    微信扫一扫登录
    下载资源需要15金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    学生成绩管理系统设计与实现56.docx

    河南工程学院高级程序设计语言课程设计成果报告学生成绩管理系统设计与实现将主函数定义为友元函数,方便访friend void main();问类中的成员);Tstu:Tstu ( char n20,Tstu:Tstu ( char n20,int num, float ma, float cj,float eng )strcpy(name, n);number=nuni;math=ma;cpp=cj;english=eng;strcpy(name, n);number=nuni;math=ma;cpp=cj;english=eng;得到姓名得到学号得到数学成绩 得到C+成绩 得到英语成绩float Tstu:getsum()(sum=cpp+english+math;return sum;float Tstu:getsum()(sum=cpp+english+math;return sum;得到总分的函数float Tstu:getaver () (average=getsum ()/3;return average;float Tstu:getaver () (average=getsum ()/3;return average;/得到平均分的函数ase 1:ase 1:char c;char name30;数据的录入用于在小项中选择是否继续操作输入姓名的操作输入学号的操作输入成绩的操作作一个文本文档在文int number;float math, cpp, english;docout请输入姓名:/z<<endl;cin>>name;cout<请输入学号:z/<<endl;cin>>number;cout<<请输入数学成绩:<endl;cin>>math;cout<请输入 C+成绩:<endl;cin>>cpp;cout<”请输入英语成绩:“<<endl;cin>>english;fstream outfile, infile;件夹中用于显示所录入的数据outf ile. open (z/f 1. txt, ios: :out | ios: :app); cout<<z/fl. txt can not open. nzz;return;outf ile<<name<<, "(<“学号:,<<number<</, 数学成绩:<<C+成绩:,<<cpp<</ 外语成绩:english<<endl;outfile. close();infile, open (/zf 1. txt, ios: : in);if(!file)判断文件是否翻开 cout<<z/f 1. txt can not open. nz/;return;char ch;while(infile, get (ch)cout<<ch;cout<<endl;infile, close();j+;si=new Tstu(name, number, math, cpp, english);i+;cout<<"数据录入成功,想继续录入吗(y/n),«endl;3. 3保存数据功能的设计保存数据主要是对数据的保密性,可持续性等进行完整的保存,以便以后程 序在应用是能准确无误的调用所保存的数据。fstream outfile, infile; 作一个文本文档在文件夹中用于显示所 录入的数据outf ile. open (?/f 1. txt, ios: :out | ios: :app);if(!file) cout<<z/fl. txt can not open. n/z;return;outf i le<<name<<,/学号:,<<number<</, 数学成绩:<<C+成绩:,<<cpp<</ 外语成绩:english<<endl;outfile. close();infile, open (/zf 1. txt, ios: : in);if(!file)判断文件是否翻开 cout<</zf 1. txt can not open.n;return;char ch;while (infile, get(ch) cout<<ch;cout<<endl;infile, close();j+; si=new Tstu(name, number, math, cpp, english);i+;cout<数据录入成功,想继续录入吗(y/n),<<endl;cin>>c;chrisl=0;do if (c!=,y' &&c!二'n ) cout<<"指令错误!请重新输入! ,«endl;cin>>c;else chrisl=l; while (chrisl-0);while(c二二'y'); 重复输入break;3.4查询数据功能的设计查询功能主要分为两种:(1)按总分查询;(2)按姓名查询。(1)按总分查询case 5 :按总分查询int j=0;float SUM;char c;int flag;if(i=0)(cout系统中没有输入数据,请先输入数据!endl;break;iodoflag=0;cout«请输入您要查询的学生的总成绩:<<endl;cin»SUM;if(sj->getsum()=SUM)(flag=l;cout« 您要查询的学生是:,z« (*sj). name<<endl;cout”该生的信息为:,«endl;cout«,/ 学号:(*sj). number*”数学分数:c+分数:"(*sj). cpp<< 英语分数z/<< (*s j). english<<endl; for (int j=0; j<i ; j+)if (flag=0) cout对不起!您要查询的学生不存 在! "<<endl;cout<”是否继续查?(y/n):;cin>>c;if (c!=,y' &&c!='n )cout”指令错误!请重新输入! “<endl;cin>>c;);while(c=,y');break;11(2)按照姓名查询case 6:按姓名查询char n20;char c;int j=0;int flag;if (i=0)(cout(<”系统中没有输入数据,请先输入数据! ”<endl ;break;)do(flag=0;cout<<”请输入要查询的名字:“<<endl;cin>>n;for(int j=0;j<i;j+)(if(strcmp (n, (*sj). name)=0)(flag=l;cout<您要查询的学生是:,<<(*sj). name<<endl;cout« 该生的信息是:学号:(*sj). number<</z 数学分数:< (*sj). mathc+分数:/z« (*sj). cpp<英语分数:(*sj). english<<endl;)if(flag=0)cout<<对不起您要查询的学生不存在,请查证后再输入!<Xendl;12cout<您想继续查询吗?(y/n):;cin>>c;if (c!=,y' &&c!二'n )(cout<指令错误!请重新输入:,«endl;cin>>c;)while(c二二'y');break;3. 5修改数据功能的设计case 4 :修改数据(string sname, line, str, name;int nu;float eng, ma, com;int flag;char c;if (i=0)cout<<”系统中没有输入数据,请先输入数据! “<<endl; break;do(flag=0;cout« 请输入您要修改的学生的姓名:;cin>>name;fstream fin (fL txt,ios:in);ofstream outfile(/zf. txt,ios: : trunc | ios: :out);cout<<endl;while(!fin. eof ()在文件中查找13 getline (fin, line);istringstream stream(line);sname = line. substr(O, line. find(,z ,0);if (name!=sname)(outfile<<line<<endl;)else flag=l;fin. close ();if(flag=l)cout<<请输入修改学生姓名及其新学号,数学,C+和 英语成绩:;cin>>name>>nu>>ma>>com>>eng;cout<<endl;outf ile«name<</,学号:”<nu« 数学成绩:“<”C+成绩:"<<"外语成绩:"<<eng<endl;outfile. close();fstream outf(f1. txt,ios:trunc|ios:out);fstream inf(f. txt,ios:in);outf<<inf. rdbuf()<<endl;outf. close ();inf. close ();if (flag=0) cout<“对不起,您要修改的学生不存在!请杳 证后输入!Vendl;cout«想继续修改吗(y/n):"cin>>c;14cout<<endl;if (c!='y' &&c!='n,)cout«,,指令错误!请重新输入! "<<endl<<” cin>>c;while(c=,y');break;6数据排列的设计 if (i=0)(cout<<”系统中没有输入数据,请先输入数据!,«endl;break;int h,g,n;int j=0;float a100, temp;for (g=0;g<i;g+)(aj = (*sg). getsumQ ; j+;for (h=O;h<i;h+)for (n=0;n<i-h;n+)if(an>an+l)temp=an;an=an+l;an+l=temp;for (n=i;n<=i;n+)cout<<an<<endl;break;153.7主函数的设计void main ()(cout*欢迎来到学生成绩查询系统*endl;cout«请选择您需要的操作!endl; 菜单的输出cout<操作:,z«endl;cout«/,(1)数据录入“<<endl;cout<<,z (2)增加学生<<endl;cout<<,/ (3)删除学生”<endl;cout (4)修改数据<endl;cout<查询:endl;cout<<,/ (5)按总成绩查询<<endl;cout(6)按姓名查询endl;cout«,/ (7)输出所有学生的数据<<endl;cout成绩统计:,<<endl;cout«,(8)每个学生的平均成绩<endl;cout<<,/ (9)各科不及格人数<endl;cout排名:<endl;cout<<,/ (10)按总分查询排名"<<endl;cout<(11)退出<<endl;cout«选择相关操作请输入相对的括号里的阿拉伯数字及字母! <endl;16题目学生成绩管理系统设计与实现考核工程考核内容得分平时考核(30分)出勤情况、态度、效率;知识掌握情况、 基本操作技能、知识应用能力、获取知识能力系统设计(20分)分析系统的功能模块编程调试(20分)实现系统的各个功能模块,并完成调试回答下列问题(15分)回答老师针对课程设计提出的问题课程设计报告撰写(10分)严格按照规范要求完成课程设计报告源代码(5分)按照规范要求完成课程设计源代码的排版总评成绩指导教师评语:日期:第4章系统调试运行每一个case都能执行,但是有很多的地方都不够完善,例如:在总成绩排 序中,只能输出总成绩,不能单独的输出学生的相应的信息;每次进行别的操作 之前都要在进行一次数据的录入,不能直接对原有的文件进行读取。4. 1成绩的录入在程序运行的简捷窗口,选择自己所要查询的目的。例如录入成绩,选择数 字lo如图4. Io护择相关操作请输入相对的括号里的阿拉伯数字及字母!,输姓名:xiaoning倩输入学号:请输入数学成绩:89请输入C1成绩:90苗输入英语成绩:94xiaoning 学号:201300001 数学成绩:89 C"成绩外语成绩:94数据录入成功,想继续录入吗图4. 1成绩录入4. 2成绩的增加在程序运行的简捷窗口,选择自己所要查询的目的。例如增加成绩。选择数 字2。如图4.2。选择相关操作请输入相对的括号里的阿拉伯数字及字母!,输入您要增加的学生的姓名:wanghong请输入你要增加的学生的学号:201300002请输入数学成绩:88请输入C成绩:78请输入英语成绩:90xiaoning 引导201300001 数学成绩:89 C成绩夕卜语成绩:94 wanghong 学号:201300002 数学成绩:88 C1成绩:78 外语成绩:90数据录入成功,想继续录入吗y/Q图4. 2成绩增加4. 3删除17在程序运行的简捷窗口,选择自己所要查询的目的。例如选择数字3,删除 成绩。如图4.3。选择相关操作请输入相对的括号里的阿拉伯数字及字母I请输入您要删除的学生的姓名:uanghong数据删除成功,想继续删除吗y/n)图4.3成绩删除4修改在程序运行的简捷窗口,选择自己所要查询的目的。例如选择数字4,修改 成绩,如图4.4。选择相关操作请输入相对的括号里的阿拉伯数字及字母!请输入您要修改的学生的姓名Liaoning请输入修改学生姓名及其新学号,数学,C+和英语成绩 201300001929094图4. 4成绩修改4.5查询在程序运行的简捷窗口,选择自己所要查询的目的。例如选择数字6,查询 总成绩。如图4.5。请输入要查询的名字;lining您妻善询的学生是:lining读生的宿息是:学号:201300001数学分数:92c 分数:90英语分数:94 您想继续查询吗?图4.5成绩查询6排序显示在程序运行的简捷窗口,选择自己所要查询的目的。例如选择数字io,用 总成绩排序,如图4.6。18遒迺择您需要的操作!榛作:、3)数据录入2)增加学生3)删除学生< 4修筱数据*询:< 5)隹总成绩查询<6;安姓名查询7瀚出所有军生的数据成缄统计:8淘个学生的平均成绩<9)各科不及格人数排名:30按总分查询排名<11退出选择相关操作请输入相对的括号里的阿拉伯数字及字母!10256267图4. 6排序总成绩4.7退出程序在程序运行的简捷窗口,选择自己所要查询的目的。例如选择数字11,退 出程序!如图4. 7o选择相关操作请输入相对的括号里的阿拉伯数字及字母! 11您想继续进行其他操作吗?。儿5Pi*ess any key to continue图4.7退出程序19课程设计体会实践是检验真理的唯一标准,实践能积累我们的经验,找到我们的缺乏,更 好的掌握我们所要学习的东西。这次的C+教学实践活动,使我学到了很多的知 识,弥补了我的很多漏洞。通过这次实践活动使我认识到C+和C语言的不同, C语言是基本的语言,而C+是C语言的超集。通过C+的学习有利于开发自己 的逻辑思维能力,培养自己的分析问题、解决问题的能力。希望以后能多进行这 样的实训,加长时间,培养学生独立思考问题的能力,提高实际操作水平。20参考文献1谭浩强C+面向对象程序设计清华大学出版社2谭浩强C+面向对象程序设计题解与上机指导清华大学出版社3谭浩强C语言程序设计清华大学出版社4 Y. Daniel Liang.C+语言程序设计基础篇机械工业出版社5 Kathy Sierra.Head First C+东南大学出版社6 谭浩强C+程序设计实践指导清华大学出版社21第1章系统设计目的11.1 课程设计目的11.2 课程设计内容1第2章 系统实现思路22.1问题的需求分析22. 2系统性能要求22. 3系统功能模块22.4模块框架图2第3章系统详细设计43.1有关类的设计43. 2输入数据功能的设计63. 3保存数据功能的设计93. 4查询数据功能的设计103. 5修改数据功能的设计133. 6数据排列的设计153. 7主函数的设计16第4章系统调试运行174. 1成绩的录入174. 2成绩的增加174. 3删除174 . 4修改185 .5查询184. 6 排序显示184. 7退出程序19课程设计体会20参考文献21第1章系统设计目的1.1 课程设计目的C+程序设计不仅具有很强的理论性,更是一门实践性非常强的课程, 其实践教学环节的效果直接影响着理论教学的效果。本课程注重边学边练,但由 于课堂教学和实验的深度与广度有限,练习的深度也受到了一定的限度。为了弥 补这一点,而设置了C+程序设计实践教学的方案,主要以教学实习的方式 对学生进行综合训练,培养实际分析问题、编程和动手能力,通过教学实习,帮 助学生系统地掌握面向对象程序设计方法及各种编辑技巧,努力成为自由驾驭程 序设计语言的软件编程能手。1.2 课程设计内容1 .设计四个类:学生类(描述学生基本信息);成绩类;班级类;课程类(描 述课程信息,课程编号,科目名称(如高等数学,大学英语等)。学生成绩及 课程信息用文件保存,每个类一个文件,程序执行时从文件读入。2 .能按学期,按班级完成对学生成绩的录入,修改,能按班级统计学生的成绩; 求学生的总分及平均分;并能根据学生的平均成绩进行排序,能查询学生成绩,不 及格科目及学生名单;能按班级输出学生的成绩单。- 设置学生的成绩信息:学生学号、姓名、所选课程名称、平时成绩、期 末成绩、平时成绩所占百分比;- 计算学生总评成绩:总评成绩:平时成绩*平时成绩所占百分比+期末成绩 * (1-平时成绩所占百分比);- 显示学生的姓名、所选课程名称以及平时成绩、期末成绩和总评成绩信 息。分单人显示和以班输出(班成绩单格式输出到文件);注意,至少一个班,30人三门课。第2章 系统实现思路2.1 问题的需求分析.能对学生各科成绩进行录入。1 .能对学生的成绩进行增加。2 .能对学生的成绩进行删除。3 .能对学生的成绩进行修改。4 .能对学生的成绩按总成绩,姓名,进行查询。5 .能输出学生的所有数据。6 .能进行成绩统计。7 .能进行总分查询排名。2. 2系统性能要求.系统平安、可靠;1 .功能齐全;.操作方便、界面友好;2 易于维护和扩充。2. 3系统功能模块学生成绩查询系统有:成绩录入、增加、删除、修改,数据查询,排序显示 构成。2.4模块框架图根据学生的基本信息,借助C+有的优势特点,我们做出了以下的模幅员块, 便于理解和设计运用。.学生成绩管理系统增 加删 除修 改操作录 入图27模版框架图每个 学生 的平 均成 绩成绩统计按总成绩排名科及人 各不格数第3章系统详细设计3.1有关类的设计从题中要求可知,要设计四个类。(1)成绩类:大体上分为三类:数学、英语、C+;但是每一类又可分为三 个小的局部:平时成绩、期末成绩和总评成绩。因此,我这样来定义这样的成绩 类。class gradePublic:Double math3;Double English3;Double c+3;(2)班级类:对于班级类,主要是学生成绩的划分;按照班级划分和按照 学期划分。所以,班级类中就有两个成员year和class。class ClassPublic:Int year;Int class;(3)分数类:对于分数类,主要是针对对象一一学生,因此分数类是从grade 和class公共派生类,在分数类中,还要统计三个科目的成绩,所以就把统计函 数写在了这里面。Class scorejpublic grate, public classPublic:Char name30;Char number30;Double sum;Double average;Double mh () Return (math0*math3+math1*(l-math2); Double eg() (Return (English0*rnglish3+Englishl*(1-english2); Double c () (Return (c+0)*(c+3) + (c+1)*(l-c+ 2); );(4)学生类:对于学生类,就比拟复杂了,首先要定义学生的数组来表示 学生在哪学年,班级等,接下来要写函数了,析构函数,保存函数,查找函数, 排序函数,修改函数等等。 Class student Private:Score stu2 2 m;学生数组static int sizel, size2, size3, size4; int si, s2, s3, s4;定义数据public: Student () sl=0; s2=0; s3=0; s4=0;构造函数"Student () 析构函数void add();添加函数void search();查找函数名单函数修改函数排序函数排序函数保存函数读取函数void list ();void change ();void sortl ();void sort2 ();void save ();void output ();); int Student:sizel=0;int Student:size2=0;int Student:size3=0;int Student:size4=0;3. 2输入数据功能的设计输入函数主要是输入要存入的学生信息:姓名,学生的各科成绩等,由于 要输入大量的数据,所以我就用数组来定义一班三十个人的姓名,这样就可以直 接的输入,以便在之后的程序中用到。录入的时候,我用到了一个类,其中的各 科成绩都有分别的输入,从而保证了程序的条理清晰,不给人那么凌乱感。class Tstu通过定义一个类来定义数据录入的函数(char name 30;定义一个学生姓名的数组int number;float math, cpp, english, average, sum;/定义三科的科目,平口寸成绩 总评成绩 public:Tstu();Tstu ( char n30, int num, float ma, float cj,float eng );float getsumO;得到总分的函数float getaver();得到平均分的函数

    注意事项

    本文(学生成绩管理系统设计与实现56.docx)为本站会员(太**)主动上传,淘文阁 - 分享文档赚钱的网站仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知淘文阁 - 分享文档赚钱的网站(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于淘文阁 - 版权申诉 - 用户使用规则 - 积分规则 - 联系我们

    本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

    工信部备案号:黑ICP备15003705号 © 2020-2023 www.taowenge.com 淘文阁 

    收起
    展开