




已阅读5页,还剩25页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
高级程序设计语言课程设计成果报告学生成绩管理系统设计与实现学生学号: 学生姓名: 学 院: 计算机学院 专业班级: 软件工程1342 专业课程: 高级程序设计语言指导教师: 2014 年 6 月 27 日题 目学生成绩管理系统设计与实现考核项目考核内容得分平时考核(30分)出勤情况、态度、效率;知识掌握情况、基本操作技能、知识应用能力、获取知识能力系统设计(20分)分析系统的功能模块编程调试(20分)实现系统的各个功能模块,并完成调试回答问题(15分)回答老师针对课程设计提出的问题课程设计报告撰写(10分)严格按照规范要求完成课程设计报告源代码(5分)按照规范要求完成课程设计源代码的排版总 评 成 绩指导教师评语: 日期: 年 月 日目 录第1章 系统设计目的级任务11.1系统设计目的11.2系统设计要求1第2章 系统实现思路22.1各个类基本功能22.2类间的联系3第3章 系统详细设计33.1分数类的设计(Class Score)43.2课程类的设计(class Course)43.3学生类的设计(Class Student)53.4班级类的设计(class Ban)63.4.1 Ban:show_()成员函数设计63.4.2 Ban:display()的设计73.4.3 Ban:pop_mark()的设计7第4章 系统调试运行84.1输入文件格式84.2调试运行结果9课程设计体会11参考文献12附 录13第1章 系统设计目的级任务1.1系统设计目的熟练掌握c+语言的基本知识和技能,掌握面向对象程序设计的基本思路和方法。通过实践掌握类与对象的概念、类的继承与多态、文件的打开与输入输出等,并利用所学的基本知识和技能解决程序问题,培养分析能力、解决问题的能力。1.2系统设计要求(1)设计四个类,包括学生类(描述学生基本信息);成绩类:班级类;课程类(描述课程信息:课程编号,科目名称,如高等数学,大学英语等);(2)学生成绩及课程信息用文件保存,程序执行时从文件读入;(3)能按学期,按班级完成对学生成绩的录入、修改,能按班级统计学生的成绩;(4)求学生的总分及平均分,并能根据学生的平均成绩进行排序,能查询学生成绩,不及格科目及学生名单;能按班级输出学生的成绩单。 设置学生的成绩信息:学生学号、姓名、所选课程名称、平时成绩、期末成绩、平时成绩所占百分比 计算学生总评成绩:总评成绩=平时成绩*平时成绩所占百分比+期末成绩*(1-平时成绩所占百分比) 显示学生的姓名、所选课程名称以及平时成绩、期末成绩和总评成绩信息。分单人显示和以班输出(班成绩单格式输出到文件) 注意,至少应包含一个班、30人、三门课 第2章 系统实现思路在系统实现过程中定义有4个类,这4个类层层继承,最后在班级类中定义成员函数层层调用实现输出学生所有信息,然后通过判断用户需求来实现查询学生个人成绩、班级成绩、不及格情况等功能。2.1各个类基本功能每个类都有其输出函数,根据实现功能的不同,通过成员函数来计算、输出所需成员的信息。在此特别说明,由于这4个类之间相当于层层继承关系,因此在定义成员函数时都需调用下一级类的成员函数,这样一层层下去便可输出学生的全部所需信息。表2.1 各类的数据成员类名成员分数类Score平时成绩score1,期末成绩score2,总评成绩score3,平时成绩所占百分比d。学生类Student姓名name,性别sex,学号num,总分score4,平均分score5,课程类对象数组course3。班级类Ban专业major,班级num,学生类对象数组student30。课程类Course科目编号num,科目名称name,及格情况h。2.2类间的联系在系统实现过程中定义了4个类,分别为班级类(Ban),学生类(Student),课程类(Course),成绩类(Score)。类之间层层嵌套,其中班级类中有学生类的对象数组,学生类中有课程类的对象数组,课程类中又包含成绩。在实现某总功能时只需调用一个成员函数便会进行一系列函数调用,从而实现输出各种所需信息。各类之间的关系如图2.1所示:class Banstudent30course3score.图2.1 类关系图第3章 系统详细设计在此详细说明各类的显示函数的定义。3.1分数类的设计(Class Score)通过show_s()函数来实现输出成绩的功能。总评成绩=平时成绩*平时成绩所占百分比+期末成绩*(1-平时成绩所占百分比)。代码实现:void Score:show_s()inflienumscore1score2d; score3=score1*d+score2*(1-d); cout学期:num平时成绩:score1 期末成绩:score2总评成绩:score3name; cout科目:names.score3;if(s.score360)h=f;s.show_s();cout不及格:namesexnum; cout姓名:name性别:sex学号:nums.score3;if(s.score360)h=f;s.show_s();cout不及格:majnum; cout专业:maj班级编号:numendl; for(int i=0;imajnum; cout专业:maj班级编号:numendl; for(int i=0;i30;i+) studenti.display(); 3.4.3 Ban:pop_mark()的设计Ban:pop_mark()函数负责打印学生个人成绩单。代码如下:void Ban : pop_mark() /学生个人成绩单查找 string na; string nu; coutna; coutnu; for(int i=0;na= & nu=studenti.num;i+) studenti.show_s(); 第4章 系统调试运行在程序基本完成并且无语法错误的情况下便可进行调试运行,看测试是否出现逻辑错误或者不满意的情况,然后进行针对性修改。4.1输入文件格式向文件输入数据的格式非常关键,格式不对程序运行便会出现各总错误。向文件输入学生信息的顺序如下:专业 班级 姓名 性别 学号 课程编号 课程名称 学期 平时成绩 期末成绩 平时成绩所占百分比.样例:软工 1342 李玉瑞 男 201312211201 142 高数 1 78 78 0.4242 英语 1 78 78 0.4234 程序 1 78 78 0.4软工 1342小辉 女 201312211208142 高数 1 89 89 0.4242 英语 1 78 56 0.4234 程序 1 90 89 0.4软工 1342小民 男 201312211218142 高数 1 80 78 0.4242 英语 1 67 34 0.4234 程序 1 86 98 调试运行结果程序运行,根据提示将所有学生信息输入并存到指定文件中,如图4.1所示:图4.1程序运行输入图程序会自动从wen.dat读入学生信息,用户可根据提示查找如图4.2所示:图4.2程序运行查找学生成绩图打印班级成绩单样例为:软工 1342 李玉瑞 男 201312211201 高数 1 78 78 78 英语 1 78 78 78程序 1 78 78 78总成绩:234 平均分:78小辉 女 201312211208高数 1 89 89 89英语 1 78 56 64.8程序 1 90 90 90总成绩:243.8 平均分:81.3小民 男 201312211218高数 1 80 80 80英语 1 67 67 67程序 1 86 86 86总成绩:233 平均分:77.7课程设计体会经过差不多一个星期的努力,基本上完成我的C+课程设计_学生成绩查询程序,也基本上实现了我在需求分析时所预期的功能。这次的课程设计,使我将从书本上学习到的理论知识用到了实践上,从而进一步巩固和丰富了我所学过的知识,让我更深层次地认识到C+及其强大的功能。同时,做这门课程设计也进一步加强了我的动手能力。为了完成好这次课程设计,我提前做了较多的准备,一边上网查找相关资料,另一方面查阅相关书籍。在这过程中也无形中锻炼了我的思维分析、遇到问题时想方设法解决问题的能力。但是,设计过程中也存在一些问题,本来一开始想给这个学生成绩查询程序输出设成图表的形式,以及添加修改功能,但是由于知识点不到位以及各种其他原因,使得这些想法没有实现,这是这次课程设计的一点遗憾。通过这次实训,让我知道了自己的不足和需要掌握的知识,我会在以后的学习中取长补短更加努力,学习课本知识的同时,多看与专业有关的书籍,并利用自身资源去更好的学习这门知识,同时在学习的过程中向老师、同学多多请教和讨论也是很重要的。参考文献1 谭浩强.C+面向对象程序设计(第二版).清华大学出版社2 谭浩强.C+面向对象程序设计试题及上机指导.清华大学出版社3 李予敏译.C+入门经典(第三版).清华大学出版社4 裘宗燕译.C+程序设计语言.机械工程出版社5 刘鑫 杨健康译.C+高级编程.机械工程出版社6 蒋爱军译.C+Primei中文版.人民邮电出版社附 录#include#include#includeusing namespace std;ofstream outfile(wen.txt,ios:out);ifstream infile(wen.txt,ios:in);class Score;class Course /课程类,包括课程编号,科目名称 public: void set_c(Score&); void show_c(Score&); void display(Score&); private: string num; string name;class Score /成绩类,包括学期,平时成绩,期末考试成绩,平时成绩所占百分比,及格情况。 public: friend void Course:set_c(Score&); /声明course类的成员函数是本函数的友元函数 friend void Course:show_c(Score&); void display(Score&); void set_s(); void show_s(); private: string num; int score1; int score2; double d; double score3; char h;class Student /学生类,包括姓名,性别,学号,课程类对象数组 public: void set_s(); void show_s(); void display(); string name; string sex; string num; Course course1; private:; class Ban /班级类,包括专业,年级,学生类对象数组 public: void set_b(); void show_b(); void pop_mark(); void display(); private: string maj; string num; Student student2; void Score: set_s() /定义成绩类的成员函数 coutnum; coutscore1; coutscore2; coutd; outfile学期:num平时成绩:score1期末成绩:score2numscore1score2d; score3=score1*d+score2*(1-d); cout学期:num平时成绩:score1期末成绩:score2总评成绩:score3endl; void Course:set_c(Score &s) /定义课程类的成员函数 coutnum; coutname; outfile科目编号:num科目名称:name; cout科目:names.score3;if(s.score360)h=f;s.show_s();cout不及格:endl;elseh=t;void Student:set_s() /定义学生类的成员函数 Score s; coutname; coutsex; coutnum; cout请输入学生的各科成绩:endl; outfile学生姓名:name性别:sex学号:num此学生的各科成绩:namesexnum; cout姓名:name性别:sex学号:numendl; course0.show_c(s); course1.show_c(s); course2.show_c(s); void Student:dispiay() /学生个人成绩及格情况 Score s; course0.dispiay(s); course1.dispiay(s); course2.dispiay(s);void Ban:set_b() /定义班级类的成员函数 cout请输入班级学生的基本信息:; coutmaj; coutnum;outfile班级学生的基本信息:endl专业名称:maj班级编号:numendl; for(int i=0;imajnum; cout专业:maj班级编号:numendl; for(int i=0;imajnum; cout专业:maj班级编号:numendl; for(int i=0;i30;i+) studenti.display(); void Ban : pop_mark() /学生个人成绩单查找 string na; string nu; coutna; coutnu; for(int i=0;na= & nu=studenti.num;i+) studenti.show_s(); int main() Ban b; ofstream outfile(wen.txt,ios:out); /输入学生各类信息并输出到 wen.txt 文件内 if(! outfile) cerropen error!endl; exit(1); b.set_b(); outfile.close (); ifstream infile(wen.txt,ios:in); / 从wen.txt 文件内读入数据 输学生各类信息 if(! infile) cerropen error!endl; exit(1); cout请先选择输入1或2或3endl; cout1.打印学生个人成绩endl; cout2.打印班级成绩endl; couta; if(a=1) b. pop_mark(); if(a=2) b.show_b (); if(a=3) b.display();infile.close();return 0;#include#include#includeusing namespace std;ofstream outfile(wen.txt,ios:out);ifstream infile(wen.txt,ios:in);class Score;class Course /课程类,包括课程编号,科目名称 public: void set_c(Score&); void show_c(Score&); void display(Score&); private: string num; string name;class Score /成绩类,包括学期,平时成绩,期末考试成绩,平时成绩所占百分比,及格情况。 public: friend void Course:set_c(Score&); /声明course类的成员函数是本函数的友元函数 friend void Course:show_c(Score&); void display(Score&); void set_s(); void show_s(); private: string num; int score1; int score2; double d; double score3; char h;class Student /学生类,包括姓名,性别,学号,课程类对象数组 public: void set_s(); void show_s(); void display(); string name; string sex; string num; Course course1; private:; class Ban /班级类,包括专业,年级,学生类对象数组 public: void set_b(); void show_b(); void pop_mark(); void display(); private: string maj; string num; Student student2; void Score: set_s() /定义成绩类的成员函数 coutnum; coutscore1; coutscore2; coutd; outfile学期:num平时成绩:score1期末成绩:score2numscore1score2d; score3=score1*d+score2*(1-d); cout学期:num平时成绩:score1期末成绩:score2总评成绩:score3endl; void Course:set_c(Score &s) /定义课程类的成员函数 coutnum; coutname; outfile科目编号:num科目名称:name; cout科目:names.score3;if(s.score360)h=f;s.show_s();cout不及格:endl;elseh=t;void Student:set_s() /定义学生类的成员函数 Score s; coutname; coutsex; coutnum; cout请输入学生的各科成绩:endl; outfile学生姓名:name性别:sex学号:num此学生的各科成绩:namesexnum; cout姓名:name性别:sex学号:numendl; course0.show_c(s); course1.show_c(s); course2.show_c(s); void Student:dispiay() /学生个人成绩及格情况 Score s; cour
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 美妆集合店供应链创新报告:2025年高效物流与库存管理策略
- 美妆集合店产品研发与创新趋势分析报告
- 中国邮政2025六盘水市秋招寄递物流运营类岗位高频笔试题库含答案
- 舟山市烟草公司2025秋招综合管理类岗位高频笔试题库含答案
- Unit 4 Section A (2a-2f) 说课稿 2024-2025学年人教版英语七年级上册
- 中国邮政2025定西市秋招综合管理职能类岗位高频笔试题库含答案
- 光伏与风光储氢醇融合发展规划实施方案
- 盐城市烟草公司2025秋招笔试行测题专练及答案
- 2025山东省莱西市中考物理试卷含完整答案详解【全优】
- 美妆电商行业用户干性肤质偏好趋势分析报告2025
- 团校考试试题及答案浙江
- 2025-2026学年湘美版(2024)小学美术二年级上册(全册)教学设计(附目录P208)
- 市场管理考试试题及答案
- 2025至2030年中国大型电脑行业市场深度分析及发展前景预测报告
- 2024年秦皇岛市市直机关遴选考试真题
- 中小学教师中高级职称答辩备考试题及答案(50题)
- 机关事业单位工人《汽车驾驶员高级、技师》考试题(附答案)
- 2025年重庆中考道德与法治试卷真题解读答案讲解(课件)
- 烟酒店经营许可合同模板
- 预防和拒绝虚开增值税专用发票
- 生理学》第十章神经系统功能
评论
0/150
提交评论