老师,麻烦看看我这哪里出错了啊
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
- 参与学习 人
- 提交作业 9410 份
- 解答问题 16556 个
综合就业常年第一,编程排行常年霸榜,无需脱产即可学习,北上广深月薪过万 无论你是未就业的学生还是想转行的在职人员,不需要基础,只要你有梦想,想高薪
了解课程
恭喜解决一个难题,获得1积分~
来为老师/同学的回答评分吧
0 星