本题完成一个简单学生管理系统的案例,包括班级管理和学校管理两大部分。
包含一个主学生列表,存放学生的所有信息,这个主列表是一个包含所有学生的特殊班级,其他班级的学生需要从主学生列表添加。
1、班级管理 功能如下:
l 添加学生信息到主学生列表
l 添加学生信息到普通班级
l 通过学号查询学生信息
l 输入班级的语文成绩
l 输入班级的数学成绩
l 删除学生信息
l 显示所有学生信息
2、学校管理 功能如下:
l 创建班级
l 删除班级
l 通过班级名称查询班级信息
l 对各班语文成绩按平均分进行由大到小排序
l 对各班数学成绩按平均分进行由大到小排序
l 显示所有班级名称
运行效果参见演示视频~
一、 项目准备
开发工具:JDK、Eclipse
需求分析:见课程视频,并参考评分标准。
效果演示:见课程视频。
二、整体要求
1、 完成需求分析和详细设计中所涉及到的所有功能。
2、 代码结构要层次分明,代码编辑思路要清晰、整洁。
3、 要求Java代码书写、命名符合规范,并在代码中添加必要的注释
4、 程序运行效果与提供的页面效果图、结构保持一致
5、 将作业项目导出(Export)成压缩文件
三、详细设计
1、项目包括四个类的设计:
学生类(Student)
班级类(BanJi)
学校类(School)
主流程类(TestDemo)
1)Student类:
属性: 学号(stuNum)、姓名(stuName) 这两个属性为String类型
数学成绩(math)、语文成绩(chinese) 这两个属性为float类型
方法: 构造方法
setter和getter方法
hashCode()和equals()方法
toString()方法
2)Banji类:
属性:班级编号(classId)、班级名称(className) 这两个属性均为String类型
存放学生的集合(stuList) 这个属性为List类型
方法:构造方法
getter和setter方法
将学生添加到班级:public void addStudent(Student stu){}
通过学号查询学生在班级中是否存在: public Student searchStudentByNum(String stuNum){}
输入班级学生的语文成绩:public void insertChineseScore(String stuNum,float score){}
输入班级学生的数学成绩:public void insertMathScore(String stuNum,float score){}
删除学生信息:public void deleteStudent(String stuNum){}
显示所有学生的信息(包括学号和姓名):public void displayAllStudent(){}
3)School类
属性:存放班级的集合(schoolMap) ,类型为Map
方法: 构造方法
getter和setter方法
添加班级:public void addBanji(Banji banji){}
删除班级 : public void deleteBanji(Banji banji){}
通过班级名称查询班级:public BanJi searchByName(String className) {}
对各班语文成绩按平均分进行由大到小排序:public void sortChineseByAverage() {}
对各班数学成绩按平均分进行由大到小排序:public void sortMathByAverage() {}
显示所有班级名称:public void displayBanJiName() {}
4)TestDemo类
方法:
班级的测试方法:public void testBanJi(){}
学校的测试方法:public void testSchool(){}
主菜单: public void mainMenu(){}
学校管理菜单:public void schoolMenu(){}
班级管理菜单:public void banJiMenu(){}
主流程:public void test(){}
规范【10分】
每个类都封装在自己独立的 ".java"文件中;
文件、class、成员变量命名规范;
代码结构要层次分明;
Java代码规范及添加适量注释。
程序整体运行效果【10分】
程序正常运行效果,且满足效果图要求;
信息间分隔符“*”号数量不做统一要求;
学生的名称及班级名称不做统一要求。
学生类【8分】
能够完成属性定义;
能够完成构造方法定义;
能够完成getter和setter方法;
能够完成hashCode()方法、equals()方法和toString()方法。
班级类【24分】
能够完成属性定义方法包括构造方法;
能够完成getter和setter方法定义;
能够完成将学生添加到班级的方法定义;
能够完成通过学号查询学生在班级中是否存在的方法定义;
能够完成输入班级学生的语文成绩的方法的定义;
能够完成输入班级学生的数学成绩的方法定义;
能够完成删除学习信息的方法定义;
能够完成显示所有学生的信息的方法定义;
学校类【20分】
能够完成属性定义;
能够完成构造方法、getter和setter方法的定义;
能够完成添加班级的方法定义;
能够完成删除班级的方法定义;
能够完成通过班级名称查询班级的方法定义;
能够完成对各班语文成绩按平均分进行由大到小排序的方法定义;
能够完成对各班数学成绩按平均分进行由大到小排序的方法定义;
能够完成显示所有班级名称的方法定义;
主流程类【28分】
能够完成主程序逻辑的编写;
能够对学生类进行测试;
能够对班级类进行测试;
能够对学校类进行测试。