文章目录
- 学生管理系统
- 1、需求文档
- 需求
- 分析
- 2、新建学生实体类
- 3、实现基本菜单和退出功能
- 4、查询和添加
- 4.1 查询学生信息
- 4.2 添加学生信息
- 5、修改和删除
- 5.1 删除功能实现
- 5.2 修改功能实现
- 完整代码下载
学生管理系统
1、需求文档
需求
采取控制台的方式书写学生管理系统。
分析
初始菜单:
学生类:
- 属性:id、姓名、年龄、家庭住址
添加功能:
- 键盘录入每一个学生信息并添加,需要满足以下要求:
id唯一
删除功能:
- 键盘录入要删除的学生
id
,需要满足以下要求:- id存在删除。
- id不存在,需要提示不存在,并返回初始菜单。
修改功能:
- 键盘录入要修改的学生id,需要满足以下要求
- id存在,继续录入其他信息
- id不存在,需要提示不存在,并回到初始菜单
查询功能:
- 打印所有的学生信息,需要满足以下要求:
- 如果没有学生信息,提示:当前无学生信息,请添加后查询。
- 如果有学生信息,需要按照格式化输出。
2、新建学生实体类
Student.java
:
java">package com.nobug.studentsystem;
/**
* @Author: wang
* @Create: 2025/1/28
* @Description: 学生类
**/
public class Student {
// id name age address
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;
}
}
3、实现基本菜单和退出功能
java">package com.nobug.studentsystem;
import java.util.Scanner;
public class StudentSystem {
public static void main(String[] args) {
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 scanner = new Scanner(System.in);
String choice = scanner.next();
switch (choice) {
case "1":
addStudent();
break;
case "2":
deleteStudent();
break;
case "3":
updateStudent();
break;
case "4":
queryStudent();
break;
case "5":
System.out.println("退出");
break loop;
default:
System.out.println("没有这个选项");
}
}
}
// 添加学生
public static void addStudent(){
System.out.println("添加学生");
}
// 删除学生
public static void deleteStudent(){
System.out.println("删除学生");
}
// 修改学生
public static void updateStudent(){
System.out.println("修改学生");
}
// 查询学生
public static void queryStudent(){
System.out.println("查询学生");
}
}
运行效果:
4、查询和添加
4.1 查询学生信息
代码实现:
java">// 查询学生
public static void queryStudent(ArrayList<Student> students){
// 没有学生信息
if(students.isEmpty()){
System.out.println("当前无学生信息,请添加后再查询。");
return;
}
// 存在学生信息
System.out.println("id\t\t姓名\t\t年龄\t\t家庭住址");
for(Student student : students){
System.out.println(student.getId() + "\t" + student.getName() + "\t" + student.getAge() + "\t" + student.getAddress());
}
}
4.2 添加学生信息
代码实现:
java">// 添加学生
public static void addStudent(ArrayList<Student> students){
Scanner scanner = new Scanner(System.in);
System.out.print("请输入学生的id:");
String id = scanner.next();
System.out.print("请输入学生的姓名:");
String name = scanner.next();
System.out.print("请输入学生的年龄:");
int age = scanner.nextInt();
System.out.print("请输入学生的家庭住址:");
String address = scanner.next();
Student student = new Student(id, name, age, address);
students.add(student);
System.out.println("学生信息添加成功!");
}
修改代码实现,id唯一,首先编写判断id
是否唯一的方法:
java">// 判断id在集合中是否存在
public static boolean containsStudentId(ArrayList<Student> students, String id){
// 循环遍历集合里面的每一个学生对象
// 拿到学生对象后,获取id并进行判断
for(Student student : students){
if(student.getId().equals(id)){
return true;
}
}
return false;
}
修改添加学生信息代码:
java">public static void addStudent(ArrayList<Student> students){
Student student = new Student();
Scanner scanner = new Scanner(System.in);
while(true){
System.out.print("请输入学生的id:");
String id = scanner.next();
boolean isContainId = containsStudentId(students, id);
if(isContainId){
// id已经存在,重新录入id
System.out.println("id已经存在,请重新录入:");
}else {
// id不存在,可以使用
student.setId(id);
break;
}
}
System.out.print("请输入学生的姓名:");
String name = scanner.next();
student.setName(name);
System.out.print("请输入学生的年龄:");
int age = scanner.nextInt();
student.setAge(age);
System.out.print("请输入学生的家庭住址:");
String address = scanner.next();
student.setAddress(address);
students.add(student);
System.out.println("学生信息添加成功!");
}
实现效果:
5、修改和删除
5.1 删除功能实现
实现代码:
java">// 删除学生
public static void deleteStudent(ArrayList<Student> students){
Scanner scanner = new Scanner(System.in);
System.out.print("请输入要删除的学生id:");
String id = scanner.next();
int index = getIndex(students, id);
if(index == -1){
System.out.println("学生id不存在,删除失败。");
}else {
students.remove(index);
System.out.println("学生【"+id+"】信息删除成功!");
}
}
实现效果:
5.2 修改功能实现
代码实现:
java">// 修改学生
public static void updateStudent(ArrayList<Student> students){
Scanner scanner = new Scanner(System.in);
System.out.print("请输入要修改的学生id:");
String id = scanner.next();
int index = getIndex(students, id);
if(index == -1){
System.out.println("学生id不存在,请重新输入:");
return;
}
Student student = students.get(index);
// 输入其他信息并修改
System.out.print("请输入要修改的学生姓名:");
String newName = scanner.next();
student.setName(newName);
System.out.print("请输入要修改的学生年龄:");
int newAge = scanner.nextInt();
student.setAge(newAge);
System.out.print("请输入要修改的学生家庭住址:");
String newAddress = scanner.next();
student.setAddress(newAddress);
System.out.println("学生信息修改成功。");
}
完整代码下载
分享文件:studentsystem.zip
链接:https://pan.xunlei.com/s/VOHm8TBUsOWhIalxfSEUYiZ-A1#
提取码:v87w
复制这段内容后打开迅雷,查看更方便