ueiwui 2015-12-22 02:27 采纳率: 50%
浏览 3046
已采纳

java学生信息管理系统在删除信息的时候遇到了问题,代码如下,求大神。

这是代码

主类

 public class Main {

    public static void main(String[] args) throws FileNotFoundException {
        int i = 0;
        Manage m=new Manage();
        Scanner sc=new Scanner(System.in);
        ArrayList List=new ArrayList<Student>();
        while(true){System.out.println("----------学生信息管理系统---------");
        System.out.println("-----1.导入学生成绩-----");
        System.out.println("-----2.查看学生信息-----");
        System.out.println("-----3.删除学生");

        System.out.println("请输入你的选项:");
        i=sc.nextInt();
        switch(i){
        case 1: m.loadFile(List);break;
        case 2: m.showInfornation(List); break;
        case 3: m.deleteS(List);break;
        }
        }

    }

}

#这是学生类

 public class Student {
    int number;
    String name;
    int yuwen;
    int shuxue;
    int yingyu;
    public String getName() {
        return name;
    }
    public int getNumber() {
        return number;
    }
    public void setNumber(int number) {
        this.number = number;
    }
    public void setName(String name) {
        this.name = name;
    }
    public int getYuwen() {
        return yuwen;
    }
    public void setYuwen(int yuwen) {
        this.yuwen = yuwen;
    }
    public int getShuxue() {
        return shuxue;
    }
    public void setShuxue(int shuxue) {
        this.shuxue = shuxue;
    }
    public int getYingyu() {
        return yingyu;
    }
    public void setYingyu(int yingyu) {
        this.yingyu = yingyu;
    }


}

这是管理类

 public class Manage {
    File f1=new File("F:\\ceshi\\doc11.txt");


    public void loadFile(ArrayList list) throws FileNotFoundException{
        Scanner sc=new Scanner(f1);
        String  nu=sc.next();
        String name1=sc.next();
        String yuwen1=sc.next();
        String shuxue1=sc.next();
        String  yingyu1=sc.next();
        System.out.println(nu+"    "+name1+"   "+yuwen1+"    "+shuxue1+"    "+yingyu1);
        while(sc.hasNext()){
        Student aa=new Student();

        aa.setNumber(sc.nextInt());
        aa.setName(sc.next());
        aa.setYuwen(sc.nextInt());
        aa.setShuxue(sc.nextInt());
        aa.setYingyu(sc.nextInt());
        list.add(aa);
        System.out.println(aa.getNumber()+"    "+aa.getName()+"    "+aa.getYuwen()+"   "+aa.getShuxue()+"   "+aa.getYingyu());


    }

    }
    public void showInfornation(ArrayList list){
        Student[] st=new Student[100];
        for(int i=0;i<list.size();i++){
            st[i]=(Student)list.get(i);
            System.out.println(st[i].getNumber()+"   "+st[i].getName()+"   "+st[i].getYuwen()+"  "+st[i].getShuxue()+"   "+st[i].getYingyu());
        }
    }
    public void deleteS(ArrayList list){
            int n;
            Student []arr=new Student[list.size()];
            Scanner in=new Scanner(System.in);
            int x;

            System.out.println("请输入要删除的学生编号");
            x=in.nextInt();
            for(n=0;n<list.size();n++)
            {   arr[n]=(Student) list.get(n);


            }


             for(n=0;n<list.size();n++){
                 if(arr[n].getNumber()==x);
                 {
                     System.out.println("xh="+arr[n].getNumber());
                     list.remove(n);
                     break;
                 }

             }




    }




    }

其中所需要的文件格式如下:

学号 姓名 语文 数学 英语
01 张三 44 55 55
02 李四 33 33 33
03 王五 22 2 2

我想说一下我目前的问题:

1.ArrayList这个集合如果我把它当做函数的参数传到函数内部,函数内部的ArrayList形参变化了,那么主类中的ArrayList会变化吗?

2.操作顺序:导入文件,删除学号2,查看文件,会发现把学号为1的删除了。不知道问什么,想了好久也不知道我这么写有什么错。

希望好心人回答一下,谢谢大家了

  • 写回答

4条回答 默认 最新

  • 月苍 2015-12-22 02:47
    关注
     for(n=0;n<list.size();n++){
                     if(arr[n].getNumber()==x);
                     {
                         System.out.println("xh="+arr[n].getNumber());
                         list.remove(n);
                         break;
                     }
    
                 }
    
    
    
    
    

    把你if后面的分号去掉

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

报告相同问题?

悬赏问题

  • ¥15 在获取boss直聘的聊天的时候只能获取到前40条聊天数据
  • ¥20 关于URL获取的参数,无法执行二选一查询
  • ¥15 液位控制,当液位超过高限时常开触点59闭合,直到液位低于低限时,断开
  • ¥15 marlin编译错误,如何解决?
  • ¥15 有偿四位数,节约算法和扫描算法
  • ¥15 VUE项目怎么运行,系统打不开
  • ¥50 pointpillars等目标检测算法怎么融合注意力机制
  • ¥20 Vs code Mac系统 PHP Debug调试环境配置
  • ¥60 大一项目课,微信小程序
  • ¥15 求视频摘要youtube和ovp数据集