老师来看看我这个怎么显示不出来呢

老师来看看我这个怎么显示不出来呢

package com.imooc.one;

public class Student {

private String stuNum;//学号

private String stuName;//姓名

private float math;//数学成绩

private float chinese;//语文成绩

//无参构造方法

public Student() {

}

//带参构造方法

public Student(String stuNum,String stuName) {

this.stuNum=stuNum;

this.stuName=stuName;

}

//创建setter和getter方法

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) {

//判断对象是否相等,相等则直接返回true

if(this==obj)

return true;

//this!=obj

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 "学生信息: [学号:" + stuNum + ", 姓名:" + stuName + "]";

}

}

package com.imooc.one;


import java.util.ArrayList;

import java.util.List;


public class BanJi {

private String classId;// 班级编号

private String className;// 班级名称

private List<Student> stuList;// 存放学生的集合


/**

* 构造方法

* @param classId   班级编号

* @param className 班级名称

*/

//无参构造方法

public BanJi() {

}

//带参构造方法

public BanJi(String classId, String className) {

this.classId = classId;

this.className = className;

stuList = new ArrayList<Student>();

}


// 创建setter和getter方法

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 stuList;

}


public void setStuList(List<Student> stuList) {

this.stuList = stuList;

}


// 将学生添加到班级

public void addStudent(Student stu) {

// 要排除重复添加的情况

boolean flag = false;// 判断班级中的学生是否存在

for (Student stu1 : stuList) {

if (stu1.equals(stu)) {

flag = true;

break;

}

}

if (flag) {

System.out.println("该学生已经存在于班级中,添加失败!");

} else {

stuList.add(stu);

}

}


/**

* 通过学号查询学生在班级中是否存在

* @param stuNum 学号

* @return 查询到学号的信息

*/

public Student searchStudentByNum(String stuNum) {

Student stu = null;

for (Student stu1 : stuList) {

if (stu1.getStuNum().equals(stuNum)) {

// 如果相等就找到了

stu = stu1;

break;

}

}

return stu;

}


List<Float> chineseScoreList = new ArrayList<Float>();


/**

* 输入班级学生的语文成绩

* @param stuNum 要输入语文成绩的学生

* @param score  要输入的语文成绩 :通过对输入的学生学号遍历存放学生的集合,找出与用户输入学号一直的学生

*               然后利用遍历出来的学生通过set方法进行插入成绩

*/

public void insertChineseScore(String stuNum, float score) {

// 根据stuNum查询到相关的学生,然后进行修改

Student stu = searchStudentByNum(stuNum);

if (stu == null) {

System.out.println("没有找到学号为" + stuNum + "对应的学生");

} else {

stu.setChinese(score);

chineseScoreList.add(score);

System.out.print(stu);

System.out.println(",语文成绩:" + stu.getChinese());

}

}


/**

* 获取班级平均成绩

* @return 班级平均成绩

*/


public float getAvgChinese() {


float avgChinese = 0, totChinese = 0;


for (int i = 0; i < chineseScoreList.size(); i++) {


totChinese = totChinese + chineseScoreList.get(i);


}


avgChinese = totChinese / chineseScoreList.size();


return avgChinese;


}


List<Float> mathScoreList = new ArrayList<Float>();

/**

* 输入班级学生的数学成绩

* @param stuNum 要输入数学成绩的学生

* @param score  要输入的数学成绩 :通过对输入的学生学号遍历存放学生的集合,找出与用户输入学号一直的学生

*               然后利用遍历出来的学生通过set方法进行插入成绩

*/

public void insertMathScore(String stuNum, float score) {


// 根据stuNum查询到相关的学生,然后进行修改


Student stu = searchStudentByNum(stuNum);


if (stu == null) {


System.out.println("没有找到学号为" + stuNum + "对应的学生");


} else {


stu.setMath(score);


mathScoreList.add(score);


System.out.print(stu);


System.out.println(",数学成绩: " + stu.getMath());


}


}


/**

* 获取班级平均成绩

* @return 班级平均成绩

*/


public float getAvgMathScore() {


float totMathScore = 0, avgMathScore = 0;


for (int i = 0; i < mathScoreList.size(); i++) {


totMathScore = totMathScore + mathScoreList.get(i);


}


avgMathScore = totMathScore / mathScoreList.size();


return avgMathScore;


}

/**

* 删除学生信息

* @param stuNun 要删除学生的学号

*/

public void deleteStudent(String stuNun) {

Student stu=searchStudentByNum(stuNun);

if(stu==null) {

System.out.println("删除失败!\n没有找到学号为"+stuNun+"的学生");

}else {

stuList.remove(stu);

System.out.println("学号为"+stuNun+"的学生删除成功!");

}

}

@Override

public String toString() {

return "班级编号:"+ this.getClassId()+",班级名称:" +this.getClassName();

}

/**

* 显示所有学生信息

*/

public void displayAllStudent() {

if(stuList.isEmpty()) {

System.out.println("还未添加学生信息,请先添加");

}else {

System.out.println("班级里所有学生的信息:");

for(Student student:stuList) {

System.out.println(student);

}

}

}

}

package com.imooc.one;


import java.util.ArrayList;

import java.util.HashMap;

import java.util.List;

import java.util.Map;

import java.util.Set;


public class School {

Map<String,BanJi>schoolMap;//存放班级里列表集合

//构造方法

public School() {

schoolMap=new HashMap<String,BanJi>();

}

//getter和setter方法

public Map<String, BanJi> getSchoolMap() {

return schoolMap;

}

public void setSchoolMap(Map<String, BanJi> schoolMap) {

this.schoolMap = schoolMap;

}

/**

* 添加班级

* @param banji 要添加的班级

*/

public void  addBanji(BanJi banji) {

//班级名称作为key值

schoolMap.put(banji.getClassName(), banji);

}

/**

* 删除班级

* @param banji 要删除的班级

*/

public void deleteBanJi(BanJi banji) {

schoolMap.remove(banji.getClassName());

System.out.println("删除成功!");

}

/**

* 通过班级名称查询班级

* @param className 要查询的班级名称

* @return 查询到班级

*/

public BanJi searchBanJiByName(String className) {

BanJi banji=null;

Set<String> banjiSet=schoolMap.keySet();

for(String s:banjiSet) {

if(s.equals(className)) {

banji=schoolMap.get(s);

break;

}

}

return banji;

}

/**

* 展示所有的班级

*/

public void displayBanJiName() {


System.out.println("所有班级名称为: ");


Set<String> banJiSet = schoolMap.keySet();


for (String s : banJiSet) {


if (s.equals("主学生列表")) {


continue;


} else {


System.out.println(s);


}

}

}

public List<BanJi> getBanJiList(){

List<BanJi> banjiList=new ArrayList<>();

for(BanJi banji:schoolMap.values()) {

if(banji.getClassName().equals("主学生列表")) {

continue;

}else {

banjiList.add(banji);

}

}

return banjiList;

}

}

package com.imooc.one;

import java.util.List;

import java.util.Scanner;

import java.lang.NullPointerException;


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 playListMenu() {

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 playerMenu() {

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 mainFlow() {


TestDemo t = new TestDemo();


Scanner sc = new Scanner(System.in);


int input = 0, input1 = 0, input2 = 0;


School school = new School();


// 创建主学生列表


BanJi mainBanJiList = new BanJi("0", "主学生列表");

// 将主学生列表添加到学校容器中


school.addBanji(mainBanJiList);


while (true) {


t.mainMenu();


System.out.println("请输入对应数字进行操作: ");


input = sc.nextInt();


if (input == 0) {


System.out.println("退出成功!");


break;


}


switch (input) {


case 1:


// 班级管理菜单


while (true) {


t.mainMenu();


System.out.println("请输入对应的数字对班级进行管理: ");




input1 = sc.nextInt();


if (input1 == 9) {


break;


}


switch (input1) {


case 1:


System.out.println("添加学生信息到主学生列表");


System.out.println("请输入要添加学生的数量: ");


int count = sc.nextInt();


for (int i = 1; i <= count; i++) {


System.out.println("请输入第" + i + "学生的学号: ");


String stuNum = sc.next();


System.out.println("请输入第" + i + "学生的姓名: ");


String stuName = sc.next();


Student stu = new Student(stuNum, stuName);


mainBanJiList.addStudent(stu);


}


mainBanJiList.displayAllStudent();


break;


case 2:


System.out.println("添加学生信息到普通班级");


System.out.println("请输入要添加学生的班级名称: ");


String className = sc.next();


BanJi banji = school.searchBanJiByName(className);


if (banji == null) {


System.out.println("该班级不存在,请先将班级添加到班级列表中");


} else {


System.out.println("请输入要添加的学生的数量: ");


int count1 = sc.nextInt();


for (int i = 1; i <= count1; i++) {


System.out.println("请输入第"+i+"个学生的学号: ");


String stuNum = sc.next();


// 判断该学号的学生是否在主学生列表中存在


Student stu = mainBanJiList.searchStudentByNum(stuNum);


if (stu == null) {


//如果学生不存在,则创建新的添加,并且添加到主学生列表


System.out.println("该学生在主学生列表不存在,继续输入该学生的其他信息");


System.out.println("请输入第"+i+"个学生的姓名: ");


String stuName=sc.next();


//创建一个Student类的对象进行添加


stu=new Student(stuNum,stuName);


//分别将该学生添加到对应的班级学生列表和主学生列表


banji.addStudent(stu);


mainBanJiList.addStudent(stu);


}else {


//如果学生存在主学生列表,则直接添加到对应的班级类表中


banji.addStudent(stu);


System.out.println("添加成功!");


}


}


//显示班级列表中的学生信息


System.out.println("主学生列表: ");


mainBanJiList.displayAllStudent();


System.out.println("className"+"学生列表:");


banji.displayAllStudent();


}




break;


case 3:


System.out.println("通过学号查询学生信息");


System.out.println("请输入要查询的班级的名称: ");


String className1=sc.next();


BanJi banji1=school.searchBanJiByName(className1);


if(banji1==null) {


System.out.println("该班级不存在");


break;


}else {


System.out.println("请输入该学生的学号: ");


String stuNum=sc.next();


Student stu=banji1.searchStudentByNum(stuNum);


if(stu==null) {


System.out.println("学号为"+stuNum+"的学生不存在"+className1+"中!");


}else {


System.out.println("该学生信息为: ");


System.out.println(stu);


}


}


break;


case 4:


System.out.println("输入班级的语文成绩");


System.out.println("请输入要输入语文成绩的班级: ");


String className2=sc.next();


//判断输入的班级是否存在


BanJi banji3=school.searchBanJiByName(className2);


if(banji3==null) {


System.out.println("该班级不存在!");


break;


}else {


//检查此班级列表中是否有学生


//然后利用for循环对相应班级里的每一个学生插入语文成绩


//假如我输入一班(一班已经创建好了,里面也添加了学生),卡在我不知道一班的学生添加到哪个集合里去了。。。。。。。


//不知道遍历哪个集合是否是空的,不知道遍历哪一个集合去添加语文成绩


}


break;


case 5:


System.out.println(" 输入班级的数学成绩");


break;


case 6:


System.out.println("删除学生信息");


break;


case 7:


System.out.println("显示所有学生信息");


break;


default:


System.out.println("该数字没有对应的操作!");


break;


}


}


break;


case 2:


// 学校管理菜单


while (true) {


t.mainMenu();


System.out.println("请输入对应的数字对班级进行管理: ");


input2 = sc.nextInt();


if (input2 == 9) {


break;


}


switch (input2) {


case 1:


System.out.println("创建班级");


System.out.println("请输入要添加的班级数量: ");


int count = sc.nextInt();


for (int i = 1; i <= count; i++) {


System.out.println("请输入第" + i + "班级的编号: ");


String classId = sc.next();


System.out.println("请输入第" + i + "班级的名称: ");


String className = sc.next();


BanJi banji = new BanJi(classId, className);


school.addBanji(banji);


}


school.displayBanJiName();


break;


case 2:


System.out.println("删除班级 ");


break;


case 3:


System.out.println("通过班级名称查询班级信息");


break;


case 4:


System.out.println("对各班语文成绩按平均分进行由大到小排序");


break;


case 5:


System.out.println("对各班数学成绩按平均分进行由大到小排序 ");


break;


case 6:


System.out.println("显示所有班级名称");


break;


default:


System.out.println("该数字没有对应的操作!");


break;


}


}


break;


default:


System.out.println("该数字没有对应的操作!");


break;


}


}


}

public static void main(String[] args) {


TestDemo t = new TestDemo();


t.mainFlow();


}




}


正在回答

登陆购买课程后可参与讨论,去登陆

2回答

同学你好,在班级管理的case1中,同学调用显示主菜单的mainMenu()方法,如:

http://img1.sycdn.imooc.com//climg/5f1d467409d07a8105720368.jpg


在学校管理的case 2中,同学调用的还是显示主菜单的mainMenu(),如:

http://img1.sycdn.imooc.com//climg/5f1d46c4094f115a07240320.jpg

这里应该调用playListMenu()方法和playerMenu()方法,建议同学修改一下再试试。

祝:学习愉快~

好帮手慕阿满 2020-07-26 16:40:09

同学你好,同学说的显示不出来是指哪里显示不出来,建议同学将问题详细描述一下。

祝:学习愉快~

  • 提问者 轻舞的穹 #1
    就是显示班级管理和学校管理的时候看不到下面的其他选项
    2020-07-26 16:43:15
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师