“面向对象程序设计与实践2”2018年春季学期上机作业
注意事项:
●
必须提交:3个程序(电子版),1份程序说明(电子版),1份课程设计报告封面(单人版)(纸版)。程序说明是word文件,内容至少包含:整个程序的总体结构说明,以及实现中的想法、经验、教训等,要求组织结构合理,格式不限; ● ●
交给各小班学委,由小班学委统一上交;
每个人一个目录,每个目录下3个zip或rar压缩文件,每个文件对应一个作业题目;另外还有一个word文档,是相应的程序说明; ● ● ● ●
个人目录的命名格式:班级--学号--姓名; 压缩文件命名格式:程序X--学号--姓名; 不要提交obj等中间文件,太占空间。
注意完成题目要求,先有系统的整体设计方案,再去分三阶段逐步实现系统,避免后期程序改动巨大。 ● ●
若能对系统功能进行完善,或代码结构良好的,可适当加分。
同学们需在第11周(5月18日)、第13周(6月1日)、第16周(6月22日)分别完成三个题目的验收,以减轻临近期末时验收程序的压力,过时不候。 ●
上机地点:机房沙D-N01/03,时间:每周五上午08:00—09:50(即本课程上课时间,排除课堂教学、放假及运动会时间),验收地点:机房沙D-N01/03。对题目有疑问的(题意或者实现思路等),欢迎与任课教师及助教沟通和讨论。 ●
本课程交流QQ群: ? 群名:面向对象2018春 ? 群号:601420712
程序一:学生成绩管理系统(初级版)(45分,抄袭或被抄袭为0分)
?
目的
通过学生成绩管理系统的设计,培养学生综合利用C++语言进行程序设计的能力,提高
1
软件系统分析能力和程序文档建立、归纳总结的能力,培养学生利用系统提供的标准函数及典型算法进行设计的能力。 ?
功能要求(实现下列所有功能)
1、 实现两种用户角色:学生、教师。
a) 学生角色有学号、姓名、学院、班级等信息; b) 教师角色有工号、姓名、学院、任课课程等信息。 2、 实现两种课程:必修课、选修课。
a) 必修课和选修课的公共属性包括:课程编号、课程名称、课程学分等;
b) 必修课和选修课的不同属性包括:绩点计算方式,两者不同,但必修课的权重更高。
可自行设计计算公式,或者使用题目提示中的公式。
3、 实现登录和注销功能。
a) 学生、老师分别可以登录系统,使用各自可用的系统功能; b) 注销后,程序返回登录页面,供其他人使用。 4、 实现选修课的选课功能,仅学生可用。
a) 学生可查看所有可选的选修课,并从中选择自己的选修课; b) 学生可放弃某门已选的选修课,但成绩已提交后不可弃选。 c) 必修课的选课学生为预先设置,不能选择。 5、 实现课程的查看功能,学生和教师的功能有所不同。
a) 学生可查看自己的所有课程,包括必修课和选修课(但呈现方式要区分开); b) 教师可查看自己的所有课程,包括必修课和选修课(但呈现方式要区分开); c) 教师可查看自己课程的所有选课学生名单,以及查看指定选课学生的学生信息; d) 学生和教师均可查看所有课程,包括必修课和选修课(但呈现方式要区分开)。 6、 实现课程成绩的录入、修改、提交操作,仅老师可用。
a) 任课教师录入、修改、提交指定选课学生的课程成绩; b) 课程成绩在提交后不可修改; c) 课程成绩在提交后,才可被学生看到。
7、 实现课程成绩和绩点的计算和查看功能,仅学生可用。
a) 学生可查看自己每门课程的成绩和绩点;
b) 课程绩点:由课程成绩、课程学分的加权计算结果,必修课和选课修的计算公式不
同;公式可自定义,或者参考下面的公式。
8、 教师数不少于3人,学生数不少于4人,必修课和选修课各自不少于3门。每个必修课
的学生不少于2人,每个学生必修课和选修课均不少于两门。 9、 要求提供字符操作界面。若提供图形界面的,将适当加分。 10、
尽可能降低类的耦合度,特别要注意界面与业务逻辑的解耦,以及学生/教室与课
程之间的解耦。
2
? 考核点
1、 采用面向对象的设计思想,定义相关的类,并使用继承、多态、虚函数等语法知识进行
设计和实现;
2、 使用容器类来保存和管理内部数据;
3、 代码中使用异常处理机制,即try/catch机制,并能演示出异常产生和处理情况; 4、 必须使用分离式编译,各个类实现于自身的.h和.cpp文件中。 ?
提示
1. 可设计课程类Course,以及两个子类:必修课、选修课,自行命名。课程绩点的计算,
可设计为虚函数。
2. 课程绩点计算公式(供参考,也可自行定义,但必修课和选修课应不同)。
a) 必修课绩点 b) 选修课绩点
本人成绩
课程成绩选课学生
课程学分
本人成绩
课程学分
3. 本题不要求保存程序内部数据状态,即重启后数据可重置。 4. 异常的产生场景可自行设计,两种场景可供参考。
a) 使用bad_cast异常,C++标准中定义,在dynamic_cast转换引用类型失败时产
生;
b) 使用自定义异常,可自定义异常类、异常产生场景,如被零除等,但场景应当合
理。
程序二:学生成绩管理系统(高级版)(40分,抄袭或被抄袭为0分)
?
目的
在程序一的功能基础之上,继续完善和丰富学生成绩管理系统的功能,并在完善过程中学习和体会程序设计和代码重构等思想和实践过程。 ?
功能要求(实现下列所有功能)
1、 实现所有数据的文件存取功能,即重启程序以后可以访问上次使用后的数据。
a) 数据包括:学生信息、教师信息、课程信息、选课信息、课程成绩等。 2、 实现排序功能,教师和学生的功能有所不同。
a) 教师在查看任课课程的成绩时,可查看按“升序”或“降序”排序后的学生名单和
成绩等信息,可对学号或成绩进行排序;
b) 学生在查看自己的课程时,可查看按“升序”或“降序”排序后的课程列表、成绩、
绩点等信息,可对成绩或绩点进行排序。
3、 要求提供字符操作界面。若提供图形界面的,将适当加分。 ?
考核点
3
1、 本题目代码必须在程序一的代码基础上修改完成;
2、 文件存取操作通过重载运算符“>>”和“<<”来完成; 3、 文件存取操作应进行异常处理; 4、 排序操作通过泛型算法来完成。 ?
提示
1、 文件格式可自选,文本文件或二进制文件均可。
程序三:学生成绩管理系统(网络版)(15分,抄袭或被抄袭为0分)
?
目的
在程序二的功能基础之上,继续完善和丰富学生成绩管理系统的功能,并在完善过程中学习和体会程序设计和代码重构等思想和实践过程。 ?
功能要求(实现下列所有功能)
1、 实现程序的网络访问功能;
2、 要求提供字符操作界面。若提供图形界面的,将适当加分。 3、 若支持多用户操作,且多用户操作结果可实时同步,将适当加分。 ?
考核点
1、 本题目代码必须在程序二的代码基础上修改完成; 2、 网络访问功能应进行异常处理。 ?
提示
1、 网络访问功能可使用Socket API,具体概念和用法自行搜索和学习; 2、 可采用客户端/服务器(C/S)处理模型。
a) 客户端主要完成界面交互功能,如接收用户输入数据、显示服务端处理结果等; b) 服务端主要完成存储和计算等处理功能,如完成登录/注销操作、存取数据、处理
排序等。
4
百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说综合文库2018年春季学期-面向对象程序设计与实践(C++2)-大作业题目 (1)在线全文阅读。
相关推荐: