项目需求说明:
某校某学期开设了12门课程(表1),供2013级本科生和研究生选修,2013级已注册有选课资格的学生为30人,研究生15人(表2、表3)。规定每个学生最多只能选5门课,每门课程的选课人数不能超过15人。现需要开发一个学生自助选课系统,完成学生选课,根据学生选修的课程学分,计算学生需要缴纳的学费(按修课学分收取学费)(收费标准见表4)。
软件开发要求:
(1)设计实现4个类:课程类(class course)、学生类(class student)、本科生类(class UGstudent)、研究生类(class Gstudent)。其中本科生类和研究生类分别继承学生类。
课程类至少包括以下数据成员和成员函数:
数据成员:课程类型、课程名称、课程学分、每门课选课总人数,所有课程选课总人数。
成员函数:计算每门课选课总人数、计算所有课程选课总人数。
学生类至少包括以下数据成员和成员函数:
数据成员:学号、姓名、选课门数、选课总学分、所选课程、学费。
成员函数:计算学费,显示选课信息。
本科生类至少包括以下数据成员和成员函数:
数据成员:班导师姓名。其他成员继承自学生类。
成员函数:计算学费,显示选课信息。
研究生类至少包括以下数据成员和成员函数:
数据成员:导师姓名。其他成员继承自学生类。
成员函数:计算学费,显示选课信息。
(2)设计一个控制台应用程序用户界面(Win32 Console Application),采用面向对象程序设计思想,实现本项目要求的所有功能。
(3)设计一个易于理解的图形化界面,采用VC++的MFC开发,实现本项目要求的所有功能。
(4)(2)、(3)两种方案底层调用的类必须是要求(1)中设计的同一组类。
(5)系统退出时选课信息的保存不做要求。
涉及知识点: 类的定义与实现,对象的声明与类的成员的访问,继承、组合(成员对象)、虚函数、静态成员、控制台(Win32 Console Application)编程、MFC编程。
评分依据:
(1)功能实现;
(2)性能指标;
(3)工程规范(规范、安全性、可靠性、性价比等);
(4)面向对象程序设计相关知识点使用情况;
(5)团队分工合作情况。
(6)软件要求(2)和(3)的两种用户界面均完成者起评分100,只完成要求(2)的用户界面者起评分90(至少完成要求(2)的用户界面)。
成品展示