java控制台实现简单的学生管理

该代码示例展示了一个Java程序,它使用ArrayList存储Student对象,并实现了添加、删除、更新和查询学生信息的功能。用户通过控制台输入选择相应的操作,程序会根据用户的选择执行对应的动作,如检查ID的唯一性,删除指定ID的学生,修改学生信息等。
摘要由CSDN通过智能技术生成
package Total_Demo.ArrayList.Big_test;

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


    public Student() {
    }

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

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

    /**
     * 设置
     * @param id
     */
    public void setId(String 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;
    }

    /**
     * 获取
     * @return home
     */
    public String getHome() {
        return home;
    }

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

  
    
}

设置ArrayList来存储学生对象,通过方法来返回student对象索引,来进行增删改查

package Total_Demo.ArrayList.Big_test;

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

public class StuTest {
    public static void main(String[] args) {
        ArrayList<Student> list=new ArrayList<>();

        //loop是给break停止的循环
        loop:while (true){
            System.out.println("---------坤坤学院-------");
            System.out.println("1.添加学生");
            System.out.println("2.删除学生");
            System.out.println("3.修改学生");
            System.out.println("4.查询学生");
            System.out.println("5.退出");
            System.out.println("please into your choose number");
            Scanner sc=new Scanner(System.in);
            String choose = sc.next();
            switch (choose){
                case "1"-> addstudent(list);
                case "2"->delstudent(list);
                case "3"-> updatestudent(list);
                case "4"-> querytudent(list);
                case "5"-> {
                    System.out.println("5.退出");
                    break loop;
//                    System.exit(0); //停止虚拟机运行
                }
                default -> System.out.println("no number you have choose");
            }

        }

    }

    //添加学生
    public static void addstudent(ArrayList<Student> list){
        System.out.println("添加学生");
        Scanner sc =new Scanner(System.in);
        Student stu=new Student();

        while (true){
            System.out.println("id");
            String id = sc.next();
            boolean flag=content(list,id);
            if (flag){
                System.out.println("id存在,重新录入");
            }else {
                stu.setId(id);
                System.out.println("添加成功");
                break;
            }
        }

        System.out.println("name");
        String name=sc.next();
        System.out.println("age");
        int age = sc.nextInt();
        System.out.println("home");
        String home = sc.next();

        stu.setName(name);
        stu.setAge(age);
        stu.setHome(home);
        list.add(stu);
        System.out.println("添加成功");






    }
    public static void delstudent(ArrayList<Student> list){

        System.out.println("请写出要删除的id");
        Scanner sc=new Scanner(System.in);
        String id = sc.next();
        //查询id在集合中的索引
        int index = getIndex(list, id);
        //对index进行判断
        //大于等于0,表示存在,直接删除
        //-1 直接表示不存在,结束方法,回到主菜单
        if (index>=0){
            list.remove(index);
            System.out.println("id为"+id+"的学生删除成功");
        }else {
            System.out.println("id不存在");

        }


    }
    public static void updatestudent(ArrayList<Student> list){
        System.out.println("你要修改的id");
        Scanner sc =new Scanner(System.in);
        String id = sc.next();
        //获得list student对象的索引
        int sidindex=getIndex(list,id);
        if (sidindex>=0){
            System.out.println("你要修改后的name");
            String name = sc.next();
            list.get(sidindex).setName(name);
            System.out.println("你要修改后的的age");
            int age = sc.nextInt();
            list.get(sidindex).setAge(age);
            System.out.println("你要修改后的home");
            String home=sc.next();
            list.get(sidindex).setHome(home);
            System.out.println("修改成功");


        }else {
            System.out.println("id 不存在");
        }

    }
    public static void querytudent(ArrayList<Student> list){
        System.out.println("查询学生");
        if (list.size()==0){
            System.out.println("无信息");
            //结束方法
            return;
        }
        //打印表头信息
        System.out.println("id\t\t姓名\t年龄\t家庭地址");
        for (int i = 0; i < list.size(); i++) {
            Student stu=list.get(i);
            System.out.println(stu.getId()+"\t\t"+stu.getName()+"\t"+stu.getAge()+"\t"+stu.getHome());

        }

    }

    //判断id的唯一性
    public static boolean content(ArrayList<Student> list,String id){
//        for (int i = 0; i < list.size(); i++) {
//            //id相同返回true
//            if (list.get(i).getId().equals(id)){
//                return true;
//            }
//        }
//
//        return false;
        return getIndex(list,id)>=0;
    }


    public static int getIndex(ArrayList<Student> list,String id){
        //通过id获取索引的方法
        for (int i = 0; i < list.size(); i++) {
             //得到每一个学生对象
            Student stu=list.get(i);
             //得到其id
            String sid=stu.getId();
            //拿着集合中的学生id跟要删除的id进行比较
            if (sid.equals(id)){
                //如果一样返回索引
                return i;
            }
        }
        return -1;

    }

}

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值