文章目录
- 学生管理系统
- 一,需求部分
- 需求
- 分析
- 初始菜单
- 学生类
- 添加功能
- 删除功能
- 修改功能
- 查询功能
- 二,实现部分
- (一)初始化主界面
- (二)编写学生类
- (三)编写添加学生方法
- (四)编写删除学生方法
- (五)编写修改学生方法
- (六)编写查询学生方法
- (七)整合代码,集成系统
学生管理系统
一,需求部分
需求
采取控制台的方式去书写学生管理系统。
分析
初始菜单
"-------------欢迎进入学生管理系统----------------"
"1:添加学生"
"2:删除学生"
"3:修改学生"
"4:查询学生"
"5:退出"
"请输入您的选择:"
学生类
属性:id、姓名、年龄、家庭住址
添加功能
键盘录入每一个学生信息并添加,需要满足以下要求:
- id唯一
删除功能
键盘录入要删除的学生id,需要满足以下要求:
- id存在删除
- id不存在,需要提示不存在,并回到初始菜单
修改功能
键盘录入要修改的学生id,需要满足以下要求
- id存在,继续录入其他信息
- id不存在,需要提示不存在,并回到初始菜单
查询功能
打印所有的学生信息,需要满足以下要求
- 如果没有学生信息,提示:当前无学生信息,请添加后再查询
- 如果有学生信息,需要按照以下格式输出。(不用过于纠结对齐的问题)
id 姓名 年龄 家庭住址
2023001 张三 23 南京
2023002 李四 24 北京
2023003 王五 25 广州
2023004 赵六 26 深圳
二,实现部分
(一)初始化主界面
要初始化学生管理系统的主界面,可以按照以下思路进行操作:
- 创建一个学生管理系统对象,用于管理学生信息。
- 使用一个循环,使主界面一直显示,直到用户选择退出。
- 在循环中,打印主界面菜单供用户选择操作。
- 根据用户的选择,调用学生管理系统对象的相应方法进行操作。
- 根据操作结果,显示相应的反馈信息给用户。
下面是一个示例的代码片段,演示了如何初始化学生管理系统的主界面:
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 methodspublic 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;}}}
}
运行效果: