学生管理系统的需求文档
学生管理系统
需求:
采取控制台的方式去书写学生管理系统。
分析:
初始菜单:
"-----------------------------------------------"
"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;
}
}
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 三行代码完成国际化适配,妙~啊~
· .NET Core 中如何实现缓存的预热?