Java实现学生管理系统的增删改查

java练习

写在前面:
在家跟着视频学习,自学java个人推荐去b站看“黑马”的视频

这个主要是对ArrayList、循环、switch分支、面向对象的综合练习
学生管理系统有添加、删除、修改、查询四个功能
代码如下:
测试类

package studentMange;

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

public class StudentTest {
    public static void main(String[] args) {
        ArrayList<Student> list = new ArrayList<>();
        static {
        //添加初始数据
        list.add(new Student("P103", "张三", 22, "北京"));
        list.add(new Student("P102", "小卤蛋", 20, "上海"));
    }

        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("------------------------------------");
            System.out.println("请输入您的选择:");

            Scanner sc = new Scanner(System.in);
            String choose = sc.next();

            switch (choose) {
                case "1":
                    add(list);
                    break;
                case "2":
                    delete(list);
                    break;
                case "3":
                    update(list);
                    break;
                case "4":
                    query(list);
                    break;
                case "5":
                    //System.exit(0);//也可以用这个方法停止虚拟机运行
                    break loop;
                default:
                    System.out.println("没有这个选项");
                    break;
            }
        }

    }

    //添加学生,id唯一
    private static void add(ArrayList<Student> list) {
        //利用无参构造器创建学生对象
        Student student = new Student();

        Scanner sc = new Scanner(System.in);
        String id;
        System.out.println("请输入学生id");
        while (true) {
            id = sc.next();
            boolean flag = contains(list, id);
            if (flag) {
                //存在
                System.out.println("id已经存在,请重新录入");
            } else {
                //id不存在,可以录入
                student.setId(id);//赋值给学生对象
                break;
            }
        }

        System.out.println("请输入学生姓名");
        String name = sc.next();
        student.setName(name);

        System.out.println("请输入学生年龄");
        int age = sc.nextInt();
        student.setAge(age);

        System.out.println("请输入学生住址");
        String address = sc.next();
        student.setAddress(address);

        //把学生对象添加到集合
        list.add(student);
        System.out.println("添加成功");
    }

    //删除学生
    private static void delete(ArrayList<Student> list) {
        Scanner sc = new Scanner(System.in);
        System.out.println("请输入要删除的学生id");
        String id = sc.next();
        //查询id对应的索引
        int index = getIndex(list, id);
        //对index进行判断
        if (index >= 0) {
            //如果索引大于等于0,表示存在,直接删除
            list.remove(index);
            System.out.println("id为" + id + "的学生删除成功");
        } else {
            System.out.println("id不存在,删除失败");
        }
    }

    //修改学生
    private static void update(ArrayList<Student> list) {
        Scanner sc = new Scanner(System.in);
        System.out.println("请输入要修改的学生id");
        String id = sc.next();

        //获取id对应的索引
        int index = getIndex(list, id);
        //对索引进行判断
        if (index == -1) {
            System.out.println("要修改的id不存在,请重新输入");
            return;
        }

        //id存在,获取要修改的学生对象
        Student student = list.get(index);

        System.out.println("请输入要修改的学生姓名");
        String newName = sc.next();
        student.setName(newName);
        System.out.println("请输入要修改的学生年龄");
        int newAge = sc.nextInt();
        student.setAge(newAge);
        System.out.println("请输入要修改的学生地址");
        String newAdd = sc.next();
        student.setAddress(newAdd);

        System.out.println("学生信息修改成功");
    }

    //查询学生
    private static void query(ArrayList<Student> list) {
        if (list.size() == 0) {
            //没有数据
            System.out.println("当前没有学生信息,请添加后再查询");
            return;//结束方法
        }

        //有数据
        //打印表头信息
        System.out.println("id\t\t\t姓名\t\t\t年龄\t\t\t家庭住址");
        for (int i = 0; i < list.size(); i++) {
            Student student = list.get(i);
            System.out.println(student.getId() + "\t\t" + student.getName() + "\t\t" +
                    student.getAge() + "\t\t" + student.getAddress());
        }
    }

    //根据索引来判断id是否存在
    private static boolean contains(ArrayList<Student> list, String id) {
        //System.out.println(getIndex(list, id));//打印索引
        return getIndex(list, id) >= 0;//满足返回true,否则返回false
    }

    //通过id获取索引
    private static int getIndex(ArrayList<Student> list, String id) {
        for (int i = 0; i < list.size(); i++) {
            //把传入的id和集合的对象的id进行比较
            boolean flag = list.get(i).getId().equals(id);
            if (flag) {
                //相等则说明集合有这个id,则将id的索引返回
                return i;
            }
        }
        return -1;//不存在这个id,返回-1
    }
}

JavaBean

package studentMange;

public class Student {
    private String id;
    private String name;
    private Integer age;
    private String address;

    public String getId() {
        return id;
    }

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

    public String getName() {
        return name;
    }

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

    public Integer getAge() {
        return age;
    }

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

    public String getAddress() {
        return address;
    }

    public void setAddress(String address) {
        this.address = address;
    }

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

    public Student() {
    }
}

2022.8.27练习

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值