刚才不小心按了采纳没法在刚才那条回复~新开了一个~
大神,我在班级类里按你说的,创建了对班级的语文成绩按平均分进行由大到小排序的方法:
public float getAveChinese() {
float sum = 0;
int count = 0;
float aveChinese = 0;
for (int i = 0; i < mainStuList.size(); i++) {
sum += mainStuList.get(i).getChinese();
count++;
}
aveChinese = sum / count;
return aveChinese;
}然后在school类里创建了一个按照班级语文平均分排序内部类:
public class SortChinese implements Comparator<Banji> {
@Override
public int compare(Banji o1, Banji o2) {
float score1 = o1.getAveChinese();
float score2 = o2.getAveChinese();
int n = (int) (score2 - score1);
return n;
}
}但是到了最后一步:创建班级对象的列表banJiList,并排序,我不知道怎么做了:
/**
* 对各班语文成绩按平均分进行由大到小排序
*/
public void sortChineseByAverage() {
List<Banji> banjiChiList = new ArrayList<>();
System.out.println("根据语文平均分排序后的班级名称为:");
banjiChiList.sort(new SortChinese());
}87
收起
正在回答
10回答
//判断学校是否有条件可以排序成绩
public boolean canSort() {
List<BanJi> banJiList = getClassList(); //获取除主学生列表以外的班级列表
if (banJiList.isEmpty()) { //判断学校内是否有班级
System.out.println("学校还未添加班级");
return false;
} else { //判断所有班级中是否都有学生,是否有成绩
// 这里代码你自己添加吧,全给你就没意思了。
}
}
//对各班语文成绩按平均分进行由大到小排序:
public void sortChineseByAverage() {
if (canSort()) {
List<BanJi> banJiList = getClassList();
banJiList.sort(new SortChinese());
System.out.println("语文平均成绩从大到小为:");
for (BanJi banJi : banJiList) {
System.out.println(banJi.getClassName() + "的平均分:" + banJi.getAvgChinese());
}
}
}getClassList()就是获取班级列表(除“主学生列表”外)。其他你应该能看懂了
Heijyu
2020-06-24 19:11:49
TestDemo的最后的部分
/**
* 主流程
*/
public void test() {
TestDemo td = new TestDemo();
Scanner sc = new Scanner(System.in);
String input;
School school = new School();
Banji mainBanji = new Banji("默认学生列表");
school.addBanji(mainBanji);
Banji norBanji = null;
int count = 0;
String strStuNum;
String strStuName;
Student stu;
String bjName;
boolean flag;
while (true) {
td.mainMenu();
System.out.println("请输入相应的数字进行操作:");
input = sc.next();
if (input.equals("0")) {
System.exit(0);
}
switch (input) {
case "1":
while (true) {
td.banjiMenu();
System.out.println("请输入相应的数字进行操作:");
input = sc.next();
if (input.equals("9")) {
break;
}
switch (input) {
case "1":// 添加学生到主学生列表
System.out.println("**将学生信息添加到主学生列表**");
System.out.println("请输入要添加的学生个数:");
try {
count = sc.nextInt();
} catch (InputMismatchException e) {
System.out.println("不能有非数字,请重新输入!");
sc.nextInt();
}
for (int i = 1; i <= count; i++) {
System.out.println("请输入第" + i + "个学生的学号:");
strStuNum = sc.next();
System.out.println("请输入第" + i + "个学生的姓名:");
strStuName = sc.next();
stu = new Student(strStuNum, strStuName);
mainBanji.addStudent(stu);
System.out.println("添加学生操作完成!");
}
break;
case "2":// 添加学生到普通班级
System.out.println("**将学生信息添加到普通班级列表**");
System.out.println("请输入要添加学生的普通班级名称:");
bjName = sc.next();
norBanji = school.searchByName(bjName);
if (norBanji == null) {
System.out.println("该班级不存在,请先创建相应班级!");
break;
} else {
System.out.println("请输入要添加的学生个数:");
count = 0;
try {
count = sc.nextInt();
} catch (InputMismatchException e) {
System.out.println("不能有非数字,请重新输入!");
sc.nextInt();
}
for (int i = 1; i <= count; i++) {
System.out.println("请输入第" + i + "个学生的学号:");
strStuNum = sc.next();
stu = mainBanji.searchStudentByNum(strStuNum);
Student stu1 = null;
if (stu == null) {
System.out.println("请输入第" + i + "个学生的姓名:");
strStuName = sc.next();
stu1 = new Student(strStuNum, strStuName);
mainBanji.addStudent(stu1);
norBanji.addStudent(stu1);
System.out.println("添加学生操作完成!");
mainBanji.displayAllStudent();
norBanji.displayAllStudent();
} else {
norBanji.addStudent(stu);
System.out.println("添加学生操作完成!");
norBanji.displayAllStudent();
}
}
}
break;
case "3":// 通过学号查询学生信息
System.out.println("**通过学号查询学生信息**");
System.out.println("请输入要查询学生的班级名称:");
bjName = sc.next();
norBanji = school.searchByName(bjName);
if (norBanji == null) {
System.out.println("该班级不存在!");
break;
} else {
System.out.println("该班级存在!");
System.out.println("请输入要查询学生的学号:");
strStuNum = sc.next();
// 如果学生不在普通班级列表,则查看是否在默认学生列表
System.out.println("查询到的学生信息为:");
System.out.println(norBanji.searchStudentByNum(strStuNum));
}
break;
case "4":// 输入学生的语文成绩
System.out.println("**输入学生的语文成绩**");
System.out.println("请输入要登记语文成绩的学生的数量:");
try {
count = sc.nextInt();
} catch (InputMismatchException e) {
System.out.println("不能有非数字,请重新输入!");
}
for (int i = 0; i < count; i++) {
System.out.println("请输入要登记语文成绩的学生的学号:");
strStuNum = sc.next();
stu = mainBanji.searchStudentByNum(strStuNum);
if (stu == null) {
System.out.println("该学生不存在!");
break;
} else {
System.out.println("请输入第" + (i + 1) + "位学生的语文成绩:");
float chiScore = 0;
try {
chiScore = sc.nextFloat();
} catch (InputMismatchException e) {
System.out.println("不能有非数字或格式不对的成绩,请重新输入!");
}
mainBanji.insertChineseScore(strStuNum, chiScore);
}
}
break;
case "5":// 输入学生的数学成绩
System.out.println("**输入学生的数学成绩**");
System.out.println("请输入要登记数学成绩的学生的数量:");
try {
count = sc.nextInt();
} catch (InputMismatchException e) {
System.out.println("不能有非数字,请重新输入!");
}
for (int i = 0; i < count; i++) {
System.out.println("请输入要登记数学成绩的学生的学号:");
strStuNum = sc.next();
stu = mainBanji.searchStudentByNum(strStuNum);
if (stu == null) {
System.out.println("该学生不存在!");
break;
} else {
System.out.println("请输入第" + (i + 1) + "位学生的数学成绩:");
float mathScore = 0;
try {
mathScore = sc.nextFloat();
} catch (InputMismatchException e) {
System.out.println("不能有非数字或格式不对的成绩,请重新输入!");
}
mainBanji.insertChineseScore(strStuNum, mathScore);
}
}
break;
case "6":// 删除学生信息
System.out.println("**删除学生信息**");
System.out.println("请输入要删除的学生的所在班级名称:");
bjName = sc.next();
norBanji = school.searchByName(bjName);
if (norBanji != null) {
System.out.println("请输入要删除的学生的学号:");
strStuNum = sc.next();
stu = norBanji.searchStudentByNum(strStuNum);
if (stu != null) {
mainBanji.deleteStudent(strStuNum);
norBanji.deleteStudent(strStuNum);
} else {
stu = mainBanji.searchStudentByNum(strStuNum);
if (stu != null) {
mainBanji.deleteStudent(strStuNum);
}
}
} else {
System.out.println("该班级不存在");
}
break;
case "7":// 显示所有学生信息
System.out.println("**显示所有学生信息**");
flag = mainBanji.getStuList().isEmpty();
if (flag == true) {
System.out.println("列表为空,尚未添加学生信息!");
} else {
mainBanji.displayAllStudent();
}
break;
default:
System.out.println("该数字没有相应的操作!");
break;
}
}
break;
case "2":
while (true) {
td.schoolMenu();
System.out.println("请输入相应的数字进行操作:");
input = sc.next();
if (input.equals("9")) {
break;
}
switch (input) {
case "1":// 创建班级
System.out.println("**创建班级**");
System.out.println("请输入要创建的班级名称:");
bjName = sc.next();
norBanji = school.searchByName(bjName);
if (norBanji == null) {
norBanji = new Banji(bjName);
school.addBanji(norBanji);
} else {
System.out.println("该班级已存在!");
}
break;
case "2":// 删除班级
System.out.println("**删除班级**");
System.out.println("请输入要删除的班级名称:");
bjName = sc.next();
norBanji = school.searchByName(bjName);
if (bjName.equals("默认学生列表")) {
System.out.println("默认学生列表不能删除!");
break;
}
if (norBanji != null) {
school.deleteBanji(norBanji);
} else {
System.out.println("该班级不存在,不能删除!");
}
break;
case "3":// 通过班级名称查询班级信息
System.out.println("**通过班级名称查询班级信息**");
System.out.println("请输入要查询的班级名称:");
bjName = sc.next();
norBanji = school.searchByName(bjName);
if (norBanji == null) {
System.out.println("该班级不存在!");
} else {
System.out.println("该班级存在,班级信息为:");
norBanji.displayAllStudent();
}
break;
case "4":// 对各班语文成绩按平均分由大到小排序
System.out.println("排序前的班级列表为:");
school.displayBanJiName();
System.out.println("**对各班语文成绩按平均分由大到小排序**");
school.sortChineseByAverage();
break;
case "5":// 对各班数学成绩按平均分由大到小排序
System.out.println("**对各班数学成绩按平均分由大到小排序**");
school.sortMathByAverage();
break;
case "6":// 显示所有班级名称
System.out.println("**显示所有班级名称**");
school.displayBanJiName();
break;
default:
System.out.println("该数字没有相应的操作!");
break;
}
}
break;
default:
System.out.println("该数字没有相应的操作!");
break;
}
}
}
public static void main(String[] args) {
TestDemo td = new TestDemo();
td.test();
}
}
Heijyu
2020-06-24 19:11:12
最后的TestDemo类
package studentmanagement;
import java.util.ArrayList;
import java.util.InputMismatchException;
import java.util.List;
import java.util.Scanner;
public class TestDemo {
/**
* 主菜单
*/
public void mainMenu() {
System.out.println("*************************************");
System.out.println(" **主菜单*** ");
System.out.println(" 1--班级管理 ");
System.out.println(" 2--学校管理 ");
System.out.println(" 0--退出 ");
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 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("*********************************************************");
}
Heijyu
2020-06-24 19:08:06
Student 类
package studentmanagement;
public class Student {
private String stuNum;
private String stuName;
private float math;
private float chinese;
/**
* 学生类无参构造方法
*/
public Student() {
this(null, null);
}
/**
* 学生类带参构造方法
*
* @param stuNum 学号
* @param stuName 姓名
* @param math 数学成绩
* @param chinese 语文成绩
*/
public Student(String stuNum, String stuName, float math, float chinese) {
this.setStuNum(stuNum);
this.setStuName(stuName);
this.setMath(math);
this.setChinese(chinese);
}
/**
* 学生类带参构造方法
*
* @param stuNum 学号
* @param stuName 姓名
*/
public Student(String stuNum, String stuName) {
this.setStuNum(stuNum);
this.setStuName(stuName);
}
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;
}
if (obj.getClass() == Student.class) {
Student stu = (Student) obj;
return (stu.getStuNum().equals(stuNum) && (stu.getStuName().equals(stuName)) && (stu.getMath() == math)
&& (stu.getChinese() == chinese));
}
return false;
}
@Override
public String toString() {
return "学生信息: [学号:" + getStuNum() + ", 姓名:" + getStuName() + "]";
}
}Banji类
package studentmanagement;
import java.util.ArrayList;
import java.util.Comparator;
import java.util.List;
public class Banji {
private String classId;
private String className;
private List<Student> mainStuList;
/**
* 班级类无参构造方法
*/
public Banji() {
this(null, null);
}
/**
* 班级类带参构造方法
*
* @param classId 班级编号
* @param className 班级名称
*/
public Banji(String classId, String className) {
this.setClassId(classId);
this.setClassName(className);
mainStuList = new ArrayList<Student>();
}
public Banji(String className) {
this.setClassName(className);
mainStuList = new ArrayList<Student>();
}
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<Student> getStuList() {
return mainStuList;
}
public void setStuList(List<Student> stuList) {
this.mainStuList = stuList;
}
/**
* 向班级中添加学生的方法
*
* @param stu 学生
*/
public void addStudent(Student stu) {
boolean flag = false;
for (Student stu1 : mainStuList) {
if (stu1.equals(stu)) {
flag = true;
break;
}
}
if (flag) {
System.out.println("该学生已存在,无需重复添加!");
} else {
mainStuList.add(stu);
}
}
/**
* 根据学号查询学生信息的方法
*
* @param stuNum 学号
* @return
*/
public Student searchStudentByNum(String stuNum) {
Student stu = null;
for (Student stu1 : mainStuList) {
if (stu1.getStuNum().equals(stuNum)) {
stu = stu1;
break;
}
}
return stu;
}
/**
* 登记学生语文成绩的方法
*
* @param stuNum 学号
* @param chinese 语文成绩
*/
public void insertChineseScore(String stuNum, float chinese) {
Student stu = searchStudentByNum(stuNum);
if (stu == null) {
System.out.println("没有找到学号为:" + stuNum + "的学生!");
} else {
stu.setChinese(chinese);
System.out.println("该学生语文成绩登记成功!");
}
}
/**
* 登记学生数学成绩的方法
*
* @param stuNum 学号
* @param math 数学成绩
*/
public void insertMathScore(String stuNum, float math) {
Student stu = searchStudentByNum(stuNum);
if (stu == null) {
System.out.println("没有找到学号为:" + stuNum + "的学生!");
} else {
stu.setMath(math);
System.out.println("该学生数学成绩登记成功!");
}
}
/**
* 删除学生信息的方法
*
* @param stuNum 学号
*/
public void deleteStudent(String stuNum) {
Student stu = searchStudentByNum(stuNum);
if (stu != null) {
mainStuList.remove(stu);
System.out.println("该学生信息删除成功!");
} else {
System.out.println("没有找到学号为:" + stuNum + "的学生!");
}
}
/**
* 显示所有学生信息的方法
*/
public void displayAllStudent() {
System.out.println("班级" + this.getClassName() + "中的所有学生信息为:");
for (Student stu : mainStuList) {
System.out.println(stu);
}
}
/**
* 获取班级语文平均
*
* @return
*/
public float getAveChinese() {
float sum = 0;
int count = 0;
float aveChinese = 0;
for (int i = 0; i < mainStuList.size(); i++) {
sum += mainStuList.get(i).getChinese();
count++;
}
aveChinese = sum / count;
return aveChinese;
}
/**
* 获取班级数学平均
*
* @return
*/
public float getAveMath() {
float sum = 0;
int count = 0;
float aveMath = 0;
for (int i = 0; i < mainStuList.size(); i++) {
sum += mainStuList.get(i).getMath();
count++;
}
aveMath = sum / count;
return aveMath;
}
@Override
public String toString() {
return "班级名称:" + className;
}
}School 类
package studentmanagement;
import java.util.ArrayList;
import java.util.Collection;
import java.util.Collections;
import java.util.Comparator;
import java.util.HashMap;
import java.util.HashSet;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
import java.util.Set;
public class School {
Map<String, Banji> schoolListMap;
public School() {
schoolListMap = new HashMap<String, Banji>();
}
public Map<String, Banji> getSchoolListMap() {
return schoolListMap;
}
public void setSchoolListMap(Map<String, Banji> schoolListMap) {
this.schoolListMap = schoolListMap;
}
/**
* 添加班级
*/
public void addBanji(Banji banji) {
schoolListMap.put(banji.getClassName(), banji);
}
/**
* 删除班级
*/
public void deleteBanji(Banji banji) {
schoolListMap.remove(banji.getClassName());
System.out.println("该班级删除成功!");
}
/**
* 通过班级名称查询班级
*/
public Banji searchByName(String className) {
Banji banji = null;
Set<String> banjiSet = schoolListMap.keySet();
for (String s : banjiSet) {
if (s.equals(className)) {
banji = schoolListMap.get(s);
}
}
return banji;
}
/**
* 对各班语文成绩按平均分进行由大到小排序
*/
public void sortChineseByAverage() {
List<Banji> banjiChiList = new ArrayList<>();
Collection<Banji> banji = schoolListMap.values();
Iterator<Banji> it = banji.iterator();
while (it.hasNext()) {
banjiChiList.add(it.next());
}
banjiChiList.sort(new SortChinese());
for (Banji bj : banjiChiList) {
System.out.println(bj);
}
}
/**
* 按照班级语文平均分排序内部类
*/
public class SortChinese implements Comparator<Banji> {
@Override
public int compare(Banji o1, Banji o2) {
float score1 = o1.getAveChinese();
float score2 = o2.getAveChinese();
int n = (int) (score2 - score1);
return n;
}
}
/**
* 对各班数学成绩按平均分进行由大到小排序
*/
public void sortMathByAverage() {
List<Banji> banjiMathList = new ArrayList<>();
Collection<Banji> banji = schoolListMap.values();
Iterator<Banji> it = banji.iterator();
while (it.hasNext()) {
banjiMathList.add(it.next());
}
banjiMathList.sort(new SortChinese());
for (Banji bj : banjiMathList) {
System.out.println(bj);
}
}
/**
* 按照班级数学平均分排序内部类
*/
public class SortMath implements Comparator<Banji> {
@Override
public int compare(Banji o1, Banji o2) {
float score1 = o1.getAveMath();
float score2 = o2.getAveMath();
int n = (int) (score2 - score1);
return n;
}
}
/**
* 显示所有班级名称
*/
public void displayBanJiName() {
Set<String> banjiSet = schoolListMap.keySet();
System.out.println("班级名称为:");
for (String s : banjiSet) {
System.out.println(s);
}
}
}
Heijyu
2020-06-24 18:24:33
关于方法和内部类
/**
* 对各班语文成绩按平均分进行由大到小排序
*/
public void sortChineseByAverage() {
List<Banji> banjiChiList = new ArrayList<>();
Collection<Banji> banji = schoolListMap.values();
Iterator<Banji> it = banji.iterator();
while(it.hasNext()) {
banjiChiList.add(it.next());
}
banjiChiList.sort(new SortChinese());
for(Banji bj:banjiChiList) {
System.out.println(bj);
}
}
/**
* 按照班级语文平均分排序内部类
*/
public class SortChinese implements Comparator<Banji> {
@Override
public int compare(Banji o1, Banji o2) {
float score1 = o1.getAveChinese();
float score2 = o2.getAveChinese();
int n = (int) (score2 - score1);
return n;
}
}主流程代码:
/**
* 主流程
*/
public void test() {
TestDemo td = new TestDemo();
Scanner sc = new Scanner(System.in);
String input;
School school = new School();
Banji mainBanji = new Banji("默认学生列表");
school.addBanji(mainBanji);
Banji norBanji = null;
int count = 0;
String strStuNum;
String strStuName;
Student stu;
String bjName;
boolean flag;
while (true) {
td.mainMenu();
System.out.println("请输入相应的数字进行操作:");
input = sc.next();
if (input.equals("0")) {
System.exit(0);
}
switch (input) {
case "1":
while (true) {
td.banjiMenu();
System.out.println("请输入相应的数字进行操作:");
input = sc.next();
if (input.equals("9")) {
break;
}
switch (input) {
case "1":// 添加学生到主学生列表
System.out.println("**将学生信息添加到主学生列表**");
System.out.println("请输入要添加的学生个数:");
try {
count = sc.nextInt();
} catch (InputMismatchException e) {
System.out.println("不能有非数字,请重新输入!");
sc.nextInt();
}
for (int i = 1; i <= count; i++) {
System.out.println("请输入第" + i + "个学生的学号:");
strStuNum = sc.next();
System.out.println("请输入第" + i + "个学生的姓名:");
strStuName = sc.next();
stu = new Student(strStuNum, strStuName);
mainBanji.addStudent(stu);
System.out.println("添加学生操作完成!");
}
break;
case "2":// 添加学生到普通班级
System.out.println("**将学生信息添加到普通班级列表**");
System.out.println("请输入要添加学生的普通班级名称:");
bjName = sc.next();
norBanji = school.searchByName(bjName);
if (norBanji == null) {
System.out.println("该班级不存在,请先创建相应班级!");
break;
} else {
System.out.println("请输入要添加的学生个数:");
count = 0;
try {
count = sc.nextInt();
} catch (InputMismatchException e) {
System.out.println("不能有非数字,请重新输入!");
sc.nextInt();
}
for (int i = 1; i <= count; i++) {
System.out.println("请输入第" + i + "个学生的学号:");
strStuNum = sc.next();
stu = mainBanji.searchStudentByNum(strStuNum);
Student stu1 = null;
if (stu == null) {
System.out.println("请输入第" + i + "个学生的姓名:");
strStuName = sc.next();
stu1 = new Student(strStuNum, strStuName);
mainBanji.addStudent(stu1);
norBanji.addStudent(stu1);
System.out.println("添加学生操作完成!");
mainBanji.displayAllStudent();
norBanji.displayAllStudent();
} else {
norBanji.addStudent(stu);
System.out.println("添加学生操作完成!");
norBanji.displayAllStudent();
}
}
}
break;
case "3":// 通过学号查询学生信息
System.out.println("**通过学号查询学生信息**");
System.out.println("请输入要查询学生的班级名称:");
bjName = sc.next();
norBanji = school.searchByName(bjName);
if (norBanji == null) {
System.out.println("该班级不存在!");
break;
} else {
System.out.println("该班级存在!");
System.out.println("请输入要查询学生的学号:");
strStuNum = sc.next();
// 如果学生不在普通班级列表,则查看是否在默认学生列表
System.out.println("查询到的学生信息为:");
System.out.println(norBanji.searchStudentByNum(strStuNum));
}
break;
case "4":// 输入学生的语文成绩
System.out.println("**输入学生的语文成绩**");
System.out.println("请输入要登记语文成绩的学生的数量:");
try {
count = sc.nextInt();
} catch (InputMismatchException e) {
System.out.println("不能有非数字,请重新输入!");
}
for (int i = 0; i < count; i++) {
System.out.println("请输入要登记语文成绩的学生的学号:");
strStuNum = sc.next();
stu = mainBanji.searchStudentByNum(strStuNum);
if (stu == null) {
System.out.println("该学生不存在!");
break;
} else {
System.out.println("请输入第" + (i + 1) + "位学生的语文成绩:");
float chiScore = 0;
try {
chiScore = sc.nextFloat();
} catch (InputMismatchException e) {
System.out.println("不能有非数字或格式不对的成绩,请重新输入!");
}
mainBanji.insertChineseScore(strStuNum, chiScore);
}
}
break;
case "5":// 输入学生的数学成绩
System.out.println("**输入学生的数学成绩**");
System.out.println("请输入要登记数学成绩的学生的数量:");
try {
count = sc.nextInt();
} catch (InputMismatchException e) {
System.out.println("不能有非数字,请重新输入!");
}
for (int i = 0; i < count; i++) {
System.out.println("请输入要登记数学成绩的学生的学号:");
strStuNum = sc.next();
stu = mainBanji.searchStudentByNum(strStuNum);
if (stu == null) {
System.out.println("该学生不存在!");
break;
} else {
System.out.println("请输入第" + (i + 1) + "位学生的数学成绩:");
float mathScore = 0;
try {
mathScore = sc.nextFloat();
} catch (InputMismatchException e) {
System.out.println("不能有非数字或格式不对的成绩,请重新输入!");
}
mainBanji.insertChineseScore(strStuNum, mathScore);
}
}
break;
case "6":// 删除学生信息
System.out.println("**删除学生信息**");
System.out.println("请输入要删除的学生的所在班级名称:");
bjName = sc.next();
norBanji = school.searchByName(bjName);
if (norBanji != null) {
System.out.println("请输入要删除的学生的学号:");
strStuNum = sc.next();
stu = norBanji.searchStudentByNum(strStuNum);
if (stu != null) {
mainBanji.deleteStudent(strStuNum);
norBanji.deleteStudent(strStuNum);
} else {
stu = mainBanji.searchStudentByNum(strStuNum);
if (stu != null) {
mainBanji.deleteStudent(strStuNum);
}
}
} else {
System.out.println("该班级不存在");
}
break;
case "7":// 显示所有学生信息
System.out.println("**显示所有学生信息**");
flag = mainBanji.getStuList().isEmpty();
if (flag == true) {
System.out.println("列表为空,尚未添加学生信息!");
} else {
mainBanji.displayAllStudent();
}
break;
default:
System.out.println("该数字没有相应的操作!");
break;
}
}
break;
case "2":
while (true) {
td.schoolMenu();
System.out.println("请输入相应的数字进行操作:");
input = sc.next();
if (input.equals("9")) {
break;
}
switch (input) {
case "1":// 创建班级
System.out.println("**创建班级**");
System.out.println("请输入要创建的班级名称:");
bjName = sc.next();
norBanji = school.searchByName(bjName);
if (norBanji == null) {
norBanji = new Banji(bjName);
school.addBanji(norBanji);
} else {
System.out.println("该班级已存在!");
}
break;
case "2":// 删除班级
System.out.println("**删除班级**");
System.out.println("请输入要删除的班级名称:");
bjName = sc.next();
norBanji = school.searchByName(bjName);
if (bjName.equals("默认学生列表")) {
System.out.println("默认学生列表不能删除!");
break;
}
if (norBanji != null) {
school.deleteBanji(norBanji);
} else {
System.out.println("该班级不存在,不能删除!");
}
break;
case "3":// 通过班级名称查询班级信息
System.out.println("**通过班级名称查询班级信息**");
System.out.println("请输入要查询的班级名称:");
bjName = sc.next();
norBanji = school.searchByName(bjName);
if (norBanji == null) {
System.out.println("该班级不存在!");
} else {
System.out.println("该班级存在,班级信息为:");
norBanji.displayAllStudent();
}
break;
case "4":// 对各班语文成绩按平均分由大到小排序
System.out.println("排序前的班级列表为:");
school.displayBanJiName();
System.out.println("**对各班语文成绩按平均分由大到小排序**");
school.sortChineseByAverage();
break;
case "5":// 对各班数学成绩按平均分由大到小排序
System.out.println("**对各班数学成绩按平均分由大到小排序**");
school.sortMathByAverage();
break;
case "6":// 显示所有班级名称
System.out.println("**显示所有班级名称**");
school.displayBanJiName();
break;
default:
System.out.println("该数字没有相应的操作!");
break;
}
}
break;
default:
System.out.println("该数字没有相应的操作!");
break;
}
}
}
java工程师2020版
- 参与学习 人
- 提交作业 9410 份
- 解答问题 16556 个
综合就业常年第一,编程排行常年霸榜,无需脱产即可学习,北上广深月薪过万 无论你是未就业的学生还是想转行的在职人员,不需要基础,只要你有梦想,想高薪
了解课程



恭喜解决一个难题,获得1积分~
来为老师/同学的回答评分吧
0 星