关于添加学生的问题

关于添加学生的问题

首先代码添加学生的代码为:

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

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

1回答
好帮手慕阿慧 2021-02-06 17:09:46

同学你好,添加学生方法可以返回flag值,如果flag为true,表示添加失败。如果flag为false,表示添加学生成功。在test()方法中,如果添加学生方法的返回值为true,则i--,让用户重新输入。

参考代码如下:

http://img1.sycdn.imooc.com//climg/601e5cb3099bdf8806960389.jpg

http://img1.sycdn.imooc.com//climg/601e5cd6095fa80204980359.jpg

祝学习愉快~

  • 提问者 rock221 #1
    如果更改为Boolean 返回方法就不符合题了啊
    2021-02-06 20:41:52
  • 好帮手慕阿慧 回复 提问者 rock221 #2

    同学你好,题目中要求:能够完成将学生添加到班级的方法定义,完成该功能即可。将返回值更改为boolean也符合题目。

    祝学习愉快~

    2021-02-07 09:37:35
问题已解决,确定采纳
还有疑问,暂不采纳

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

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

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

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

帮助反馈 APP下载

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

公众号

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

在线咨询

领取优惠

免费试听

领取大纲

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