coodnood 2022-01-19 18:48 采纳率: 100%
浏览 35
已结题

在java,ArrayList的学生管理系统中遇到了点问题请各忙看一下代码问题所在

首先这是类

package MangerSystem;

public class Students {
    private String code;
    private String name;
    private String age;
    private String address;

    public Students(){}

    public Students(String code,String name,String age,String address){
        this.code = code;
        this.name = name;
        this.age  = age;
        this.address = address;
    }
    public void setCode(String code){
        this.code =code;
    } public void setName(String name){
        this.name =name;
    } public void setAge(String age){
        this.age =age;
    } public void setAddress(String address){
        this.address =address;
    }

    public String getCode(){
        return code;
    }public String getName(){
        return name;
    }public String getAge(){
        return age;
    }public String getAddress(){
        return address;
    }

}

然后是主入口,我每次用完添加方法时好像没有添加到主入口那里,然后导致调用查看方法时没有数据?

package MangerSystem;

import java.util.ArrayList;
import java.util.Scanner;

public class Manger {
    public static void main(String[] args) {
        while (true){

        Scanner sc = new Scanner(System.in);
        ArrayList<Students> array = new ArrayList<Students>();
        System.out.println("------学生管理系统------");
        System.out.println("请输入数字选择你要的选项");
        System.out.println("1.add studens");
        System.out.println("2.remove studens");
        System.out.println("3.check all studens");
        System.out.println("4.replace studens");
        System.out.println("5.stop");
        String a = sc.nextLine();
        switch(a){
            case "1":
                System.out.println("add studen");
                add(array);
                break;
            case "2":
                System.out.println("remove studen");
                break;

            case "3":
                System.out.println("check all studen");
                checkAll(array);
                break;

            case "4":
                System.out.println("replace studen");
                break;

            case "5":
                System.out.println("thanks for your useing");
                //return;
                System.exit(0);
        }
        }

    }

    public static void add(ArrayList<Students> array){
        Scanner sc = new Scanner(System.in);

        System.out.println("please enter the code");
        String code = sc.nextLine();

        System.out.println("please enter the name");
        String name = sc.nextLine();

        System.out.println("please enter the age");
        String age = sc.nextLine();

        System.out.println("please enter the address");
        String address = sc.nextLine();

        Students s = new Students();
        s.setCode(code);
        s.setName(name);
        s.setAge(age);
        s.setAddress(address);
        array.add(s);
        System.out.println("added successfully");
    }

    public static void checkAll(ArrayList<Students> array){
        System.out.println("学号  名字  年龄  地址");
        for (int a = 0;a<array.size();a++){
        Students s = array.get(a);
        System.out.println(s.getCode()+" "+s.getName()+"  "+s.getAge()+"old "+s.getAddress());
        }
    }
}

想了很久,还是没能解决。
感谢。

  • 写回答

1条回答 默认 最新

  • IT不码农 2022-01-19 19:09
    关注

    把11行的 放到 while的上面

            ArrayList<Students> array = new ArrayList<Students>();
    while(true){
     .....
    }
    

    要不然每次循环就新生array,新的array里不包含之前的添加的数据,所有你看不到添加的数据

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录

报告相同问题?

问题事件

  • 系统已结题 1月27日
  • 已采纳回答 1月19日
  • 创建了问题 1月19日

悬赏问题

  • ¥15 装 pytorch 的时候出了好多问题,遇到这种情况怎么处理?
  • ¥20 IOS游览器某宝手机网页版自动立即购买JavaScript脚本
  • ¥15 手机接入宽带网线,如何释放宽带全部速度
  • ¥30 关于#r语言#的问题:如何对R语言中mfgarch包中构建的garch-midas模型进行样本内长期波动率预测和样本外长期波动率预测
  • ¥15 ETLCloud 处理json多层级问题
  • ¥15 matlab中使用gurobi时报错
  • ¥15 这个主板怎么能扩出一两个sata口
  • ¥15 不是,这到底错哪儿了😭
  • ¥15 2020长安杯与连接网探
  • ¥15 关于#matlab#的问题:在模糊控制器中选出线路信息,在simulink中根据线路信息生成速度时间目标曲线(初速度为20m/s,15秒后减为0的速度时间图像)我想问线路信息是什么