Bootstrap

Java基础 学生管理系统的创建和使用

package demo06_项目;

 

public class Student {

    private String id;//学号

    private String name; //姓名

    private int age;//年龄

    private String address; //居住地

    public Student() {

    }

    public Student(String id, String name, int age, String address) {

        this.id = id;

        this.name = name;

        this.age = age;

        this.address = 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 int getAge() {

        return age;

    }

    public void setAge(int age) {

        this.age = age;

    }

    public String getAddress() {

        return address;

    }

    public void setAddress(String address) {

        this.address = address;

    }

}

2.学生管理系统的创建,即上述类的调用

package demo06_项目;

import java.util.ArrayList;

import java.util.Scanner;

public class StudentManagerSystem {

    /*

        我们主要在这个类中实现,创建管理系统的主界面,实现增删改查四种功能

     */

    /*

         1. 我们先用输出语句来构建主界面

         2. 键盘录入,用户输入的选择

         3. 我们使用switch来实现用户的选择

         4. 我们需要使用循环,重新回到主界面

         5.创建一个学生集合,用来保存学生对象, 把这个集合对象分别传递给不同的方法【这些方法到时候公用同一个集合】

     */

    public static void main(String[] args) {

        //我们用来存放学生信息的集合

        ArrayList<Student> list = new ArrayList<>();

        Student s1 = new Student("001", "田七", 27, "深圳");

        list.add(s1); //0

        xx:

        while (true) {

            //1. 我们先用输出语句来构建主界面

            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("请输入你要执行的功能:");

            //2. 键盘录入,用户输入的选择

            Scanner sc = new Scanner(System.in);

            String choose = sc.next();

            //3. 我们使用switch来实现用户的选择

            switch (choose) {

                case "1":

                    // alt + 回车键,可以快速去生成方法

                    addStudent(list);

                    break;

                case "2":

                    deleteStudent(list);

                    break;

                case "3":

                    updateStudent(list);

                    break;

                case "4":

                    findAllStudent(list);

                    break;

                case "5":

                    System.out.println("谢谢使用,欢迎下次光临~~");

                    break xx;

                default:

                    System.out.println("输入的数据有误~~");

            }

        }

    }

    /*

        1. 我们先用输出语句构建表头信息

        2. 遍历集合,获取每一个学生的信息,年龄拼接一个“岁”字

     */

    private static void findAllStudent(ArrayList<Student> list) {

        //1. 我们先用输出语句构建表头信息

        System.out.println("学号\t\t姓名\t\t年龄\t\t居住地");

        // 2. 遍历集合,获取每一个学生的信息,年龄拼接一个“岁”字

        for (int i = 0; i < list.size(); i++) {

            Student s = list.get(i);

            System.out.println(s.getId() + "\t\t" + s.getName() + "\t\t" + s.getAge() + "岁\t" + s.getAddress());

        }

    }

    /*

        1. 先提示用户输入对应的要修改的学号

        2. 需要判断当前的学号是否存在【findIndex()】

        3. 如果不存在则给出提示

        4. 如果存在则提示要修改的数据[修改姓名,年龄,居住地]

            4.1. 创建一个新的学生对象,把修改好的信息保存进去

            4.2. 修改到集合中

     */

    private static void updateStudent(ArrayList<Student> list) {

        //1. 先提示用户输入对应的要修改的学号

        System.out.println("请输入要修改的学生的学号");

        Scanner sc = new Scanner(System.in);

        String id = sc.next();

        //2. 需要判断当前的学号是否存在【findIndex()】

        int index = findIndex(list, id);

        if(index == -1){

            System.out.println("该学号不存在,请重新输入");

        }else{

            //4. 如果存在则提示要修改的数据[修改姓名,年龄,居住地]

            System.out.println("请输入学生的新姓名");

            String name = sc.next();

            System.out.println("请输入学生的新年龄");

            int age = sc.nextInt();

            System.out.println("请输入学生的新居住地");

            String address = sc.next();

            //4.1. 创建一个新的学生对象,把修改好的信息保存进去

            Student s = new Student(id , name ,age , address);

            // 4.2. 修改到集合中

            list.set(index ,s);

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

        }

    }

    /*

        1. 先提示用户输入要删除的学生的学号

        2. 判断当前集合中是否存在该学号【findIndex()】

        3. 如果不存在,则给出提示

        4. 如果存在,就删除

     */

    private static void deleteStudent(ArrayList<Student> list) {

       //1. 先提示用户输入要删除的学生的学号

        System.out.println("请输入要删除的学生的学号");

        Scanner sc = new Scanner(System.in);

        String id = sc.next();

        //2. 判断当前集合中是否存在该学号

        int index = findIndex(list, id);

        // 3. 如果不存在,则给出提示

        if(index == -1){

            System.out.println("该学号不存在,请重新输入");

        }else{

            // 4. 如果存在,就删除

            //集合删除元素 list.remove(索引、元素)

            list.remove(index);

            System.out.println("删除成功~");

        }

    }

    /*

            1. 先提示用户输入对应的信息

            2. 使用键盘录入去接收

            3. 需要创建一个学生对象,把键盘输入的数据保存成一个学生对象

            4. 把学生对象保存到集合中

     */

    private static void addStudent(ArrayList<Student> list) {

        //1. 先提示用户输入对应的信息

        //2. 使用键盘录入去接收

        Scanner sc = new Scanner(System.in);

        System.out.println("请输入学生的学号");

        String id;

        while (true) {

            id = sc.next();

            int index = findIndex(list, id);

            if (index == -1) {

                //集合中不存在该索引

                break;

            } else {

                System.out.println("该学号已经存在,请重新输入");

            }

        }

        System.out.println("请输入学生的姓名");

        String name = sc.next();

        System.out.println("请输入学生的年龄");

        int age = sc.nextInt();

        System.out.println("请输入学生的居住地");

        String address = sc.next();

        //3. 需要创建一个学生对象,把键盘输入的数据保存成一个学生对象

        Student s = new Student(id, name, age, address);

        // 4. 把学生对象保存到集合中

        list.add(s);

        System.out.println("添加学生信息成功");

        System.out.println("当前系统人数为:" + list.size());

    }

    /*

        判断学生集合中,是否有指定的学号,如果有就返回当前学生对应的索引,如果没有就返回-1

            1. 我们定义的方法,需要接收一个集合和一个要查找的学号

            2. 遍历集合,获取每一个学生对象

            3. 再获取每一个学生对象对应的学号 去和 传递过来的学号做比较

            4. 如果是相同,就返回对应的索引

            5. 如果整个循环都执行完毕,还是找不到,就返回-1

     */

    public static int findIndex(ArrayList<Student> list, String id) {

        // 2. 遍历集合,获取每一个学生对象

        for (int i = 0; i < list.size(); i++) {

            //2. 遍历集合,获取每一个学生对象

            Student s = list.get(i);

            // 3. 再获取每一个学生对象对应的学号 去和 传递过来的学号做比较

            if (s.getId().equals(id)) {

                //4. 如果是相同,就返回对应的索引

                return i;

            }

        }

        // 5. 如果整个循环都执行完毕,还是找不到,就返回-1

        return -1;

    }

}

;