关于添加学生的问题
首先代码添加学生的代码为:
public void addStudent(Student stu) {
//排除重复添加情况
//判断该学生是否存在
boolean flag=false;
for(Student s:stuList) {
if(s.getStuNum().equals(stu.getStuNum())) { //对象进行比较,如果已存在
flag=true;
break; //返回true,无需添加
}
}
if(flag) {
System.out.println("学生信息已存在,添加失败!");
}else {
stuList.add(stu);
System.out.println("添加成功");
}
}//添加学生方法结束!
在测试中如果出现重复学生信息,直接提示添加失败,不能对此学生信息进行重新录取,这种情况怎么处理啊,老师。目标测试是结果如下:
***************************
**主菜单**
1--班级管理
2--学校管理
0--退出
***************************
请输入对应数字进行列表管理
1
*******************************************************
**班级管理**
1--添加学生信息到主学生列表
2--添加学生信息到普通班级
3--通过学号查询学生信息
4--输入班级语文成绩
5--输入班级数学成绩
6--删除学生信息
6--显示所有学生信息
9--返回上级菜单
*******************************************************
请输入对应数字进行班级列表管理
1
添加学生信息到主学生列表
请输入要添加的学生信息个数:
3
请输入第1个学生的信息
请输入学生的id:
01
请输入学生的姓名:
张三
添加成功
请输入第2个学生的信息
请输入学生的id:
01
请输入学生的姓名:
李四
学生信息已存在,添加失败!
请输入第3个学生的信息
请输入学生的id:
03
请输入学生的姓名:
王五
添加成功
学生信息: [学号:01, 姓名:张三]
学生信息: [学号:03, 姓名:王五]
也就说怎么才可以在添加失败的时候,重复录用第二个学生信息呢?而不是添加第三个信息:
测试类代码:
public void test() {
//实例化测试类
TestDemo td=new TestDemo();
Scanner sc=new Scanner(System.in);
//定义3个变量,用来接收菜单数据
int input=0,input1=0,input2=0;
//创建学校对象并实例化
School sch=new School();
//创建班级对象(主学生列表)并实例化
Banji mainBanJi=new Banji("主学生列表:");
//将班级对象添加到学校中,后期在case中再添加学生信息
sch.addBanji(mainBanJi);
//声明其他班级对象信息,后期用来接收其他班级信息
Banji otherBanJi=null;
//进行循环主菜单
while(true) {
td.mainMenu();
System.out.println("请输入对应数字进行列表管理");
//从键盘接收数据,input为控制主菜单列表管理
try {
input=sc.nextInt();
if(input==0) {
break;
}
} catch (InputMismatchException e) {
System.out.println("输入信息有误,只可输入整数,请重新输入!");
sc.next();//接收错误数据
continue;//重新执行本次循环
}
switch(input) {
case 1://班级管理
while(true) {
td.banjiMenu();
System.out.println("请输入对应数字进行班级列表管理");
try {
input1=sc.nextInt();
} catch (InputMismatchException e) {
System.out.println("输入信息有误,只可输入整数,请重新输入!");
sc.next();//接收错误数据
continue;//重新执行本次循环
}
if(input1==9) {
break;
}
switch(input1) {
case 1:
System.out.println("添加学生信息到主学生列表");
System.out.println("请输入要添加的学生信息个数:");
int count=0;
try {
count = sc.nextInt();
} catch (InputMismatchException e) {
System.out.println("输入信息有误,只可输入整数,请重新输入!");
sc.next();//接收错误数据
continue;
}
for(int i=1;i<=count;i++) {
System.out.println("请输入第"+i+"个学生的信息");
System.out.println("请输入学生的id:");
String strNum=sc.next();
System.out.println("请输入学生的姓名:");
String strName=sc.next();
//创建学生对象
Student stu=new Student(strNum,strName);
//把学生信息添加到主学生列表
mainBanJi.addStudent(stu);
}
mainBanJi.displayAllStudent();
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;
case 7:
System.out.println("显示所有学生信息");
break;
default :
System.out.println("输入有误,没有对应的操作");
}
}
break;
case 2://学校管理
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("向学校中添加班级");
System.out.println("请输入班级编号:");
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;
default :
System.out.println("输入有误,没有对应的操作");
}
}
}//方法结束
public static void main(String[] args) {
// TODO Auto-generated method stub
TestDemo t=new TestDemo();
// t.testBanji();
// t.testSchool();
t.test();
}
正在回答 回答被采纳积分+1
- 参与学习 人
- 提交作业 9393 份
- 解答问题 16556 个
综合就业常年第一,编程排行常年霸榜,无需脱产即可学习,北上广深月薪过万 无论你是未就业的学生还是想转行的在职人员,不需要基础,只要你有梦想,想高薪
了解课程
恭喜解决一个难题,获得1积分~
来为老师/同学的回答评分吧
0 星