添加成功后显示所有信息 显示不出来

添加成功后显示所有信息 显示不出来

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("*******************************************");
	}

	// 主流程
	public void test() {
		TestDemo td = new TestDemo();
		Scanner sc = new Scanner(System.in);
		School s = new School();
		// 创建一个主学生列表
		Banji mainBanji = new Banji("c001", "主学生列表");
		// 创建一个普通班级
		Banji twoBanji = null;
		int input1 = 0, input2 = 0, input3 = 0;
		while (true) {
			td.mainMenu();
			System.out.println("请输入指定的数字进行操作");
			try {
				input1 = sc.nextInt();
			} catch (InputMismatchException e) {
				System.out.println("输入错误请输入指定的数字进行操作");
				sc.next();
				continue;
			}
			if (input1 == 0) {
				break;
			}
			switch (input1) {
			case 1:
				while (true) {
					td.schoolMenu();
					System.out.println("请输入指定的数字进行操作");
					try {
						input2 = sc.nextInt();
					} catch (InputMismatchException e) {
						System.out.println("输入错误请输入指定的数字进行操作");
						sc.next();
						continue;
					}
					if (input2 == 9) {
						break;
					}
					switch (input2) {
					case 1:
						//先看添加的班级是否存在
						System.out.println("                 1--创建班级 ");
						System.out.println("请输入要添加的班级编号");
						String strId1=sc.next();
						System.out.println("请输入要添加的班级名称");
						String strName1=sc.next();
						twoBanji=s.searchByName(strId1);
						if(twoBanji==null) {
							twoBanji=new Banji(strId1,strName1);
							s.addClass(twoBanji);
						}else{
							System.out.println("输入的班级已经存在,请不要重复添加");
						}
						break;
					case 2:
						System.out.println("                 2--删除班级 ");
						System.out.println("请输入要删除班级的名称");
						String str2=sc.next();
						Banji banji2=s.searchByName(str2);
						if(banji2==null) {
							System.out.println("没有找到该列表请重新输入");
							break;
						}else{
							s.deleteStudent(banji2);
						}
						break;
					case 3:
						System.out.println("                 3--通过班级名称查询班级信息  ");
						System.out.println("请输入想查询的班级名称");
						String str3=sc.next();
						Banji banji3=s.searchByName(str3);
						if(banji3==null) {
							System.out.println("学校里没有该班级");
						}else {
							banji3.displayAllStudent();
						}
						break;
					case 4:
						System.out.println("                 4--对各班语文成绩按平均分进行由大到小排序 ");
						System.out.println();
						break;
					case 5:
						System.out.println("                 5--对各班数学成绩按平均分进行由大到小排序 ");
						break;
					case 6:
						System.out.println("                 6--显示所有班级名称   ");
						break;
					}
				}
				break;
			case 2:
				while (true) {
					td.banjiMenu();
					System.out.println("请输入指定的数字进行操作");
					try {
						input3 = sc.nextInt();
					} catch (InputMismatchException e) {
						System.out.println("输入错误请输入指定的数字进行操作");
						sc.next();
						continue;
					}
					if (input3 == 9) {
						break;
					}
					switch (input3) {
					case 1:
						System.out.println("                 1--添加学生信息到主学生列表 ");
						System.out.println("请输入想添加学生信息的数量");
						int count1=0;
						try{count1=sc.nextInt();}
						catch(InputMismatchException e) {
							System.out.println("输入错误请输入正确的数字");
							sc.next();
							continue;
						}
						for(int i=1;i<=count1;i++) {
							System.out.println("请输入第"+i+"个学生的Id");
							String strId1=sc.next();
							System.out.println("请输入学生的姓名");
							String strName1=sc.next();
							Student stu1=new Student(strId1,strName1);
							mainBanji.addStudent(stu1);
						}
						break;
					case 2:
						System.out.println("                 2--添加学生信息到普通班级 ");
						System.out.println("请输入想要添加学生信息的班级名字");
						String strBanjiName2=sc.next();
						Banji banji2=s.searchByName(strBanjiName2);
						if(banji2==null) {
							System.out.println("学校里没有这个班级请重新输入");
						}else {
							System.out.println("请输入想添加学生的数量");
							int count2=0;
							try{count2=sc.nextInt();}
							catch(InputMismatchException e) {
								System.out.println("请输入正确的数字进行操作");
								sc.next();
								continue;
							}
							for(int i=1;i<=count2;i++) {
								System.out.println("请输入第"+i+"个学生的ID");
								String strId2=sc.next();
								Student stu=mainBanji.searchStuById(strId2);
								if(stu==null) {
									System.out.println("该学生自动添加到主学生列表,请继续输入");
									System.out.println("请输入学生的名字");
									String strName2=sc.next();
									Student stu2=new Student(strId2,strName2);
									mainBanji.addStudent(stu2);
									twoBanji.addStudent(stu2);
								}
								else {
									twoBanji.addStudent(mainBanji.getStuList().get(i));
								}
							}
						}
						break;
					case 3:
						System.out.println("                 3--通过学号名称查询学生信息  ");
						System.out.println("请输入想查询学生所在的班级");
						String str3=sc.next();
						Banji b3=s.searchByName(str3);
						if(b3==null) {
							System.out.println("学校里没有该班级,请重新操作");
							break;
						}else {
							System.out.println("请输入想查询学生的学号");
							String strId3=sc.next();
							Student stu3=b3.searchStuById(strId3);
							if(stu3==null) {
								System.out.println("该班没有这个学生");
								break;
							}else {
								System.out.println(b3.searchStuById(strId3));
							}
						}
						break;
					case 4:
						System.out.println("                 4--输入班级的语文成绩 ");
						System.out.println("请输入想添加语文成绩的班级名称");
						String str4=sc.next();
						Banji b4=s.searchByName(str4);
						if(b4==null) {
							System.out.println("该学校没有这个班级,请重新输入");
						}else {
							for(Student s1:b4.getStuList()) {
								System.out.println(b4.searchStuById(s1.getStuNum()));
								System.out.println("请输入学生的语文成绩");
								float strScore4=sc.nextFloat();
								s1=new Student(s1.getStuNum(),s1.getStuName());
								b4.inputStuChinese(s1.getStuNum(), strScore4);
								
								
								}
						}
						break;
					case 5:
						System.out.println("                 5--输入班级的数学成绩 ");
						break;
					case 6:
						System.out.println("                 6--删除学生信息   ");
						break;
					case 7:
						System.out.println("                 7--显示所有学生信息");
						System.out.println("请输入查询班级的名称");
						String banji7=sc.next();
						Banji ban7=s.searchByName(banji7);
						if(ban7==null) {
							System.out.println("学校里没有这个班级");
						}else {
							ban7.displayAllStudent();
						}
						break;
					}
				}
				break;
			default:
				System.out.println("请输入指定的数字进行操作");
				break;
			}
		}

	}


public Banji(String classId,String classNum) {
		this.classId=classId;
		this.className=classNum;
		stuList=new ArrayList<Student>();
	}
	public String getClassId() {
		return classId;
	}
	public void setClassId(String classId) {
		this.classId = classId;
	}
	public String getClassNum() {
		return className;
	}
	public void setClassNum(String classNum) {
		this.className = classNum;
	}
	public List<Student> getStuList() {
		return stuList;
	}
	public void setStuList(List<Student> stuList) {
		this.stuList = stuList;
	}
	/**
	 * 添加学生到主班级的方法
	 * @param stu 要添加的学生信息
	 */
	public void addStudent(Student stu) {
		//避免重复添加
		boolean flag=false;
		for(Student s:stuList) {
			if(s.getStuNum().equals(stu)) {
				flag=true;
				break;
			}
		}
		if(flag) {
			System.out.println("你添加的学生已经存在请不要重复添加");
		}else {
			stuList.add(stu);
		}
	}
	/**
	 * 通过学号查询学生信息
	 * @param stuNum 要查询学生的学号
	 * @return 要查询的学生信息
	 */
	public Student searchStuById(String stuNum) {
		Student stu=null;
		for(Student s:stuList) {
			if(s.getStuNum().equals(stuNum)) {
				stu=s;
			}
		}
		return stu;
	}
	/**
	 * 输入班级学生的数学成绩
	 * @param stuNum 学号
	 * @param score 输入的成绩
	 */
	public void inputStuMath(String stuNum,float score) {
		Student stu=searchStuById(stuNum);
		if(stu==null) {
			System.out.println("没有找到该学生");
		}else {
		stu.setMath(score);
		}
	}
	/**
	 * 显示班级信息
	 */
	public String toString() {
		return "班级信息 [班级Id为:" + classId + ",班级名字为:" + className + "]";
	}
	/**
	 * 输入班级学生的语文成绩
	 * @param stuNum 学号
	 * @param score 输入的成绩
	 */
	public void inputStuChinese(String stuNum,float score) {
		
		Student stu=searchStuById(stuNum);
//		System.out.println(stu);
//		if(stu==null) {
//			System.out.println("没有找到该学生");
//		}else {
		stu.setChinese(score);
		System.out.println("添加成功");
//		}
	}
	/**
	 * 删除学生信息
	 * @param stuNum 需要删除的学生的学号
	 */
	public void deleteStudent(String stuNum) {
		Student stu=searchStuById(stuNum);
		if(stu==null) {
			System.out.println("没有找到该学生");
		}else {
		stuList.remove(stu);
		System.out.println("删除成功");
		}
	}
	/**
	 * 显示所有学生信息
	 */
	public void displayAllStudent() {
		for(Student s:stuList) {
			System.out.println(s);
		}
	}

}


正在回答 回答被采纳积分+1

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

1回答
好帮手慕小班 2019-12-08 10:40:36

同学你好,同学是想说添加学生对象后,展示不出集合中的学生信息吗?

        如果是,建议同学将剩余代码也贴出,否则老师无法根据同学的代码复制运行,定位问题,另外查看同学贴出的代码,在addStudent方法中,注意既然使用学号来判断,就需要equals方法的两端都是学号,例如:

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

如果同学不是这个意思还麻烦同学具体描述一下自己的问题及运行时的截图。

如果我的回答解决了你的疑惑,请采纳!祝学习愉快!

  • 提问者 weixin_慕瓜9083905 #1
    已经把代码全贴出了,具体问题是实现添加信息后,语文成绩显示不了 /** * 输入班级学生的语文成绩 * @param stuNum 学号 * @param score 输入的成绩 */ public void inputStuChinese(String stuNum,float score) { Student stu=searchStuById(stuNum); System.out.println(stu); if(stu==null) { System.out.println("没有找到该学生"); }else { stu.setChinese(score); System.out.println("添加成功"); } } /** * 显示所有学生信息 */ public void displayAllStudent() { for(Student s:stuList) { System.out.println(s); } } /** * 学生信息 包括学号,姓名,数学成绩,语文成绩 */ public String toString() { if(math==0.0f&&chinese==0.0f) { return "学生信息:学号为:" + stuNum + ", 姓名为:" + stuName; } else if(chinese==0.0f){ return "学生信息:学号为:" + stuNum + ", 姓名为:" + stuName+ ", 数学成绩为:" + math; } else if(math==0.0f) { return "学生信息:学号为:" + stuNum + ", 姓名为:" + stuName; } return "学生信息:学号为:" + stuNum + ", 姓名为:" + stuName + ", 数学成绩为:" + math + ", 语文成绩为:" + chinese ; }
    2019-12-09 10:53:33
  • 同学你好,建议同学将剩下的Student类和School类中的代码内容贴出,便于老师运行同学的代码,定位问题,现在没有同学并没有将School类与Student类贴出,老师不能完整的运行同学的代码,所以无法定位问题。另外建议同学不要将代码贴在回复中,会失去代码格式,可以在"我要回答"中将代码贴出。继续加油 祝:学习愉快~
    2019-12-09 15:17:17
问题已解决,确定采纳
还有疑问,暂不采纳

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

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

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

在线咨询

领取优惠

免费试听

领取大纲

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