基于命令行的学生成绩管理系统(Java实现)

实现的功能

  1. 创建类实现基本对象和他们关系的管理。包括学生、教学班、课程、成绩、教师等。学生至少包含学号、姓名、性别等信息。教学班至少包含教师、课程名字、总人数、教学班号、开课学期等信息。课程至少包含课程编号、课程名字等信息。教师至少包含教师编号、姓名等信息。可以根据自己的分析设计增加其他类。
  2. 随机生成学生,数量不少于100。课程数量不少于3门。一个教学班有一个教师上一门课程,一个教学班的学生数量不少于20。教师数量不少于6个。一门课至少有两个老师上课。每个学生至少选择3门课程。一个学生在一个教学班上一门课,考试后取得一个成绩。一门课的成绩构成有4部分构成,包括平时成绩、期中考试、实验成绩和期末考试成绩,然后计算出综合成绩。自定义各项成绩的产生策略,均为整数。
  3. 给出一个主菜单,选择菜单项执行各项功能。例如执行一个菜单命令,可以生成一个教学班的所有学生的平时成绩。分阶段模拟教学过程,第一步,生成初始化数据,包括教师,学生、课程,教学班等;第二步,学生选课,自定义选课策略,为每门课程的教学班安排学生。第三步,获得平时成绩,期中成绩,实验成绩,期末成绩,最后计算综合成绩,要记录成绩取得的时间。
  4. 能够格式规范地显示一个教学班的学生的成绩,可以根据学号排序,可以根据成绩排序。可以统计学生各科、总成绩的分数段分布。可以通过名字或者学号查询一个学生的所有科目的成绩和总成绩。可以按照学号、各科成绩和总成绩对所有学生进行排名显示。

设计思想

1.设计过程中按职能建立了多个类和接口,包括5个实体类、7个控制类、2个工具类、1个边界类,实现类之间功能相对独立,比如将排序和搜索功能各抽象为不同的类(SortScore、SerachManager),使程序看起来清晰明了。

2.抽象出接口,运用面向接口编程的思想,一个类实现多个接口,实现了多态,并使得代码更加规范。定义了Init接口(全局常量,初始化数据方法框架),ShowClassId接口、SortStuByScore接口(通过成绩对学生排序的方法框架,包括降序和升序)。

3.使用泛型,泛化接口中方法的返回类型,使得接口能被多个类实现。

4.定义抽象类,教师控制类和学生控制类继承名字生成的抽象类。

5.私有化实体类中的属性,使用set、get方法调用,保护类中的属性。

程序结构

功能程序图

运行结果展示(部分)

1、创建类实现基本对象和他们关系的管理,包括学生、教学班、课程、成绩、教师等。使用集合框架存储所有对象。学生至少包含学号、姓名、性别等信息。教学班至少包含教师、课程名字、总人数、教学班号、开课学期等信息。课程至少包含课程编号、课程名字等信息。教师至少包含教师编号、姓名等信息。 2、随机生成学生,数量不少于100。一个教学班有一个教师上一门课程,教学班的学生数量不少于20。课程数量不少于3门。教师数量不少于6个。一门课至少有两个老师上课。每个学生选择至少选择3门课程。一个学生在一个教学班上一门课,考试后取得一个成绩。一门课的成绩构成有4部分构成,包括平时成绩、期中考试、实验成绩和期末考试成绩,然后计算出总成绩。成绩随机生成,均为整数。 3、分阶段模拟教学过程。例如执行一个命令,可以生成一个教学班的所有学生的平时成绩。第一步,生成初始化数据,包括教师,学生、课程,教学班等;第二步,学生选课,随机进行,为每门课程的教学班安排学生。第三步,获得平时成绩,获得期中成绩,获得实验成绩,获得期末成绩,最后计算总成绩。 4、能够显示一个教学班级的学生,可以根据学号排序,可以根据成绩排序。可以通过名字查询成绩,可以按照各科成绩和总成绩进行排名显示,可以统计各课程学生成绩的分数段分布。 5、可以实现自己的扩展功能。注意类和类之间的关系。充分利用继承,多态等特性,使用上抽象类,接口,泛型,内部类等设计元素。
1、 创建类实现基本对象和他们关系的管理,包括学生、教学班、课程、成绩、教师等。使用集合框架存储所有对象。学生至少包含学号、姓名、性别等信息。教学班至少包含教师、课程名字、总人数、教学班号、开课学期等信息。课程至少包含课程编号、课程名字等信息。教师至少包含教师编号、姓名等信息。 2、随机生成学生,数量不少于100。一个教学班有一个教师上一门课程,教学班的学生数量不少于20。课程数量不少于3门。教师数量不少于6个。一门课至少有两个老师上课。每个学生选择至少选择3门课程。一个学生在一个教学班上一门课,考试后取得一个成绩。一门课的成绩构成有4部分构成,包括平时成绩、期中考试、实验成绩和期末考试成绩,然后计算出总成绩。成绩随机生成,均为整数。 3、分阶段模拟教学过程。例如执行一个命令,可以生成一个教学班的所有学生的平时成绩。第一步,生成初始化数据,包括教师,学生、课程,教学班等;第二步,学生选课,随机进行,为每门课程的教学班安排学生。第三步,获得平时成绩,获得期中成绩,获得实验成绩,获得期末成绩,最后计算总成绩。 4、能够显示一个教学班级的学生,可以根据学号排序,可以根据成绩排序。可以通过名字查询成绩,可以按照各科成绩和总成绩进行排名显示,可以统计各课程学生成绩的分数段分布。 5、可以实现自己的扩展功能。注意类和类之间的关系。充分利用继承,多态等特性,使用上抽象类,接口,泛型,内部类等设计元素
评论 9
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值