学生信息修改

题目:

定义一个长度为3的数组,数组存储1~3名学生对象作为初始数据,学生对象的学号,姓名各不相同。学生的属性:学号,姓名,年龄。
要求1∶再次添加一个学生对象,并在添加的时候进行学号的唯一性判断。
要求2︰添加完毕之后,遍历所有学生信息。
要求3:通过id删除学生信息,如果存在,则删除,如果不存在,则提示删除失败。
要求4︰删除完毕之后,遍历所有学生信息。
要求5:查询数组id为“heima002”的学生,如果存在,则将他的年龄+1岁

目录

Student类:

package test04_student;

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

    public Student() {
    }

    public Student(int id, String name, int age) {
        this.id = id;
        this.name = name;
        this.age = age;
    }

    /**
     * 获取
     * @return id
     */
    public int getId() {
        return id;
    }

    /**
     * 设置
     * @param id
     */
    public void setId(int id) {
        this.id = id;
    }

    /**
     * 获取
     * @return name
     */
    public String getName() {
        return name;
    }

    /**
     * 设置
     * @param name
     */
    public void setName(String name) {
        this.name = name;
    }

    /**
     * 获取
     * @return age
     */
    public int getAge() {
        return age;
    }

    /**
     * 设置
     * @param age
     */
    public void setAge(int age) {
        this.age = age;
    }

}

StudentTest类: 

package test04_student;

import java.util.Scanner;

public class StudentTest {
    public static void main(String[] args) {
        //定义一个长度为3的数组,数组存储1~3名学生对象作为初始数据,学生对象的学号,姓名各不相同。学生的属性:学号,姓名,年龄。
        //要求1∶再次添加一个学生对象,并在添加的时候进行学号的唯一性判断。
        //要求2︰添加完毕之后,遍历所有学生信息。
        //要求3:通过id删除学生信息,如果存在,则删除,如果不存在,则提示删除失败。
        //要求4︰删除完毕之后,遍历所有学生信息。
        //要求5:查询数组id为“heima002”的学生,如果存在,则将他的年龄+1岁

        //定义一个长度为3的数组
        Student[] arr=new Student[3];
        //创建对象
        Student stu1=new Student(1,"wlh",67);
        Student stu2=new Student(2,"ryj",68);
        //Student stu3=new Student(3,"pxl",69);
        arr[0]=stu1;
        arr[1]=stu2;
        //arr[2]=stu3;

        //要求1:再次添加一个学生对象,并在添加的时候进行学号的唯一性判断。
        Scanner sc=new Scanner(System.in);
        //创建一个对象用于添加
        Student stu4=new Student(4,"wqf",66);
        //进行唯一性判断
        boolean flag=weiyixing(arr,stu4.getId());
        if(flag){
            //存在
            System.out.println("添加的学号已存在,请重新输入");
        }else {
            //不存在
            //添加
            int count =count(arr);
            //1.数组未满
            if(count<arr.length){
                //直接添加
                //count有两个意思
                //1.表示有数据的个数
                //2.表示添加直接从count开始
                arr[count]=stu4;
            }
            //2.数组已满
            if(count==arr.length){
                //给arr赋值一个新数组,长度为arr.length+1
                arr=newarr(arr);
                //添加
                //count有两个意思
                //1.表示有数据的个数
                //2.表示添加直接从count开始
                arr[count]=stu4;
            }
        }
        //要求2︰添加完毕之后,遍历所有学生信息。
        bL(arr);
        //要求3:通过id删除学生信息,如果存在,则删除,如果不存在,则提示删除失败。
        System.out.println("请输入要删除的id");
        int id=sc.nextInt();
        //判断是否存在
        boolean flag1=weiyixing(arr,id);
        //判断,如果输入的id存在,则删除,如果不存在,则提示删除失败
        if (flag1){
            //存在,删除
            for (int i = 0; i < arr.length; i++) {
                if(arr[i]!=null){
                    if(arr[i].getId()==id){
                        arr[i]=null;
                    }
                }

            }
            //要求4︰删除完毕之后,遍历所有学生信息。
            bL(arr);
        }else {
            System.out.println("id不存在,删除失败");
        }
        //要求5:查询数组id为“heima002”的学生,如果存在,则将他的年龄+1岁
        System.out.println("请输入要查询的id");
        //键盘录入
        int id1=sc.nextInt();
        //是否存在判断
        boolean flag2=weiyixing(arr,id1);
        if(true){
            //存在,年龄+1
            for (int i = 0; i < arr.length; i++) {
                if(arr[i]!=null){
                    if(arr[i].getId()==id1){
                        arr[i].setAge(arr[i].getAge()+1);
                    }
                }
            }
            //遍历
            bL(arr);
        }

    }
    //干什么  判断唯一性
    //需要什么  数组 添加的id
    //返不返回  需要返回
    public static boolean weiyixing(Student[] arr,int id){
        for (int i = 0; i < arr.length; i++) {
            Student stu=arr[i];
            //判断,如果arr[i]为空,则不进行唯一性判断,因为如果为空,stu.getId()会报错,因为没有id
            if (stu!=null){
                int sid=stu.getId();
                if(sid==id){
                    return true;
                }
            }
        }
        return false;
    }
    //计算数组中有效数据的次数
    public static int count(Student[] arr){
        int count=0;
        for (int i = 0; i < arr.length; i++) {
            if(arr[i] !=null){
                count++;
            }
        }
        return count;
    }
    //创建一个新数组
    public static Student[] newarr(Student[] arr){
        //创建一个新数组
        Student[] newarr=new Student[arr.length+1];
        //把旧数组填充到新数组中
        for (int i = 0; i < arr.length; i++) {
            newarr[i]=arr[i];
        }
        return newarr;
    }
    //遍历
    public static void bL(Student[] arr){
        for (int i = 0; i < arr.length; i++) {
            Student stu=arr[i];
            //判断,如果arr[i]为空,则不输出,因为如果为空,stu.getId()会报错,因为没有id
            if(stu!=null){
                System.out.println(arr[i].getId()+" "+arr[i].getName()+" "+arr[i].getAge());
            }
        }
    }

}

运行结果:

1 wlh 67
2 ryj 68
4 wqf 66
请输入要删除的id
4
1 wlh 67
2 ryj 68
请输入要查询的id
2
1 wlh 67
2 ryj 69

注意:

 if(true){
            //存在,年龄+1
            for (int i = 0; i < arr.length; i++) {
                if(arr[i]!=null){
                    if(arr[i].getId()==id1){
                        arr[i].setAge(arr[i].getAge()+1);
                    }
                }
            }
            //遍历
            bL(arr);
        }

其中的 arr[i].setAge(arr[i].getAge()+1);这段代码,本来我写的 arr[i].getAge()=arr[i].getAge()+1;

但是它报错了,因为arr[i].getAge()是一个数值,而等号左边应该是一个变量,所以改成arr[i].setAge(arr[i].getAge()+1);

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值