功能描述:
简单学生管理系统,包括班级管理和学校管理两大部分。
包含一个主学生列表,存放学生的所有信息,这个主列表是一个包含所有学生的特殊班级,其他班级的学生需要从主学生列表添加。
1、班级管理 功能如下:
l 添加学生信息到主学生列表
l 添加学生信息到普通班级
l 通过学号查询学生信息
l 输入班级的语文成绩
l 输入班级的数学成绩
l 删除学生信息
l 显示所有学生信息
2、学校管理 功能如下:
l 创建班级
l 删除班级
l 通过班级名称查询班级信息
l 对各班语文成绩按平均分进行由大到小排序
l 对各班数学成绩按平均分进行由大到小排序
l 显示所有班级名称
代码
Student.java
/**
* 学生类
* @author zhj
* 2019年5月5日-下午8:27:35
*
*/
public class Student {
private String stuNum;
private String stuName;
private float math;
private float chinese;
/**
* 构造方法 对学号和姓名赋值
* @param stuNum
* @param stuName
*/
public Student(String stuNum, String stuName) {
this.stuNum = stuNum;
this.stuName = stuName;
}
/**
* 构造方法 全属性赋值
* @param stuNum
* @param stuName
* @param math
* @param chinese
*/
public Student(String stuNum, String stuName, float math, float chinese) {
this.stuNum = stuNum;
this.stuName = stuName;
this.math = math;
this.chinese = chinese;
}
public String getStuNum() {
return stuNum;
}
public void setStuNum(String stuNum) {
this.stuNum = stuNum;
}
public String getStuName() {
return stuName;
}
public void setStuName(String stuName) {
this.stuName = stuName;
}
public float getMath() {
return math;
}
public void setMath(float math) {
this.math = math;
}
public float getChinese() {
return chinese;
}
public void setChinese(float chinese) {
this.chinese = chinese;
}
@Override
public int hashCode() {
final int prime = 31;
int result = 1;
result = prime * result + Float.floatToIntBits(chinese);
result = prime * result + Float.floatToIntBits(math);
result = prime * result + ((stuName == null) ? 0 : stuName.hashCode());
result = prime * result + ((stuNum == null) ? 0 : stuNum.hashCode());
return result;
}
@Override
public boolean equals(Object obj) {
//判断对象是否相等
if (this == obj)
return true;
//this!=obj
if(obj.getClass()==Student.class) {
Student student=(Student)obj;
return (student.getStuNum()).equals(stuNum)&&(student.getStuName()).equals(stuName)&&(student.getMath())==math&&(student.getChinese())==chinese;
}
return false;
}
@Override
public String toString() {
return " [ 学号:" + stuNum + ", 姓名:" + stuName + ", 数学成绩:" + math + ", 语文成绩 :" + chinese + "]";
}
}
BanJi.java
import java.util.ArrayList;
import java.util.List;
/**
* 班级类
*
* @author zhj 2019年5月6日-上午8:57:37
*
*/
public class BanJi {
private String classId;
private String className;
private List stuList;
public BanJi(String classId, String className) {
this.classId = classId;
this.className = className;
stuList = new ArrayList();
}
public String getClassId() {
return classId;
}
public void setClassId(String classId) {
this.classId = classId;
}
public String getClassName() {
return className;
}
public void setClassName(String className) {
this.className = className;
}
public List getStuList() {
return stuList;
}
public void setStuList(List stuList) {
this.stuList = stuList;
}
/**
* 将学生添加到班级
* @param stu 学生
*/
public void addStudent(Student stu) {
// 排除重复添加的情况
boolean flag = false;
for (Student student : stuList) {
if (student.equals(stu)) {
flag = true;
break;
}
}
if (flag) {
System.out.println("该学生已经在班级中!");
} else {
stuList.add(stu);
System.out.println("添加成功!");
}
}
/**
* 通过学号查询学生在班级中是否存在
*
* @param stuNum 学号
* @return student
*/
public Student searchStudentByNum(String stuNum) {
Student student = null;
// stuNum是唯一的
for (Student student1 : stuList) {
if (student1.getStuNum().equals(stuNum)) {
student = student1;
break;
}
}
if (student == null) {
System.out.println("该学生不存在!");
} else {
System.out.println("查找成功!");
}
return student;
}
/**
* 输入班级学生的语文成绩
* @param stuNum 学号
* @param chinese 语文成绩
*/
public void insertChineseScore(String stuNum, float chinese) {
// 确认学生是否存在
Student student = searchStudentByNum(stuNum);
if (student == null) {
System.out.println("该学生不存在!");
} else {
student.setChinese(chinese);
System.out.println("修改成功");
}
}
/**
* 输入班级学生的数学成绩
* @param stuNum 学号
* @param math 数学成绩
*/
public void insertMathScore(String stuNum, float math) {
// 确认学生是否存在
Student student = searchStudentByNum(stuNum);
if (student == null) {
System.out.println("该学生不存在!");
} else {
student.setMath(math);
System.out.println("修改成功");
}
}
/**
* 删除学生信息
* @param stuNum 学号
*/
public void deleteStudent(String stuNum) {
Student student = searchStudentByNum(stuNum);
if (student == null) {
System.out.println("该学生不存在!");
} else {
stuList.remove(student);
System.out.println("删除成功");
}
}
/**
* 显示所有学生的信息
*/
public void displayAllStudent() {
if (this.getStuList().isEmpty()) { // 拦截List中无元素
System.out.println("该班级中没有学生,请先添加!");
} else {
System.out.println("班级中的所有学生信息为:");
for (Student student : stuList) {
System.out.println(student);
}
}
}
}
School.java
import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
import java.util.Map.Entry;
import java.util.Set;
/**
* 学校类
* @author zhj
* 2019年5月7日-上午11:19:29
*
*/
public class School {
private Map schoolMap;
public School() {
schoolMap = new HashMap();
}
public Map getSchoolMap() {
return schoolMap;
}
public void setSchoolMap(Map schoolMap) {
this.schoolMap = schoolMap;
}
/**
* 添加班级
*
* @param banji
*/
public void addBanji(BanJi banji) {
// 班级编号作为key值
schoolMap.put(banji.getClassId(), banji);
System.out.println("添加成功");
}
/**
* 删除班级
*
* @param banji
*/
public void deleteBanji(BanJi banji) {
schoolMap.remove(banji.getClassId());
System.out.println("删除成功");
}
/**
* 通过班级名查找
*
* @param className
* @return bj
*/
public BanJi searchByName(String className) {
BanJi bj = null;
Set banjiSet = schoolMap.keySet();
for (String id : banjiSet) { // s取到的是key值(classId)
String name = schoolMap.get(id).getClassName(); // 取出value的name属性
if (name.equals(className)) {
bj = schoolMap.get(id);
break;
}
}
return bj;
}
/**
* 通过班号查找
*
* @param classId
* @return
*/
public BanJi searchById(String classId) { // 有额外需要时(设置classId为key但需要className)
BanJi bj = null; // 面向对象这种抽离功能、独立重复使用的特性非常令人舒服
Set banjiSet = schoolMap.keySet();
for (String id : banjiSet) {
if (id.equals(classId)) {
bj = schoolMap.get(classId);
break;
}
}
return bj;
}
/**
* 按语文平均成绩对班级排序
*
*/
public void sortChineseByAverage() {
BanJi bj = null; // 班级接收者
Map scoreMap = new HashMap(); // 班级平均分接收者
Set scoreSet = schoolMap.keySet(); // 取出classId集合
boolean flag=false; //指示有班级中没有学生
for (String s : scoreSet) { // s代表classId
bj = this.searchById(s); // 每次抽取一个班级
if (bj.getStuList().isEmpty()) { // 班级中没有学生
flag=true;
System.out.println(bj.getClassName()+"中没有学生,请先添加!!");
} else {
float sum = 0.0f;
int i = 0;
List listStudent = bj.getStuList(); // 获取班级对应学生列表
Iterator it = listStudent.iterator(); // 迭代求平均
while (it.hasNext()) {
i++;
sum = sum + it.next().getChinese();
}
float ave = sum / i;
scoreMap.put(bj.getClassName(), ave); // 班级名-平均分 存入map
}
}
// scoreMap.remove("主学生列表"); // 排序中不出现主学生列表
if (!flag) { // 所有班级中都有学生时,执行输出操作
List> lm = new ArrayList>(scoreMap.entrySet());
// 要输出Map中的key 和 value 是先得到key的集合keySet(),然后再迭代(循环)由每个key得到每个value。
// .values()方法是获取集合中的所有值,不包含键,没有对应关系。而Entry可以一次性获得这两个值。
// Map.entrySet迭代器会生成EntryIterator,其返回的实例是一个包含key/value键值对的对象。
// 而keySet中迭代器返回的只是key对象,还需要到map中二次取值。故entrySet要比keySet快一倍左右。
// 找不到错误时按逻辑顺序写注释对发现错误很有用
Collections.sort(lm, new Comparator>() { // 没有新建类直接写
@Override
public int compare(Entry o1, Entry o2) {
return o2.getValue().compareTo(o1.getValue()); // 从大到小排列
}
});
System.out.println("排序后的数据为:");
for (Map.Entry msf : lm) {
System.out.println(msf.getKey() + "的语文平均分为:" + msf.getValue());
}
}
}
/**
* 按数学成绩对班级排序
*/
public void sortMathByAverage() {
BanJi bj = null;
Map scoreMap = new HashMap();
Set scoreSet = schoolMap.keySet();
boolean flag=false; //指示有班级中没有学生
for (String s : scoreSet) {
bj = this.searchById(s);
if (bj.getStuList().isEmpty()) { // 班级中没有学生
System.out.println("该班级中没有学生,请先添加!!");
} else {
float sum = 0.0f;
int i = 0;
List listStudent = bj.getStuList();
Iterator it = listStudent.iterator();
while (it.hasNext()) {
i++;
sum = sum + it.next().getMath();
}
float ave = sum / i;
scoreMap.put(bj.getClassName(), ave); // 班级名-平均分 存入map
}
}
// scoreMap.remove("主学生列表"); // 排序中不出现主学生列表
if (!flag) { // 所有班级中都有学生时
List> lm = new ArrayList>(scoreMap.entrySet());
Collections.sort(lm, new Comparator>() {
@Override
public int compare(Entry o1, Entry o2) {
return o2.getValue().compareTo(o1.getValue());
}
});
System.out.println("排序后的数据为:");
for (Map.Entry msf : lm) {
System.out.println(msf.getKey() + "的数学平均分为:" + msf.getValue());
}
}
}
/**
* 显示所有班级的名称
*/
public void displayBanjiName() {
Set banjiSet = schoolMap.keySet();
if (banjiSet.size() == 1) { // 只有主学生列表时 实际上不存在班级
System.out.println("学校中没有班级,请先添加!!");
} else {
for (String s : banjiSet) {
System.out.println(schoolMap.get(s).getClassName());
}
}
}
}
TestDemo.java
import java.util.HashMap;
import java.util.InputMismatchException;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
import java.util.Scanner;
/**
* 主流程测试类
* @author zhj
* 2019年5月7日-上午11:18:41
*
*/
public class TestDemo {
// 对学生类Student进行测试
public void testStudent() {
Student student1 = new Student("s001", "张三", 44f, 89f);
Student student2 = new Student("s002", "李四", 66f, 56f);
Student student3 = new Student("s003", "张三", 44f, 89f);
Student student4 = new Student("s003", "张三", 44f, 89f);
System.out.println(student1);
System.out.println(student2.equals(student1));
System.out.println(student4.equals(student3));
}
// 对班级类进行测试
public void testBanJi() {
Student student1 = new Student("s001", "张三", 44f, 89f);
Student student2 = new Student("s002", "李四", 66f, 56f);
Student student3 = new Student("s003", "王五", 89f, 78f);
Student student4 = new Student("s001", "张三", 44f, 89f);
// 创建一个班级对象
BanJi banji = new BanJi("b101", "一年1班");
banji.addStudent(student1);
banji.addStudent(student2);
banji.addStudent(student3);
// banji.addStudent(student4);
// 测试查找学生
System.out.println(banji.searchStudentByNum("s001"));
System.out.println(banji.searchStudentByNum("s004"));
// 测试显示
System.out.println();
banji.displayAllStudent();
// 测试输入成绩
System.out.println();
banji.insertChineseScore("s001", 77f);
banji.insertMathScore("s002", 34f);
banji.displayAllStudent();
System.out.println();
banji.insertMathScore("s006", 34f);
// 测试删除
System.out.println();
banji.deleteStudent("s004");
banji.deleteStudent("s003");
banji.displayAllStudent();
}
// 对学校类进行测试
public void testSchool() {
Student student1 = new Student("s001", "张三", 44f, 89f);
Student student2 = new Student("s002", "李四", 66f, 56f);
Student student3 = new Student("s003", "王五", 89f, 78f);
Student student4 = new Student("s004", "赵六", 92f, 88f);
Student student5 = new Student("s005", "宋七", 59f, 68f);
Student student6 = new Student("s005", "吴八", 73f, 76f);
// 创建两个班级
BanJi bj101 = new BanJi("b101", "一年1班");
BanJi bj102 = new BanJi("b102", "一年2班");
bj101.addStudent(student1);
bj101.addStudent(student2);
bj101.addStudent(student3);
bj102.addStudent(student4);
bj102.addStudent(student5);
bj102.addStudent(student6);
System.out.println();
// 添加到学校里
School school = new School();
school.addBanji(bj101);
school.addBanji(bj102);
System.out.println();
// 显示
school.displayBanjiName();
System.out.println();
// 添加
BanJi bj3 = new BanJi("b103", "一年3班");
school.addBanji(bj3);
System.out.println();
// 删除
school.deleteBanji(bj3);
System.out.println();
// 班级名查找
System.out.println(school.searchByName("一年1班").getClassName());
System.out.println();
// 班号查找
System.out.println(school.searchById("b101").getClassName());
System.out.println();
// 语文平均分排序
school.sortChineseByAverage();
System.out.println();
// 数学平均分排序
school.sortMathByAverage();
System.out.println();
}
// 主菜单
public void mainMenu() {
System.out.println("**************************************");
System.out.println(" 1 - 班级管理");
System.out.println(" 2 - 学校管理");
System.out.println(" 0 - 退出");
System.out.println("**************************************");
}
// 班级管理菜单
public void banJiMenu() {
System.out.println("**************************************");
System.out.println(" **班级管理**");
System.out.println(" 1 - 添加学生到主学生列表");
System.out.println(" 2 - 添加学生到普通班级");
System.out.println(" 3 - 通过学号查询学生信息");
System.out.println(" 4 - 输入班级学生的语文成绩");
System.out.println(" 5 - 输入班级学生的数学成绩");
System.out.println(" 6 - 删除学生信息");
System.out.println(" 7 - 显示所有学生信息");
System.out.println(" 9 - 返回上一级菜单");
System.out.println("**************************************");
}
// 学校管理菜单
public void schoolMenu() {
System.out.println("**************************************");
System.out.println(" **学校管理**");
System.out.println(" 1 - 创建班级");
System.out.println(" 2 - 删除班级");
System.out.println(" 3 - 通过班级名称查询班级信息");
System.out.println(" 4 - 对各班语文成绩按平均分进行由大到小排序");
System.out.println(" 5 - 对各班数学成绩按平均分进行由大到小排序");
System.out.println(" 6 - 显示所有班级名称");
System.out.println(" 9 - 返回上一级菜单");
System.out.println("**************************************");
}
// 主流程
public void test() {
TestDemo td = new TestDemo();
Scanner sc = new Scanner(System.in);
int input0 = 0, input1 = 0, input2 = 0;
// 创建学校容器
School school = new School();
// 创建主学生列表
BanJi mainStudentList = new BanJi("b000", "主学生列表");
// 将主学生列表添加到学校中
school.addBanji(mainStudentList);
// 创建普通班级容器
BanJi averageStudentList = null;
while (true) {
td.mainMenu();
System.out.println("请输入对应数字进行操作:");
try {
input0 = sc.nextInt();
} catch (InputMismatchException e) {
System.out.println("请输入正确类型的数据!");
String s = sc.next();
continue;
}
if (input0 == 0) {
break;
}
switch (input0) {
case 1:
// 班级管理
td.banJiMenu();
System.out.println("请输入对应的数字进行班级管理:");
try {
input1 = sc.nextInt();
} catch (InputMismatchException e) {
System.out.println("请输入正确类型的数据!");
String s = sc.next();
break;
}
if (input1 == 9) {
break;
}
switch (input1) {
case 1:
System.out.println("添加学生到主学生列表");
System.out.println("请输入要添加的学生人数:");
try {
int count1 = sc.nextInt();
if (count1 <= 0) { // 输入不合逻辑
System.out.println("您输入了不合逻辑的数字,将被强制转成1 !");
count1 = 1;
}
for (int i = 1; i <= count1; i++) {
System.out.println("请输入第" + i + "名学生");
System.out.println("请输入学生学号:");
String stuId = sc.next();
System.out.println("请输入学生姓名:");
String stuName = sc.next();
System.out.println("请输入学生数学成绩::");
float stuMath = sc.nextFloat();
System.out.println("请输入学生语文成绩::");
float stuChinese = sc.nextFloat();
// 创建学生类对象
Student stu = new Student(stuId, stuName, stuMath, stuChinese);
mainStudentList.addStudent(stu);
}
} catch (InputMismatchException e) {
System.out.println("请输入正确类型的数据!");
String s = sc.next();
}
break;
case 2:
System.out.println("添加学生到普通班级");
System.out.println("请输入要添加班级名称:");
String cName = sc.next();
// 判断该班级是否在学校中存在
averageStudentList = school.searchByName(cName);
if (averageStudentList == null) {
System.out.println("该班级不存在,请先添加!");
} else {
System.out.println("请输入要添加的学生人数:");
try {
int count2 = sc.nextInt();
if (count2 <= 0) { // 输入不合逻辑
System.out.println("您输入了不合逻辑的数字,将被强制转成1 !");
count2 = 1;
}
for (int i = 1; i <= count2; i++) {
System.out.println("请输入第" + i + "名学生");
System.out.println("请输入学生学号:");
String stuId = sc.next();
// 首先判断该学号学生是否在主学生列表存在
Student stu = mainStudentList.searchStudentByNum(stuId);
if (stu == null) {
// 不存在继续输入其他信息
System.out.println("该学生信息不完全,请继续输入::");
System.out.println("请输入学生姓名:");
String stuName = sc.next();
System.out.println("请输入学生数学成绩::");
float stuMath = sc.nextFloat();
System.out.println("请输入学生语文成绩::");
float stuChinese = sc.nextFloat();
stu = new Student(stuId, stuName, stuMath, stuChinese);
mainStudentList.addStudent(stu);
averageStudentList.addStudent(stu);
} else {
// 存在则直接添加
averageStudentList.addStudent(stu);
}
}
} catch (InputMismatchException e) {
System.out.println("请输入正确类型的数据!");
String s = sc.next();
}
// 显示学生信息(仅用于测试)
System.out.println("主学生列表:");
mainStudentList.displayAllStudent();
System.out.println(cName + "学生信息:");
averageStudentList.displayAllStudent();
}
break;
case 3:
System.out.println("通过学号查询学生信息");
System.out.println("请输入要查询的班级名称:");
String cName3 = sc.next();
// 查询班级是否存在
BanJi bj3 = school.searchByName(cName3);
if (bj3 == null) {
System.out.println("该班级不存在!");
} else {
System.out.println("请输入要查询的学号:");
String stuId = sc.next();
Student stu = bj3.searchStudentByNum(stuId);
if (stu == null) {
System.out.println("该学生在" + cName3 + "中不存在!");
} else {
System.out.println(stu);
}
}
break;
case 4:
System.out.println("输入班级学生的语文成绩");
System.out.println("请输入该学生所在班级名称:");
String cName4 = sc.next();
BanJi bj4 = school.searchByName(cName4);
if (bj4 == null) {
System.out.println("该班级不存在!");
} else {
System.out.println("请输入要修改学生的人数:");
try {
int count4 = sc.nextInt();
if (count4 <= 0) { // 输入不合逻辑
System.out.println("您输入了不合逻辑的数字,将被强制转成1 !");
count4 = 1;
}
for (int i = 1; i <= count4; i++) {
System.out.println("请输入第" + i + "名学生");
System.out.println("请输入学生学号:");
String stuId = sc.next();
// 首先判断该学号学生是否在对应列表中存在
Student stu = bj4.searchStudentByNum(stuId);
if (stu == null) {
System.out.println("该学生不存在,请先添加到对应班级中!");
} else {
System.out.println("请输入该学生语文成绩:");
Float sChinese = sc.nextFloat();
bj4.insertChineseScore(stuId, sChinese); // 对应列表修改
if (!cName4.equals("mainStudentList")) { // 如果该班级不是主学生列表
mainStudentList.insertChineseScore(stuId, sChinese); // 主列表中该学生也得修改
}
}
}
} catch (InputMismatchException e) {
System.out.println("请输入正确类型的数据!");
String s = sc.next();
}
}
break;
case 5:
System.out.println("输入班级学生的数学成绩");
System.out.println("请输入该学生所在班级名称:");
String cName5 = sc.next();
BanJi bj5 = school.searchByName(cName5);
if (bj5 == null) {
System.out.println("该班级不存在!");
} else {
System.out.println("请输入要修改学生的人数:");
try {
int count5 = sc.nextInt();
if (count5 <= 0) { // 输入不合逻辑
System.out.println("您输入了不合逻辑的数字,将被强制转成1 !");
count5 = 1;
}
for (int i = 1; i <= count5; i++) {
System.out.println("请输入第" + i + "名学生");
System.out.println("请输入学生学号:");
String stuId = sc.next();
// 首先判断该学号学生是否在对应列表中存在
Student stu = bj5.searchStudentByNum(stuId);
if (stu == null) {
System.out.println("该学生不存在,请先添加到对应班级中!");
} else {
System.out.println("请输入该学生数学成绩:");
Float sMath = sc.nextFloat();
bj5.insertMathScore(stuId, sMath);
if (!cName5.equals("mainStudentList")) { // 如果该班级不是主学生列表
mainStudentList.insertMathScore(stuId, sMath); // 主列表中该学生也得修改
}
}
}
} catch (InputMismatchException e) {
System.out.println("请输入正确类型的数据!");
String s = sc.next();
}
}
break;
case 6:
System.out.println("删除学生信息");
System.out.println("请输入该学生所在班级名称:");
String cName6 = sc.next();
BanJi bj6 = school.searchByName(cName6);
if (bj6 == null) {
System.out.println("该班级不存在!");
} else {
System.out.println("请输入要删除学生的人数:");
int count6 = 0;
try { // 异常
count6 = sc.nextInt();
} catch (InputMismatchException e) {
System.out.println("请输入正确类型的数据!");
String s = sc.next();
}
if (count6 <= 0) { // 输入不合逻辑
System.out.println("您输入了不合逻辑的数字,将被强制转成1 !");
count6 = 1;
}
for (int i = 1; i <= count6; i++) {
System.out.println("请输入第" + i + "名学生");
System.out.println("请输入学生学号:");
String stuId = sc.next();
// 首先判断该学号学生是否在对应列表中存在
Student stu = bj6.searchStudentByNum(stuId);
if (stu == null) {
System.out.println("该学生不存在!");
} else {
bj6.deleteStudent(stuId);
if (!cName6.equals("mainStudentList")) {
mainStudentList.deleteStudent(stuId);
}
}
}
}
break;
case 7:
System.out.println("显示所有学生信息");
System.out.println("请输入班级名称:");
String cName7 = sc.next();
BanJi bj7 = school.searchByName(cName7);
if (bj7 == null) { // 该班级不存在
System.out.println("该班级不存在!");
}
bj7.displayAllStudent();
break;
default: // 班级管理的default
System.out.println("该数字没有对应的操作");
break;
}
break;
case 2:
// 学校管理
td.schoolMenu();
System.out.println("请输入对应的数字进行学校管理:");
try {
input2 = sc.nextInt();
} catch (InputMismatchException e) {
System.out.println("请输入正确类型的数据!");
String s = sc.next();
break;
}
if (input2 == 9) {
break;
}
switch (input2) {
case 1:
System.out.println("创建班级");
System.out.println("请输入要创建班级的个数:");
int count1 = 1;
try {
count1 = sc.nextInt();
} catch (InputMismatchException e) {
System.out.println("请输入正确类型的数据!");
String s = sc.next();
break;
}
if (count1 <= 0) { // 输入不合逻辑
System.out.println("您输入了不合逻辑的数字,将被强制转成1 !");
count1 = 1;
}
for (int i = 1; i <= count1; i++) {
System.out.println("请输入班级id:");
String cId1 = sc.next();
BanJi bj1 = school.searchById(cId1);
if (bj1 != null) {
System.out.println("该班级已经存在!");
} else {
System.out.println("请输入班级名称:");
String cName1 = sc.next();
bj1 = new BanJi(cId1, cName1);
school.addBanji(bj1);
}
}
break;
case 2:
System.out.println("删除班级");
System.out.println("请输入班级id:");
String cId2 = sc.next();
if (cId2.equals("b000")) { // 判断是否主表
System.out.println("主学生列表不能删除!");
break;
}
BanJi bj2 = school.searchById(cId2);
if (bj2 == null) {
System.out.println("该班级不存在!");
} else {
school.deleteBanji(bj2);
}
break;
case 3:
System.out.println("通过班级名称查询班级信息");
System.out.println("请输入班级名称:");
String cName3 = sc.next();
if (cName3.equals("主学生列表")) { // 主学生列表不是实际上的班级,视作无效处理
System.out.println("不是可以查看的班级,请返回!");
break;
}
BanJi bj3 = school.searchByName(cName3);
if (bj3 == null) {
System.out.println("该班级不存在!");
} else {
System.out.println("该班级存在");
System.out.println("该班级班号为:" + bj3.getClassId());
System.out.println("该班级班名为:" + bj3.getClassName());
}
break;
case 4:
System.out.println("对各班语文成绩按平均分进行由大到小排序:");
school.sortChineseByAverage();
break;
case 5:
System.out.println("对各班数学成绩按平均分进行由大到小排序:");
school.sortMathByAverage();
break;
case 6:
System.out.println("显示所有班级名称:");
school.displayBanjiName();
break;
default: // 学校管理的default
System.out.println("该数字没有对应的操作");
break;
}
break;
default: // mainMenu的default
System.out.println("该数字没有对应的操作");
break;
}
}
}
public static void main(String[] args) {
TestDemo td = new TestDemo();
// td.testStudent();
// td.testBanJi();
// td.testSchool();
td.test();
}
}