Java 复习笔记 - 学生管理系统篇


学生管理系统

一,需求部分

需求

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

分析

初始菜单

"-------------欢迎进入学生管理系统----------------"
"1:添加学生"
"2:删除学生"
"3:修改学生"
"4:查询学生"
"5:退出"
"请输入您的选择:"

学生类

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

添加功能

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

  • id唯一

删除功能

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

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

修改功能

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

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

查询功能

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

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

二,实现部分

(一)初始化主界面

要初始化学生管理系统的主界面,可以按照以下思路进行操作:

  1. 创建一个学生管理系统对象,用于管理学生信息。
  2. 使用一个循环,使主界面一直显示,直到用户选择退出。
  3. 在循环中,打印主界面菜单供用户选择操作。
  4. 根据用户的选择,调用学生管理系统对象的相应方法进行操作。
  5. 根据操作结果,显示相应的反馈信息给用户。

下面是一个示例的代码片段,演示了如何初始化学生管理系统的主界面:

import java.util.Scanner;

public class StudentManagementSystem {
    
    
    public static void main(String[] args) {
    
    
        Scanner scanner = new Scanner(System.in);
        int choice = 0;
        
        while (choice != 5) {
    
    
            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.print("请输入您的选择: ");
            
            choice = scanner.nextInt();
            
            switch (choice) {
    
    
                case 1:
                    // 添加学生逻辑
                    break;
                case 2:
                    // 删除学生逻辑
                    break;
                case 3:
                    // 修改学生逻辑
                    break;
                case 4:
                    // 查询学生逻辑
                    break;
                case 5:
                    System.out.println("感谢使用学生管理系统,再见!");
                    break;
                default:
                    System.out.println("无效的选择,请重新输入!");
                    break;
            }
            
            System.out.println(); // 输出空行,增加可读性
        }
        
        scanner.close();
    }
}

在这个示例中,我们首先创建了一个StudentManagementSystem对象system,用于管理学生信息。然后,在一个无限循环中,打印主界面菜单供用户选择操作。根据用户的选择,我们调用相应的学生管理系统方法进行操作。当用户选择退出时,我们使用System.exit(0)结束程序的执行。

(二)编写学生类

学生类所含属性:id、姓名、年龄、家庭住址

要编写学生类,可以按照以下思路进行操作:

  • 定义学生类,设置其属性和方法。
  • 根据需求,确定学生类的属性,id、姓名、年龄、家庭地址。
  • 为每个属性添加相应的访问器(getter)和修改器(setter)方法,用于获取和设置属性的值。

下面是一个示例的学生类代码片段,演示了如何编写学生类:

public class Student {
    
    
    private int id;
    private String name;
    private int age;
    private String address;
    
    public Student(int id, String name, int age, String address) {
    
    
        this.id = id;
        this.name = name;
        this.age = age;
        this.address = address;
    }
    
    // Getter and Setter methods
    
    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;
    }
    
    public String getAddress() {
    
    
        return address;
    }
    
    public void setAddress(String address) {
    
    
        this.address = address;
    }
}

(三)编写添加学生方法

public void addStudent() {
    
                                    
    Scanner scanner = new Scanner(System.in);             
                                                          
    System.out.println("请输入学生ID:");                       
    int id = scanner.nextInt();                           
    scanner.nextLine(); // 消费掉换行符                         
                                                          
    System.out.println("请输入学生姓名:");                       
    String name = scanner.nextLine();                     
                                                          
    System.out.println("请输入学生年龄:");                       
    int age = scanner.nextInt();                          
    scanner.nextLine(); // 消费掉换行符                         
                                                          
    System.out.println("请输入学生家庭住址:");                     
    String address = scanner.nextLine();                  
                                                          
    Student student = new Student(id, name, age, address);
    students.add(student);                                
                                                          
    System.out.println("学生添加成功!");                        
}                                                         

(四)编写删除学生方法

public void deleteStudent() {
    
                    
    Scanner scanner = new Scanner(System.in);
                                             
    System.out.println("请输入要删除的学生ID:");      
    int id = scanner.nextInt();              
                                             
    boolean found = false;                   
                                             
    for (Student student : students) {
    
           
        if (student.getId() == id) {
    
             
            students.remove(student);        
            found = true;                    
            System.out.println("学生删除成功!");   
            break;                           
        }                                    
    }                                        
                                             
    if (!found) {
    
                                
        System.out.println("未找到匹配的学生ID!");   
    }                                        
}              

(五)编写修改学生方法

public void updateStudent() {
    
                        
    Scanner scanner = new Scanner(System.in);    
                                                 
    System.out.println("请输入要修改的学生ID:");          
    int id = scanner.nextInt();                  
    scanner.nextLine(); // 消费掉换行符                
                                                 
    boolean found = false;                       
                                                 
    for (Student student : students) {
    
               
        if (student.getId() == id) {
    
                 
            System.out.println("请输入学生姓名:");      
            String name = scanner.nextLine();    
            student.setName(name);               
                                                 
            System.out.println("请输入学生年龄:");      
            int age = scanner.nextInt();         
            scanner.nextLine(); // 消费掉换行符        
            student.setAge(age);                 
                                                 
            System.out.println("请输入学生家庭住址:");    
            String address = scanner.nextLine(); 
            student.setAddress(address);         
                                                 
            found = true;                        
            System.out.println("学生修改成功!");       
            break;                               
        }                                        
    }                                            
                                                 
    if (!found) {
    
                                    
        System.out.println("未找到匹配的学生ID!");       
    }                                            
}                                                

(六)编写查询学生方法

public void displayStudents() {
    
                                                                                                              
    if (students.isEmpty()) {
    
                                                                                                                
        System.out.println("当前无学生信息,请添加后再查询!");                                                                                          
    } else {
    
                                                                                                                                 
        System.out.println("id\t\t姓名\t\t年龄\t\t家庭住址");                                                                                    
        for (Student student : students) {
    
                                                                                                   
            System.out.println(student.getId() + "\t\t" + student.getName() + "\t\t" + student.getAge() + "\t\t" + student.getAddress());
        }                                                                                                                                
    }                                                                                                                                    
}                                                                                                                                        

(七)整合代码,集成系统

package net.army.java.test;

/**
 * 功能:学生管理系统
 * 日期:2023年09月02日
 * 作者:梁辰兴
 */
import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;

public class StudentManagementSystem {
    
    
    private List<Student> students;

    public StudentManagementSystem() {
    
    
        students = new ArrayList<>();
    }

    public void addStudent() {
    
    
        Scanner scanner = new Scanner(System.in);

        System.out.println("请输入学生ID:");
        int id = scanner.nextInt();
        scanner.nextLine(); // 消费掉换行符

        System.out.println("请输入学生姓名:");
        String name = scanner.nextLine();

        System.out.println("请输入学生年龄:");
        int age = scanner.nextInt();
        scanner.nextLine(); // 消费掉换行符

        System.out.println("请输入学生家庭住址:");
        String address = scanner.nextLine();

        Student student = new Student(id, name, age, address);
        students.add(student);

        System.out.println("学生添加成功!");
    }

    public void deleteStudent() {
    
    
        Scanner scanner = new Scanner(System.in);

        System.out.println("请输入要删除的学生ID:");
        int id = scanner.nextInt();

        boolean found = false;

        for (Student student : students) {
    
    
            if (student.getId() == id) {
    
    
                students.remove(student);
                found = true;
                System.out.println("学生删除成功!");
                break;
            }
        }

        if (!found) {
    
    
            System.out.println("未找到匹配的学生ID!");
        }
    }

    public void updateStudent() {
    
    
        Scanner scanner = new Scanner(System.in);

        System.out.println("请输入要修改的学生ID:");
        int id = scanner.nextInt();
        scanner.nextLine(); // 消费掉换行符

        boolean found = false;

        for (Student student : students) {
    
    
            if (student.getId() == id) {
    
    
                System.out.println("请输入学生姓名:");
                String name = scanner.nextLine();
                student.setName(name);

                System.out.println("请输入学生年龄:");
                int age = scanner.nextInt();
                scanner.nextLine(); // 消费掉换行符
                student.setAge(age);

                System.out.println("请输入学生家庭住址:");
                String address = scanner.nextLine();
                student.setAddress(address);

                found = true;
                System.out.println("学生修改成功!");
                break;
            }
        }

        if (!found) {
    
    
            System.out.println("未找到匹配的学生ID!");
        }
    }

    public void displayStudents() {
    
    
        if (students.isEmpty()) {
    
    
            System.out.println("当前无学生信息,请添加后再查询!");
        } else {
    
    
            System.out.println("id\t\t姓名\t\t年龄\t\t家庭住址");
            for (Student student : students) {
    
    
                System.out.println(student.getId() + "\t\t" + student.getName() + "\t\t" + student.getAge() + "\t\t" + student.getAddress());
            }
        }
    }

    public static void main(String[] args) {
    
    
        StudentManagementSystem system = new StudentManagementSystem();

        // 菜单
        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("请输入选择:");

            Scanner scanner = new Scanner(System.in);
            int choice = scanner.nextInt();

            switch (choice) {
    
    
                case 1:
                    system.addStudent();
                    break;
                case 2:
                    system.deleteStudent();
                    break;
                case 3:
                    system.updateStudent();
                    break;
                case 4:
                    system.displayStudents();
                    break;
                case 5:
                    System.out.println("谢谢使用,再见!");
                    System.exit(0);
                default:
                    System.out.println("无效的选择,请重新输入!");
                    break;
            }
        }
    }
}

运行效果:
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/m0_62617719/article/details/132654846
今日推荐