老师,麻烦看看我这哪里出错了啊

老师,麻烦看看我这哪里出错了啊

package com.imooc.school;


import java.util.ArrayList;

import java.util.List;

import java.util.Scanner;


public class Test {

/**

* 主菜单

*/

public void zcd() {

System.out.println("-----------------------------");

System.out.println("------主菜单------");

System.out.println("1-班级管理");

System.out.println("2-学校管理");

System.out.println("0-退出");

System.out.println("-----------------------------");

}


/**

* 学校管理目录

*/

public void xxgl() {

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

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 static void main(String[] args) {

Test t = new Test();

List<Student> zhu = new ArrayList<>();

Scanner sc = new Scanner(System.in);

Student st;

School sch = new School();

BanJi bjzy = new BanJi();

bjzy.setBid("000");

bjzy.setBname("主班级");

sch.tjbj(bjzy);

BanJi bj =new BanJi();

int sz = 0;

String bname, sid, sname;

while (true) {

t.zcd();

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

sz = sc.nextInt();

if (sz == 0) {

break;

}

switch (sz) {

case 1:// 班级管理

while (true) {

t.bjgl();

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

sz = sc.nextInt();

if (sz == 9) {

break;

}

switch (sz) {

case 1:// 添加学生信息到主学生列表

System.out.println("请输入需要添加学生信息的个数:");

sz = sc.nextInt();

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

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

sid = sc.next();

st = bjzy.idcx(sid);

if (st == null) {

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

sname = sc.next();

st = new Student(sid, sname);

bjzy.tjxs(st);

} else {

System.out.println("当前学生在主学生列表中已存在!!");

}

}


break;

case 2:// 添加学生信息到普通班级

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

bname = sc.next();

bj = sch.mccz(bname);

if (bj == null) {

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

} else {

System.out.println("请输入需要添加学生信息的个数:");

sz = sc.nextInt();

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

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

sname = sc.next();

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

sid = sc.next();

st=bjzy.idcx(sid);

if(st==null) {

st = new Student(sid, sname);

bjzy.tjxs(st);

}

st = bj.idcx(sid);

if (st == null) {

st = new Student(sid, sname);

bj.tjxs(st);

}else {

System.out.println("该学生在班级中已存在!!");

}


}

}

break;

case 3://通过学号查询学生信息

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

bname=sc.next();

bj=sch.mccz(bname);

if(bj==null) {

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

}else {

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

sid=sc.next();

st=bj.idcx(sid);

if(st==null) {

System.out.println("该学生信息不存在!!");

}else {

System.out.println(st);

}

}

break;

case 4://输入班级的语文成绩

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

bname=sc.next();

bj=sch.mccz(bname);

if(bj==null) {

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

}else {

List<Student> list=bj.getStulist();

for(Student stu:list) {

System.out.println("请输入"+stu.getSname()+"的语文成绩:");

float ywcj=sc.nextFloat();

stu.setYwcj(ywcj);

}

}

break;

case 5://输入班级的数学成绩

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

bname=sc.next();

bj=sch.mccz(bname);

if(bj==null) {

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

}else {

List<Student> list=bj.getStulist();

for(Student stu:list) {

System.out.println("请输入"+stu.getSname()+"的数学成绩:");

float sxcj=sc.nextFloat();

stu.setSxcj(sxcj);

}

}

break;

case 6://删除学生信息

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

bname=sc.next();

bj=sch.mccz(bname);

if(bj==null) {

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

}else {

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

sid=sc.next();

st=bj.idcx(sid);

if(st==null) {

System.out.println("该学生信息不存在!!");

}else {

bj.scxsxx(sid);

}

}

break;

case 7:// 显示所有学生信息

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

bname = sc.next();

bj = sch.mccz(bname);

if (bj == null) {

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

} else {

bj.scqbxx();

}

break;

}

}

break;

case 2:// 学校管理

while (true) {

t.xxgl();

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

sz = sc.nextInt();

if (sz == 9) {

break;

}

switch (sz) {

case 1:// 创建班级

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

bname = sc.next();

bj = sch.mccz(bname);

if (bj != null) {

System.out.println("该班级已存在请重新输入");

} else {

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

String bid = sc.next();

bj = new BanJi(bid, bname);

sch.tjbj(bj);

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

}

break;

case 2:// 删除班级

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

bname = sc.next();

bj = sch.mccz(bname);

if (bj != null) {

System.out.println("该班级已存在请重新输入");

} else {

sch.scbj(bj);

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

}

break;

case 3:// 通过班级名称查询班级信息

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

bname = sc.next();

bj = sch.mccz(bname);

if (bj != null) {

System.out.println(bj);

} else {

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

}

break;

case 4:// 对各班的语文成绩按平均分从大到小排序

sch.pxyw();

break;

case 5:// 对各班的数学成绩按平均分从大到小排序

sch.pxsx();

break;

case 6:// 显示所有班级名称

sch.xsbjmc();

break;

default:

System.out.println("输入的数字无效,只能输入1-6和9的数字");

}

}

break;

default:

System.out.println("请输入0-2的数字!!");

}

}


}

}




package com.imooc.school;

/**

 * 学生类

 * @author Administrator

 *

 */

public class Student {

private String sid,sname;

private float sxcj,ywcj;

public Student() {

}

public Student(String sid, String sname) {

super();

this.setSid(sid);

this.setSname(sname);

}

public String getSid() {

return sid;

}

public void setSid(String sid) {

this.sid = sid;

}

public String getSname() {

return sname;

}

public void setSname(String sname) {

this.sname = sname;

}

public float getSxcj() {

return sxcj;

}

public void setSxcj(float sxcj) {

this.sxcj = sxcj;

}

public float getYwcj() {

return ywcj;

}

public void setYwcj(float ywcj) {

this.ywcj = ywcj;

}

@Override

public String toString() {

return "学生编号:" + sid + "学生名称:" + sname + "数学成绩:" + sxcj + "语文成绩:" + ywcj;

}

@Override

public int hashCode() {

final int prime = 31;

int result = 1;

result = prime * result + ((sid == null) ? 0 : sid.hashCode());

result = prime * result + ((sname == null) ? 0 : sname.hashCode());

result = prime * result + Float.floatToIntBits(sxcj);

result = prime * result + Float.floatToIntBits(ywcj);

return result;

}

@Override

public boolean equals(Object obj) {

if(this==obj) {

return true;

}

if(obj.getClass()==Student.class) {

Student st=(Student)obj;

return st.getSid().equals(this.getSid())&&st.getSname().equals(this.getSname())&&st.getSxcj()==this.getSxcj()&&st.getYwcj()==this.getYwcj();

}

return false;

}

}




package com.imooc.school;


import java.util.ArrayList;

import java.util.Collection;

import java.util.Collections;

import java.util.HashMap;

import java.util.List;

import java.util.Map;

import java.util.Scanner;

/**

 * 学校类

 * @author Administrator

 *

 */

public class School {

private Map<String,BanJi> bmap;

public School() {

bmap=new HashMap<>();

}

public School(Map<String, BanJi> smap) {

super();

this.bmap = smap;

}


public Map<String, BanJi> getBmap() {

return bmap;

}

public void setBmap(Map<String, BanJi> smap) {

this.bmap = smap;

}

/**

* 添加班级的方法

* @param bj 班级对象

*/

public void tjbj(BanJi bj) {

bmap.put(bj.getBid(), bj);

}

/**

* 删除班级的方法

* @param bj

*/

public void  scbj(BanJi bj) {

BanJi b=mccz(bj.getBname());

if(b==null) {

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

}else {

bmap.remove(b.getBid());

}

}

/**

* 通过班级名称查询班级

* @param bname

* @return

*/

public BanJi mccz(String bname) {

BanJi b=null;

Collection<BanJi> c=bmap.values();

for(BanJi bj:c) {

if(bj.getBname().equals(bname)) {

b=bj;

}

}

return b;

}

/**

* 对各班的数学平均分进行从大到小的排序

*/

public void pxsx() {

Collection<BanJi> c=bmap.values();

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

float he=0;

int i=0;

for(BanJi bj:c) {

List<Student> stulist=bj.getStulist();

he=0;

for(Student stu:stulist) {

he=+stu.getSxcj();

i++;

}

list.add(he/i);

}

Collections.sort(list, new PaiXu());

System.out.println("各班数学的平均分为:");

for(float pj:list) {

System.out.print(pj+"  ");

}

System.out.println();

}

/**

* 对各班的数学平均分进行从大到小的排序

*/

public void pxyw() {

Collection<BanJi> c=bmap.values();

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

float he=0;

int i=0;

for(BanJi bj:c) {

List<Student> stulist=bj.getStulist();

he=0;

for(Student stu:stulist) {

he=+stu.getYwcj();

i++;

}

list.add(he/i);

}

Collections.sort(list, new PaiXu());

System.out.println("各班语文的平均分为:");

for(float pj:list) {

System.out.print(pj+"  ");

}

System.out.println();

}

/**

* 显示所有班级的名称

*/

public void xsbjmc() {

Collection<BanJi> c=bmap.values();

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

for(BanJi bj:c) {

System.out.println(bj.getBname());

}

}

}




package com.imooc.school;


import java.util.ArrayList;

import java.util.List;

/**

 * 班级类

 * @author Administrator

 *

 */

public class BanJi {

private String bid,bname;

private List<Student> slist;

public BanJi() {

slist = new ArrayList<>();

}

public BanJi(String bid, String bname) {

super();

this.setBid(bid);

this.setBname(bname);

}

public BanJi(String bid, String bname, List<Student> stulist) {

super();

this.setBid(bid);

this.setBname(bname);

this.setStulist(stulist);

}

public String getBid() {

return bid;

}

public void setBid(String bid) {

this.bid = bid;

}

public String getBname() {

return bname;

}

public void setBname(String bname) {

this.bname = bname;

}

public List<Student> getStulist() {

return slist;

}

public void setStulist(List<Student> stulist) {

this.slist = stulist;

}

@Override

public String toString() {

return "班级编号:" + bid + "\t班级名称:" + bname;

}

/**

* 添加学生进入班级的方法

* @param stu 学生对象

*/

public void tjxs(Student stu) {

slist.add(stu);

}

/**

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

* @param sid 学生编号

* @return

*/

public Student idcx(String sid) {

Student s=null;

for(Student stu:slist) {

if(stu.getSid()==sid) {

s=stu;

break;

}

}

return s;

}

/**

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

* @param sid 学生编号

* @param ywcj 语文成绩

*/

public void srywcj(String sid,float ywcj) {

Student s=idcx(sid);

if(s==null) {

System.out.println("学生信息不存在!!");

}else {

s.setYwcj(ywcj);

}

}

/**

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

* @param sid 学生编号

* @param sxcj 数学成绩

*/

public void srsxcj(String sid,float sxcj) {

Student s=idcx(sid);

if(s==null) {

System.out.println("学生信息不存在!!");

}else {

s.setYwcj(sxcj);

}

}

/**

* 删除指定的学生信息

* @param sid 学生编号

*/

public void scxsxx(String sid) {

Student s=idcx(sid);

if(s==null) {

System.out.println("学生信息不存在!!");

}else {

slist.remove(s);

}

}

/**

* 显示所有的学生信息

*/

public void scqbxx() {

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

for(Student s:slist) {

System.out.println(s);

}

}

}


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

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

1回答
好帮手慕阿园 2021-04-27 16:43:54

同学你好,同学的代码没有粘贴完整哦,还缺少PaiXu()类,建议同学把全部代码进行反馈,便于老师测试

另外同学可以描述下代码是哪里出错了呢,便于老师定位问题

祝学习愉快~

问题已解决,确定采纳
还有疑问,暂不采纳

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

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

0 星
请稍等 ...
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号

在线咨询

领取优惠

免费试听

领取大纲

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