学生管理系统的需求文档

发布时间 2023-04-22 01:18:14作者: 渣渣x

学生管理系统

需求:

​ 采取控制台的方式去书写学生管理系统。

分析:

初始菜单:

"-----------------------------------------------"
"1.添加学生"
"2.删除学生"
"3.修改学生"
"4.查询学生"
"5.退出"
"请输入您的选择:"

学生类

​ 属性:id、姓名、年龄、家庭住址

添加功能:

​ 键盘录入每一个学生信息并添加,需要满足一下需求:

  • id唯一

删除功能:

​ 键盘录入要删除学生的id,需要满足以下要求:

  • id存在删除
  • id不存在,需要提示不存在,并回到初始菜单

修改功能

​ 键盘录入要修改的学生id,需要满足一下要求

  • id存在,继续录入其他信息
  • id不存在,需要提示不存在,并回到初始菜单

查询功能:

​ 打印所有学生的信息,需要满足一下要求

  • 如果没有学生信息,提示:当前无学生信息,清添加后再查询
  • 如果有学生信息,需要按照一下格式输出。(不用过于纠结对齐的问题)
id 姓名 年龄 家庭住址
heima001 张三 23 南京
heima002 李四 24 北京
heima003 王五 25 广州
heima004 赵六 26 深圳

代码:

JavaBean

package com.xx.mycollection.student;

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 location) {
        this.id = id;
        this.name = name;
        this.age = age;
        this.address = location;
    }

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

启动类

package com.xx.mycollection.student;

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

public class Test {
    public Test() {
        ArrayList<Student> list;
    }
    public static void init(){
        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("请输入您的选择:");
    }

    public static void main(String[] args) {
        ArrayList<Student> list = new ArrayList<>();
        loop:while (true) {
            init();
            Scanner scanner = new Scanner(System.in);
            String choose = scanner.next();
            switch (choose){
                case "1" ://添加学生
                    addStudent(list);
                    break;
                case "2" ://删除学生
                    deleteStudent(list);
                    break;
                case "3" ://修改学生
                    updateStudent(list);
                    break;
                case "4" ://查询学生
                    queryStudent(list);
                    break;
                case "5" ://退出
                    System.out.println("退出");
                    //System.exit(0);//停止虚拟机运行,所有代码都结束
                    break loop;
                default:
                    System.out.println("没有这个选项");
            }
        }
    }

    //添加学生
    public static void addStudent(ArrayList<Student> list){
        System.out.println("添加学生");
        //利用空参构造先创建学生对象
        Student s = new Student();

        Scanner scanner = new Scanner(System.in);
        String id =null;

        loop3:while (true) {
            System.out.println("请输入新添加学生的id");
            id = scanner.next();
            s.setId(id);

            //查询id是否重复
            boolean flag =contains(list,id);
            if (flag){
            }else {
                System.out.println("请输入新添加学生的姓名");
                String name = scanner.next();
                s.setName(name);

                System.out.println("请输入新添加学生的年龄");
                int age =scanner.nextInt();
                s.setAge(age);

                System.out.println("请输入新添加学生的家庭住址");
                String address = scanner.next();
                s.setAddress(address);

                //把学生对象添加到集合当中
                list.add(s);

                //提示一下用户
                System.out.println("学生信息添加成功");
                break loop3;
            }
        }
    }

    //删除学生
    public static void deleteStudent(ArrayList<Student> list){
        System.out.println("请输入需要删除学生的id");
        Scanner scanner = new Scanner(System.in);
        String id = scanner.next();
        for (int i = 0; i < list.size(); i++) {
            Student student = list.get(i);
            if (student.getId().equals(id)){
                list.remove(i);
                System.out.println("删除成功");
                return;
            }
        }
        System.out.println("您输入的id不存在");
    }

    //修改学生
    public static void updateStudent(ArrayList<Student> list){
        System.out.println("请输入要删除学生的id");
        Scanner scanner = new Scanner(System.in);
        String id =scanner.next();
        for (int i = 0; i < list.size(); i++) {
            Student stu =list.get(i);
            if (stu.getId().equals(id)){
                System.out.println("请输入修改后的名字");
                stu.setName(scanner.next());
                System.out.println("请输入修改后的年龄");
                stu.setAge(scanner.nextInt());
                System.out.println("请输入修改后的地址");
                stu.setAddress(scanner.next());
                System.out.println("--------------修改成功----------------");
                break;
            }
        }
        System.out.println("您要修改的id不存在");
    }

    //查询学生
    public static void queryStudent(ArrayList<Student> list){
        if (list.size()==0){
            System.out.println("当前无学生信息,请添加后再查询");
        }else {
            System.out.print("id         ");
            System.out.print("姓名        ");
            System.out.print("年龄        ");
            System.out.println("家庭住址   ");
            for (int i = 0; i < list.size(); i++) {
                Student stu =list.get(i);
                System.out.println(stu.getId()+"\t"+stu.getName()+"\t"+stu.getAge()+"\t"+stu.getAddress());
            }
        }
    }

    //判断id是否重复
    public static boolean contains(ArrayList<Student> list,String id){
        for (int i = 0; i < list.size(); i++) {
            Student s =list.get(i);
            if (s.getId().equals(id)){
                System.out.println("您输入的id重复了");
                return true;
            }
        }
        return false;
    }
}