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