稻草人_Bain 2011-08-11 11:04
浏览 284
已采纳

ArrayList集合中的问题

package com.StuInfo;

import java.util.*;
public class Test {
static ArrayList list=new ArrayList();
static Scanner input=new Scanner(System.in);

public static void main(String[] args) {
manageLogin();
}

// 系统菜单

public static void manageLogin() {

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("请输入菜单项:");
int num=input.nextInt();
switch(num){
case 1: addStu();break;
case 2:checkById();break;
case 3:update(); break;
case 4:delete(); break;
case 5: avg();break;
case 6:exit(); break;
}
}       

//录入学员信息

public static void addStu(){
  String answer="";
  do{
      answer="y";
    Students stu=new Students();
      System.out.print("请输入学生的学号: ");
      String stuid=input.next();

      System.out.println("请输入学生的姓名:");
      String stuname=input.next();

      System.out.println("请输入学生的年龄:");
      int age=input.nextInt();

      System.out.println("请输入学生的成绩");
      int score=input.nextInt();

      if(list.isEmpty()){
           stu.setId(stuid);
           stu.setName(stuname);
           stu.setAge(age);
           stu.setScore(score);

          list.add(stu);
           System.out.println("录入成功!");
           manageLogin();
        }else if(getById(stuid)==null){                  
           stu.setId(stuid);
           stu.setName(stuname);
           stu.setAge(age);
           stu.setScore(score);

           list.add(stu);
           System.out.println("录入成功!");
           manageLogin();
        }else{
               System.out.println("此学生已经存在!");
               manageLogin();
            }
      System.out.println("你是否要继续选择操作?y/n");
      answer=input.next();
   }while(answer.equals("y"));



}

//根据学号查询学员信息

public static void checkById(){     
    Students stu=new Students();
      System.out.print("请输入您要查询学生的学号:");
      String stuid=input.next();
      Students s=getById(stuid);
      if(list.isEmpty()){
          System.out.println("该学生不存在");
          manageLogin();
      }else if(s!=null){ 
          Students ww=getById(stuid);
          System.out.println("该学员信息为:\n");
          System.out.println("学号:"+ww.getAge());
          System.out.println("姓名:"+ww.getName());
          System.out.println("年龄:"+ww.getAge());
          System.out.println("成绩:"+ww.getScore());
          manageLogin();
      } 
}


//修改学员信息
public static void update(){
    System.out.print("请输入您要修改学生的学号:");
      int stuid=input.nextInt();
      Students s=getById(stuid);               //此行中getById方法报错,怎么回事?
      if(list.isEmpty()){
          System.out.println("无学生信息!");
      }else if(s!=null){
          System.out.println("改后姓名:");
           String name=input.next();
           System.out.println("改后年龄:");
           int age=input.nextInt();
           System.out.println("改后成绩:");
           int score=input.nextInt();

           s.setName(name);
           s.setAge(age);
           s.setScore(score);
           System.out.println("修改成功!");
           manageLogin();


        }else{
           System.out.println("该学生不存在!");
           manageLogin();
        }
   }

//根据学号删除学员信息
public static void delete() {
    System.out.println("请输入所要删除的学号:");
    String stuid=input.next();
    Students s=getById(stuid);

    if(list.isEmpty()){
       System.out.println("尚未存入信息!");
       manageLogin();
    }else if(s!=null){
       list.remove(s);
       System.out.println("删除成功");
       manageLogin();
    }else{
       System.out.println("该学生不存在!");
       manageLogin();
    }
}
//统计学员平均考试成绩
public static void avg(){
    System.out.println("平均成绩为:");
    int num=list.size();
    int sun=0;
    if(list.isEmpty()){
        System.out.println("未录入学生的信息!");
    }else{
        for(Students s:list){                     //此行s:list 什么意思?
            sun+=s.getScore();
        }
        System.out.println(sun/num);
        manageLogin();
    }
}
//退出系统

public static void exit(){
    System.out.println("你确定要退出系统吗?"+"y/n");
    String answer=input.next();
    if(answer.equalsIgnoreCase("y")){
        System.exit(0);
    }else{
        manageLogin();
    }
}
public static Students getById(String id){
    for(Students s:list){                   
        if(s.getId().equals(id)){
            return s;
        }
    }
    return null;
}

}

  • 写回答

5条回答 默认 最新

  • xiewanxw 2011-08-11 11:14
    关注

    int stuid = input.nextInt();
    Students s = getById(stuid); //此行中getById方法报错,怎么回事?

    //这个方法参数是Sting类型,你传的参数是int类型
    public static Students getById(String id)
    {
    for (Students s : list)
    {
    if (s.getId().equals(id))
    {
    return s;
    }
    }
    return null;
    }

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(4条)

报告相同问题?

悬赏问题

  • ¥50 树莓派安卓APK系统签名
  • ¥15 maple软件,用solve求反函数出现rootof,怎么办?
  • ¥65 汇编语言除法溢出问题
  • ¥15 Visual Studio问题
  • ¥20 求一个html代码,有偿
  • ¥100 关于使用MATLAB中copularnd函数的问题
  • ¥20 在虚拟机的pycharm上
  • ¥15 jupyterthemes 设置完毕后没有效果
  • ¥15 matlab图像高斯低通滤波
  • ¥15 针对曲面部件的制孔路径规划,大家有什么思路吗