Java 学生管理系统实战:从需求到代码实现
Java 学生管理系统实战:从需求到代码实现
1. 需求描述
本案例将开发一个简单的学生管理系统,主要功能如下:
- 添加学生:通过键盘录入学生信息,添加到集合中
- 删除学生:通过键盘录入要删除学生的学号,如果学号存在,将该学生对象从集合中删除;如果学号不存在,提示无法删除
- 修改学生:通过键盘录入要修改学生的学号,将该学生对象其他信息进行修改,修改完毕保存在集合中
- 查看学生:将集合中的学生对象信息进行展示
- 退出系统:结束程序
2. 实现步骤
2.1 定义学生类 Student
- 成员变量:
- 学号:'sid'
- 姓名:'name'
- 年龄:'age'
- 生日:'birthday'
- 构造方法:
- 无参构造
- 带四个参数的构造成员方法:每个成员变量对应给出 get/set 方法
2.2 学生管理系统主界面的搭建步骤
- 用输出语句完成主界面的编写
- 用 Scanner 实现键盘录入数据
- 用 switch 语句完成操作的选择
- 用循环完成再次回到主界面
2.3 学生管理系统的添加学生功能实现步骤
- 用键盘录入选择添加学生
- 定义一个方法,用于添加学生:
- 显示提示信息,提示要输入何种信息
- 键盘录入学生对象所需要的数据
- 创建学生对象,把键盘录入的数据赋值给学生对象的成员变量
- 将学生对象添加到集合中(保存)
- 给出添加成功提示(额外要求:学生学号不重复)
- 调用方法
2.4 学生管理系统的查看学生功能实现步骤
- 用键盘录入选择查看所有学生信息
- 定义一个方法,用于查看学生信息:
- 显示表头信息
- 将集合中数据取出按照对应格式显示学生信息,年龄显示补充“岁”
- 调用方法
2.5 学生管理系统的删除学生功能实现步骤
- 用键盘录入选择删除学生信息
- 定义一个方法,用于删除学生信息:
- 显示提示信息
- 键盘录入要删除的学生学号
- 调用 getIndex 方法,查找该学号在集合的索引
- 如果索引为 -1,提示信息不存在
- 如果索引不是 -1,调用 remove 方法删除并提示删除成功
- 调用方法
2.6 学生管理系统的修改学生功能实现步骤
- 用键盘录入选择修改学生信息
- 定义一个方法,用于修改学生信息:
- 显示提示信息
- 键盘录入要修改的学生学号
- 调用 getIndex 方法,查找该学号在集合的索引
- 如果索引为 -1,提示信息不存在
- 如果索引不是 -1,键盘录入要修改的学生信息
- 集合修改对应的学生信息
- 给出修改成功提示
- 调用方法
2.7 退出系统
使用 return; 退出程序
3. 代码实现
3.1 Student 类
public class Student {
private String sid;//学号
private String name;//姓名
private int age;//年龄
private String birthday;//生日
public Student() {}
public Student(String sid, String name, int age, String birthday) {
this.sid = sid;
this.name = name;
this.age = age;
this.birthday = birthday;
}
public String getSid() {
return sid;
}
public void setSid(String sid) {
this.sid = sid;
}
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 getBirthday() {
return birthday;
}
public void setBirthday(String birthday) {
this.birthday = birthday;
}
}
3.2 Main 类
import java.util.ArrayList;
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
ArrayList<Student> list = new ArrayList<>();
while (true) {
System.out.println("--------------欢迎来到学生管理系统--------------");
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);
String choice = sc.nextLine();
switch (choice) {
case "1":
addStudent(list);
break;
case "2":
deleteStudent(list);
break;
case "3":
updateStudent(list);
break;
case "4":
findAllStudent(list);
break;
case "5":
System.out.println("感谢使用学生管理系统,再见!");
return;
default:
System.out.println("输入有误,请重新输入!");
break;
}
}
}
//添加学生
public static void addStudent(ArrayList<Student> list) {
Scanner sc = new Scanner(System.in);
String sid;
while (true) {
System.out.println("请输入学生学号:");
sid = sc.nextLine();
boolean flag = isUsed(list, sid);
if (flag) {
System.out.println("该学号已存在,请重新输入!");
} else {
break;
}
}
System.out.println("请输入学生姓名:");
String name = sc.nextLine();
System.out.println("请输入学生年龄:");
int age = Integer.parseInt(sc.nextLine());
System.out.println("请输入学生生日:");
String birthday = sc.nextLine();
Student stu = new Student(sid, name, age, birthday);
list.add(stu);
System.out.println("添加成功!");
}
//判断学号是否已经被使用
public static boolean isUsed(ArrayList<Student> list, String sid) {
for (int i = 0; i < list.size(); i++) {
Student stu = list.get(i);
if (stu.getSid().equals(sid)) {
return true;
}
}
return false;
}
//删除学生
public static void deleteStudent(ArrayList<Student> list) {
Scanner sc = new Scanner(System.in);
System.out.println("请输入要删除的学生学号:");
String sid = sc.nextLine();
int index = getIndex(list, sid);//查找该学号在集合的索引
if (index == -1) {
System.out.println("该学号不存在!");
} else {
list.remove(index);
System.out.println("删除成功!");
}
}
//查找学生在集合中对应的索引
public static int getIndex(ArrayList<Student> list, String sid) {
for (int i = 0; i < list.size(); i++) {
Student stu = list.get(i);
if (stu.getSid().equals(sid)) {
return i;
}
}
return -1;
}
//修改学生信息
public static void updateStudent(ArrayList<Student> list) {
Scanner sc = new Scanner(System.in);
System.out.println("请输入要修改的学生学号:");
String sid = sc.nextLine();
int index = getIndex(list, sid);//查找该学号在集合的索引
if (index == -1) {
System.out.println("该学号不存在!");
} else {
System.out.println("请输入学生姓名:");
String name = sc.nextLine();
System.out.println("请输入学生年龄:");
int age = Integer.parseInt(sc.nextLine());
System.out.println("请输入学生生日:");
String birthday = sc.nextLine();
Student stu = new Student(sid, name, age, birthday);
list.set(index, stu);
System.out.println("修改成功!");
}
}
//查看所有学生信息
public static void findAllStudent(ArrayList<Student> list) {
System.out.println("学号\t姓名\t年龄\t生日");
for (int i = 0; i < list.size(); i++) {
Student stu = list.get(i);
System.out.println(stu.getSid() + "\t" + stu.getName() + "\t" + stu.getAge() + "岁\t" + stu.getBirthday());
}
}
}
原文地址: https://www.cveoy.top/t/topic/oCIs 著作权归作者所有。请勿转载和采集!