实现的功能
- 创建类实现基本对象和他们关系的管理。包括学生、教学班、课程、成绩、教师等。学生至少包含学号、姓名、性别等信息。教学班至少包含教师、课程名字、总人数、教学班号、开课学期等信息。课程至少包含课程编号、课程名字等信息。教师至少包含教师编号、姓名等信息。可以根据自己的分析设计增加其他类。
- 随机生成学生,数量不少于100。课程数量不少于3门。一个教学班有一个教师上一门课程,一个教学班的学生数量不少于20。教师数量不少于6个。一门课至少有两个老师上课。每个学生至少选择3门课程。一个学生在一个教学班上一门课,考试后取得一个成绩。一门课的成绩构成有4部分构成,包括平时成绩、期中考试、实验成绩和期末考试成绩,然后计算出综合成绩。自定义各项成绩的产生策略,均为整数。
- 给出一个主菜单,选择菜单项执行各项功能。例如执行一个菜单命令,可以生成一个教学班的所有学生的平时成绩。分阶段模拟教学过程,第一步,生成初始化数据,包括教师,学生、课程,教学班等;第二步,学生选课,自定义选课策略,为每门课程的教学班安排学生。第三步,获得平时成绩,期中成绩,实验成绩,期末成绩,最后计算综合成绩,要记录成绩取得的时间。
- 能够格式规范地显示一个教学班的学生的成绩,可以根据学号排序,可以根据成绩排序。可以统计学生各科、总成绩的分数段分布。可以通过名字或者学号查询一个学生的所有科目的成绩和总成绩。可以按照学号、各科成绩和总成绩对所有学生进行排名显示。
设计思想
1.设计过程中按职能建立了多个类和接口,包括5个实体类、7个控制类、2个工具类、1个边界类,实现类之间功能相对独立,比如将排序和搜索功能各抽象为不同的类(SortScore、SerachManager),使程序看起来清晰明了。
2.抽象出接口,运用面向接口编程的思想,一个类实现多个接口,实现了多态,并使得代码更加规范。定义了Init接口(全局常量,初始化数据方法框架),ShowClassId接口、SortStuByScore接口(通过成绩对学生排序的方法框架,包括降序和升序)。
3.使用泛型,泛化接口中方法的返回类型,使得接口能被多个类实现。
4.定义抽象类,教师控制类和学生控制类继承名字生成的抽象类。
5.私有化实体类中的属性,使用set、get方法调用,保护类中的属性。