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

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
    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;
    }

    点赞 评论
  • redstarofsleep
    redstarofsleep 2011-08-11 11:05

    这一堆代码想要问什么?

    点赞 评论
  • u011108916
    wks1986 2011-08-11 11:26

    嗯。有什么问题呢?

    点赞 评论
  • iteye_6273
    iteye_6273 2011-08-11 13:24

    [quote]这一堆代码想要问什么?[/quote]
    同问!

    点赞 评论
  • li28544071
    li28544071 2011-08-11 14:15

    如果记得不错的话,这段代码是我在学校学习C语言,老师留给我们的编程C程序的作业。

    [quote="王宝乐"][color=red]Students s=getById(stuid); //此行中getById方法报错,怎么回事?[/color][/quote]
    你这是从什么地方COPY的代码,根据你上下代码判断,你这个应该是编译有问题,
    [code="java"]
    //参数类型不正确,getById()的参数是String类型的
    int stuid=input.nextInt();// => String stuid = input.next();
    Students s = getById(stuid);
    [/code]

    [quote]
    [code="java"]
    for(Students s:list){//此行s:list 什么意思?
    sun+=s.getScore();
    }[/code]
    [/quote]

    点赞 评论

相关推荐