Java 学生管理系统
需求:
采取控制台的方式去书写学生管理系统。
分析:
初始菜单:
"-------------欢迎来到学生管理系统----------------"
"1:添加学生"
"2:删除学生"
"3:修改学生"
"4:查询学生"
"5:退出"
"请输入您的选择:"
学生类:
属性:id、姓名、年龄、家庭住址
添加功能:
键盘录入每一个学生信息并添加,需要满足以下要求:
- id唯一
删除功能:
键盘录入要删除的学生id,需要满足以下要求:
- id存在删除
- id不存在,需要提示不存在,并回到初始菜单
修改功能:
键盘录入要修改的学生id,需要满足以下要求
- id存在,继续录入其他信息
- id不存在,需要提示不存在,并回到初始菜单
查询功能:
打印所有的学生信息,需要满足以下要求
- 如果没有学生信息,提示:当前无学生信息,请添加后再查询
- 如果有学生信息,需要按照以下格式输出。(不用过于纠结对齐的问题)
`
public class Student { //id、姓名、年龄、家庭住址 private String id; private String name; private int age; private String address; public Student(String id, String name, int age, String address) { this.id = id; this.name = name; this.age = age; this.address = address; } public Student() { } 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; } }
import java.util.ArrayList; import java.util.Scanner; public class StudentSystem { public static void main(String[] args) { ArrayList<Student> list = new ArrayList<>(); 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:退出"); Scanner sc = new Scanner(System.in); System.out.print("请输入您的选择:"); String choose = sc.next(); switch (choose) { case "1" -> addstudent(list); case "2" -> delstudent(list); case "3" -> updatestudent(list); case "4" -> querystudent(list); case "5" -> { System.out.println("正在退出……"); // break loop; System.exit(0);//停止虚拟机运行 } default -> System.out.println("没有这个选项!"); } } } //添加学生 public static void addstudent(ArrayList<Student> list) { Student s = new Student(); Scanner sc = new Scanner(System.in); String id = null; while (true) { System.out.print("请输入id:"); id = sc.next(); if (contains(list, id)) { System.out.println("该id已经存在!"); } else { s.setId(id); break; } } System.out.print("请输入姓名:"); String name = sc.next(); s.setName(name); System.out.print("请输入年龄:"); int age = sc.nextInt(); s.setAge(age); System.out.print("请输入家庭住址:"); String address = sc.next(); s.setAddress(address); list.add(s); System.out.println("学生信息添加成功!"); } //删除学生 public static void delstudent(ArrayList<Student> list) { Scanner sc = new Scanner(System.in); System.out.print("请输入需要删除的学生的id:"); String id = sc.next(); int index = getIndex(list, id); if (index >= 0) { list.remove(index); System.out.println("删除成功!"); } else { System.out.println("该id不存在,删除失败!"); } } //修改学生 public static void updatestudent(ArrayList<Student> list) { Scanner sc = new Scanner(System.in); System.out.println("请输入需要修改的学生id:"); String id = sc.next(); int index = getIndex(list, id); if (index == -1) { System.out.println("该id不存在,修改失败!"); return; } Student s = list.get(index); System.out.print("请输入需要修改学生的姓名:"); String newName = sc.next(); s.setName(newName); System.out.print("请输入需要修改学生的年龄:"); int newAge = sc.nextInt(); s.setAge(newAge); System.out.print("请输入需要修改学生的家庭住址:"); String newAddress = sc.next(); s.setAddress(newAddress); } //查询学生 public static void querystudent(ArrayList<Student> list) { if (list.size() == 0) { System.out.println("当前无学生信息,请添加后再查询"); return; } System.out.println("id\t\t姓名\t年龄\t家庭住址"); for (int i = 0; i < list.size(); i++) { Student st = list.get(i); System.out.println(st.getId() + "\t\t" + st.getName() + "\t" + st.getAge() + "\t" + st.getAddress()); } } // 判断id是否在集合中 public static boolean contains(ArrayList<Student> list, String id) { /*for (int i = 0; i < list.size(); i++) { if (list.get(i).getId().equals(id)) { return true; } } return false;*/ return getIndex(list, id) >= 0; } //通过id获取索引 public static int getIndex(ArrayList<Student> list, String id) { for (int i = 0; i < list.size(); i++) { if (list.get(i).getId().equals(id)) { return i; } } return -1; } }
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?