94 删除已存在学号 给存在的学生加一岁

对象

package com.fqs.demo003;

import java.util.Scanner;

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

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

优化后的方法

package com.fqs.demo003;

import sun.font.FontRunIterator;

import java.util.Scanner;

public class StudentTest {
    public static void main(String[] args) {
        Student[]students=new Student[8];
        int len=students.length;
        students[0]=new Student(1,"stu1",5);
        for (int i = 1; i <len ; i++) {
            students[i]=new Student();//初始化每个students[]

        }


        //键盘输入
        Scanner sc=new Scanner(System.in);
        //判断添加数组 是否还有位置
        //id为空 说明还有位置

        //1.遍历学生信息
        getInfo(students);
        int count=0;//空了几个位置



        for (int i = 0; i < len; i++) {
            int id=students[i].getId();
            if(id==0){
                count++;
                //第一步:有空位置才可以添加
                //键盘输入id
                System.out.println("第"+(i+1)+"次循环有空位置,请输入学生id");
                id=sc.nextInt();
                boolean id_is_ok=false;//id是否存在
                while (true){//如果id存在再次提示输入,不存在时跳出循环
                    if(getIs(students,id)==true){
                        System.out.println("id已存在");
                        System.out.println("请输入学生id");
                        id=sc.nextInt();

                        }else {
                            //id不存在
                        System.out.println("i:"+i);
                            students[1].setId(id);
                            break;
                        }

                }
                System.out.println("请输入学生姓名");
                String name=sc.next();
                students[1].setName(name);
                System.out.println("请输入学生年龄");
                int age=sc.nextInt();
                students[1].setAge(age);

            }


        }
        if(count==0){
            //没有空位置
            System.out.println("没有空位置了,不再添加");
        }


        //传入的id 做判断







        //1.遍历学生信息
        getInfo(students);
        //第二步:根据id删除学生,如果存在则删除;不存在,提示删除失败

        //删除学生的id是
        System.out.println("请输入删除学生的id");
        int id=sc.nextInt();
        if(getIs(students,id)){
            //找到删除id数组 的下标
            int indexx=getIndex(students,id);
            students[indexx]=new Student();
            System.out.println("学号"+id+"的学生已删除");
        }else{
            System.out.println("学号"+id+"的学生不存在");

        }

        //4.遍历学生信息
        getInfo(students);
        //第三步  给id=1的学生年龄+1,如果id=1的学生存在

        id=1;
        System.out.println("判断学号"+id+"的学生存在吗");
        if(getIs(students,id)){
            students[id].setAge(students[id].getAge()+1);
            System.out.println(id+"学号的年龄已加1");
        }else{
            System.out.println("学号"+id+"的学生不存在");

        }
        //4.遍历学生信息
        getInfo(students);
    }//主方法


    public static void getInfo(Student[]students) {
        //1.遍历输出全部的学生信息
        for (int i = 0; i <students.length; i++) {
            System.out.println(students[i].getId()+students[i].getName()+students[i].getAge());

        }

    }//结束打印信息
    //2.判断id为2是否存在

    public static boolean getIs(Student[]students,int id) {
        boolean isFindd=false;
        int index;//相等的下标
        for (int i = 0; i < students.length; i++) {
            //判断是否存在
            if(id==students[i].getId()){
                //存在
                isFindd=true;
                index=i;

                break;
            }else{
                //不存在
                isFindd=false;

            }

        }
        return isFindd;

    }//结束
    //3.判断id所在的下标
    public static int getIndex(Student[]students,int id) {

        int index=0;//相等的下标
        for (int i = 0; i < students.length; i++) {
            //判断是否存在
            if(id==students[i].getId()){
                //存在
                index=i;

                break;
            }

        }
        return index;

    }//结束






}

 

 

 

方法

package com.fqs.demo003;

import java.util.Scanner;

public class StudentTest {
    public static void main(String[] args) {
        Student[]students=new Student[2];
        students[0]=new Student(0,"stu1",5);
        students[1]=new Student();
        //传入的id 做判断

        boolean isFind=false;

        //键盘输入
        Scanner sc=new Scanner(System.in);


        //判断是否存在
        while(true){
            System.out.println("请输入学生id");
            int id=sc.nextInt();

            if(students[0].getId()==id){
                //已存在
                isFind=true;
                System.out.println("已存在");

            }else{
                //不存在
                students[1].setId(id);
                break;
            }

        }
        System.out.println("请输入学生姓名");
        String name=sc.next();
        students[1].setName(name);
        System.out.println("请输入学生年龄");
        int age=sc.nextInt();
        students[1].setAge(age);
        //1.遍历学生信息
        getInfo(students);
        //2.根据id删除学生,如果存在则删除;不存在,提示删除失败

        //删除学生的id是
        System.out.println("请输入删除学生的id");
        int id=sc.nextInt();
        if(getIs(students,id)){
            students[id]=new Student();
            System.out.println("学号"+id+"的学生已删除");
        }else{
            System.out.println("学号"+id+"的学生不存在");

        }

        //4.遍历学生信息
        getInfo(students);
        //5.给id=1的学生年龄+1,如果id=1的学生存在

        id=1;
        System.out.println("判断学号"+id+"的学生存在吗");
        if(getIs(students,id)){
            students[id].setAge(students[id].getAge()+1);
            System.out.println(id+"学号的年龄已加1");
        }else{
            System.out.println("学号"+id+"的学生不存在");

        }
        //4.遍历学生信息
        getInfo(students);
    }//主方法

    public static void getInfo(Student[]students) {
        //1.遍历输出全部的学生信息
        for (int i = 0; i <students.length; i++) {
            System.out.println(students[i].getId()+students[i].getName()+students[i].getAge());

        }

    }//结束打印信息
    //判断id为2是否存在

    public static boolean getIs(Student[]students,int id) {
        boolean isFindd=false;
        for (int i = 0; i < students.length; i++) {
            //判断是否存在
            if(id==students[i].getId()){
                //存在
                isFindd=true;

                break;
            }else{
                //不存在
                isFindd=false;

            }

        }
        return isFindd;

    }
}

  

 

posted @ 2023-06-15 16:32  胖豆芽  阅读(34)  评论(0编辑  收藏  举报