添加学生信息到普通班级的时候如果添加学生到两个及以上班级会覆盖
老师您好,请问我这个代码哪里有问题,应该如何解决新添加的班级学生覆盖了前一个新添加的班级学生这个问题?
相关代码:
public void test() {
Scanner sc = new Scanner(System.in);
Test test = new Test();
School school = new School();
Clas cla = new Clas("主学生列表");
school.addClass(cla);
Clas cla1 = null;
Student stu = null;
while (true) {
test.mainMenu();
System.out.println("请输入对应数字进行列表管理");
int s1 = 0, s2 = 0, s3 = 0;
s1 = sc.nextInt();
switch (s1) {
// 2-添加学生信息到普通班级
case 2:
System.out.println("添加学生信息到普通班级");
System.out.println("请输入要添加的班级名称");
String classname = sc.next();
cla1 = school.searchClass(classname);
if (cla1 == null) {
System.out.println("不存在班级");
} else {
System.out.println("请输入要添加的学生个数:");
int num = sc.nextInt();
for (int i = 1; i <= num; i++) {
System.out.println("请输入第" + i + "个学生信息");
System.out.println("请输入要添加的学生id:");
String stuid = sc.next();
stu = cla.searchStudent(stuid);// 通过学生id在主列表查找学生信息
if (stu == null) {
System.out.println("未找到学生信息");
break;
} else {
cla1.addStudent(stu);
}
}
}
System.out.println("主学生列表:");
cla.displayAllstu();
System.out.println(classname + "班级列表:");
cla1.displayAllstu();
break;
相关代码:
// 添加学生信息到班级
public void addStudent(Student stu) {
boolean flag = false;
for (Student student : stuList) {
if (stu.equals(student)) {
flag = true;
break;
}
}
if (flag) {
System.out.println("学生信息已存在,请勿重复输入!");
} else {
stuList.add(stu);
System.out.println("添加成功!");
}
}
相关代码:
// 通过学号查找学生信息
public Student searchStudent(String id) {
for (Student stu : stuList) {
if (stu.getId().equals(id)) {
return stu;
}
}
return null;
}
20
收起
正在回答
3回答
同学你好,同学是指添加学生到普通班级成功时最后输出该班级所有学生吗,如下
如果是,这里是需要创建一个list来存储班级学生的,最后输入完学生后遍历该list
祝学习愉快~
相似问题
登录后可查看更多问答,登录/注册
恭喜解决一个难题,获得1积分~
来为老师/同学的回答评分吧
0 星