JAVA练习:学生对象数组管理系统

题目:定义一个长度为3的数组,存储1~3名学生对象作为初始数据。

学生的属性:学号,姓名,年龄

要求1:再次添加一个学生对象,并在添加的时候进行学号的唯一性判断,添加完毕之后,遍历所有学生信息。

要求2:通过id删除学生信息,若存在,则删除,如果不存在,则提示删除失败。删除完毕之后,遍历所有学生信息。

要求3:通过id修改一个学生的信息,若存在,则将他的年龄+1岁,若不存在,则输出查询失败。

1.实现思路:

2.代码实现截图:

3.实现代码:

学生类:

public class Student {
    private int id;
    private String name;
    private int age;

    public int getId() {
        return id;
    }

    public void setId(int id) {
        this.id = id;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public int getAge() {
        return age;
    }

    public void setAge(int age) {
        this.age = age;
    }

    public Student(int id, String name, int age) {
        this.id = id;
        this.name = name;
        this.age = age;
    }
    public void show(){
        System.out.println("ID:"+id) ;
        System.out.println("姓名:"+name);
        System.out.println("年龄:"+age) ;
    }
}

测试代码:

public class StudentTest {

    public static void main(String[] args) {
        Student[] arr = new Student[3];
        //初始化数组
        Student s1 = new Student(101, "张三", 18);
        Student s2 = new Student(102, "赵八", 19);
        Student s3 = new Student(103, "李四", 16);
        arr[0] = s1;
        arr[1] = s2;
        arr[2] = s3;
        //加入功能
        //jr(arr);
        //删除功能
        //sc(arr,102);
        //修改功能
        xg(arr,102);
    }
public static void jr(Student[] a){
    //加入数组元素
    Student s4 = new Student(104, "朱七", 24);
    //加入数组元素功能
    //判断是否可以加入
    //判断数组中是否存在此id
    boolean temp = pd(a, s4.getId());
    if (temp == true) {
        if (num(a) == a.length) {
            //1.数组满了需要创建新的数组
            //首先新建一个数组,长度为老数组长度+1
            //然后在新数组的最后加入新数组
            Student[] newarr=cr(a);
            newarr[num(a)]=s4;
            bl(newarr);
        }
        else {
            //2.数组未满,在空位置添加
            a[num(a)]=s4;
            bl(a);
        }
    }
    else if (temp == false) {
        System.out.println("id重复,请重新输入:");
    }
}
    public static boolean pd(Student[] a, int i) {
        for (int j = 0; j < a.length; j++) {
            if(a[j]!=null){
            if (i == a[j].getId()) {
                return false;
            } else {
                continue;
            }
        }
    }
        return true;
    }

    //获取数组元素数量
    public static int num(Student[] a) {
        int temp = 0;
        for (int i = 0; i < a.length; i++) {
            if (a[i] != null) {
                temp++;
            }
        }
        return temp;
    }
    //数组满的情况
    //首先新建一个数组,长度为老数组长度+1
    //然后在新数组的最后加入新数组
    public static Student[] cr(Student[] a){
        Student[] newarr=new Student[a.length+1];
        for (int i = 0; i < newarr.length-1; i++) {
            newarr[i]=a[i];
        }
        return newarr;
    }
    //遍历数组
    public static void bl(Student[] a){
        for (int i = 0; i < a.length; i++) {
            if(a[i]!=null){
                a[i].show();
            }
        }
    }
    //删除数组元素
    public static boolean scpd(Student [] a,int id){
        for (int i = 0; i < a.length; i++) {
            if(a[i].getId()==id){
                a[i]=null;
                return true;
            }
        }
        return false;
    }
    public  static void sc(Student[] a,int id){
        if(scpd(a,id)){
            bl(a);
        }else{
            System.out.println("未查询到该学生id");
        }
    }
    //修改数据(修改年龄数据)
    public static  boolean xgpd(Student[] a,int id){
        for (int i = 0; i < a.length; i++) {
            if(a[i].getId()==id){
                int temp=a[i].getAge();
                temp-=1;
                a[i].setAge(temp);
                return true;
            }
        }
        return false;
    }
    public  static void xg(Student[] a,int id){
        if(xgpd(a,id)){
            bl(a);
        }else{
            System.out.println("未查询到该学生id");
        }
    }
}

将悲伤的事对半分吧,将快乐的事拼凑成双吧