本案例在实现时使用了Java语言中的ArrayList集合来储存数据。我把整个项目分成了Student 、StudentSystem 两个部分,实现了一个简单的增删改查功能的学生信息管理系统。
Student类
public class Student {
private String id;
private String name;
private int age;
private String 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;
}
public Student(String id, String name, int age, String address) {
this.id = id;
this.name = name;
this.age = age;
this.address = address;
}
public Student() {
}
}
StudentSystem测试类
import java.util.ArrayList;
import java.util.Scanner;
public class StudentSystem {
public static void main(String[] args) {
ArrayList<Student> list = new ArrayList<>();
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);
String chose = sc.next();
switch (chose) {
case "1" -> addStudents(list);
case "2" -> deleteStudent(list);
case "3" -> modifyStudents(list);
case "4" -> queryStudent(list);
case "5" -> {
System.out.println("退出");
System.exit(0);//终止运行虚拟机
}
default -> System.out.println("无此选项");
}
}
}
//添加学生
public static void addStudents(ArrayList<Student> list) {
Student student = new Student();
Scanner sc = new Scanner(System.in);
System.out.println("请输入ID");
//确保id的唯一性
String id = null;
while (true) {
id = sc.next();
boolean flag = contains(list, id);
if (flag) {
//表示id已存在
System.out.println("ID已存在,添加失败,请重新输入");
} else {
//表示id不存在,添加数据
student.setId(id);
break;
}
}
System.out.println("请输入姓名");
String name = sc.next();
student.setName(name);
System.out.println("请输入年龄");
int age = sc.nextInt();
student.setAge(age);
System.out.println("请输入家庭住址");
String address = sc.next();
student.setAddress(address);
list.add(student);
System.out.println("学生信息添加成功");
}
//删除学生
public static void deleteStudent(ArrayList<Student> list) {
Scanner sc = new Scanner(System.in);
System.out.println("请输入删除用户ID");
String id = sc.next();
//id存在
boolean flag = contains(list, id);
if (flag) {
int index = getIndex(list, id);
list.remove(index);
System.out.println("删除成功");
//id不存在
} else {
System.out.println("删除失败,未查询到此id");
}
}
//修改学生
public static void modifyStudents(ArrayList<Student> list) {
Scanner sc = new Scanner(System.in);
System.out.println("请输入需修改学生ID");
String id = sc.next();
//id不存在
int index = getIndex(list, id);
if (index == -1) {
System.out.println("修改失败,未查询到此id");
}
//id存在
Student stu = list.get(index);
System.out.println("请输入需修改的学生姓名");
String name = sc.next();
stu.setName(name);
System.out.println("请输入需修改的学生年龄");
int age = sc.nextInt();
stu.setAge(age);
System.out.println("请输入需修改的学生家庭住址");
String address = sc.next();
stu.setAddress(address);
list.set(index, stu);
}
//查询学生
public static void queryStudent(ArrayList<Student> list) {
if (list.size() == 0) {
System.out.println("当前无学生信息,请添加再查询");
return;
}
System.out.println("ID\t姓名\t年龄\t家庭住址");
for (int i = 0; i < list.size(); i++) {
Student student = list.get(i);
System.out.println(student.getId() + "\t" + student.getName() + "\t" + student.getAge() + "\t" + student.getAddress());
}
}
//判断id的唯一性
public static boolean contains(ArrayList<Student> list, String id) {
// for (int i = 0; i < list.size(); i++) {
// if (id.equals(list.get(i).getId())) {
// //存在
// 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;
}
}
功能演示
主界面
添加学生
查询学生
删除学生
修改学生