项目介绍
本项目是JavaSE第一阶段的实践项目,旨在实现学生对象在数组中的增删改查功能。这是一个基础的管理系统,您可以在此基础上发挥自己的想象力,添加更多功能,进行完善和扩展。不过,本项目的核心依然是对前9天知识点的实践应用。
项目展示
以下是学生管理系统的主要功能展示:
2.1 添加功能
2.2 查看功能
2.3 修改功能
2.4 删除功能
2.5 退出功能
功能实现
3.1 JavaBean - Student
以下是Student
类的定义,它是一个简单的JavaBean,用于封装学生的信息。
public class Student {
private int id; // 学号
private String name; // 姓名
private int age; // 年龄
private String sex; // 性别
public Student() {
}
public Student(int id, String name, int age, String sex) {
this.id = id;
this.name = name;
this.age = age;
this.sex = sex;
}
// Getters and Setters
public int getId() {
return id;
}
public void setId(int 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 getSex() {
return sex;
}
public void setSex(String sex) {
this.sex = sex;
}
}
3.2 启动项目 - Test01
以下是项目的启动类Test01
,它负责启动学生管理系统。
public class Test01 {
public static void main(String[] args) {
new StudentView().start();
}
}
3.3 操作页面 - StudentView
StudentView
类是学生管理系统的操作页面,它负责接收用户输入,并调用相应的功能方法。
public class StudentView {
Scanner sc = new Scanner(System.in); // 用于接收用户输入
Student[] students = new Student[50]; // 存储学生对象的数组,最大容量50
int count = 0; // 记录当前存储了多少个学生对象
Student[] newStudents = new Student[students.length - 1]; // 用于删除操作的新数组
public void start() {
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("请选择(1-5):");
int num = sc.nextInt();
System.out.println("--------------------------------");
switch (num) {
case 1:
addStudent();
break;
case 2:
updateStudent();
break;
case 3:
deleteStudent();
break;
case 4:
findAllStudent();
break;
case 5:
System.out.println("退出功能");
return;
}
}
}
private void findAllStudent() {
// 查看功能实现
}
private void deleteStudent() {
// 删除功能实现
}
private void updateStudent() {
// 修改功能实现
}
private void addStudent() {
// 添加功能实现
}
}
3.4 工具类 - ArrayUtils
ArrayUtils
类提供了一个静态方法,用于根据学生ID查找学生在数组中的索引位置。
public class ArrayUtils {
private ArrayUtils() {
}
public static int findIndexById(Student[] students, int id, int count) {
for (int i = 0; i < count; i++) {
if (id == students[i].getId()) {
return i;
}
}
return -1;
}
}
3.5 添加功能 - addStudent
以下是添加学生信息的具体实现。
private void addStudent() {
System.out.println("请您输入学生学号:");
int id = sc.nextInt();
System.out.println("请您输入学生姓名:");
String name = sc.next();
System.out.println("请您输入学生年龄:");
int age = sc.nextInt();
System.out.println("请您输入学生性别:");
String sex = sc.next();
Student student = new Student(id, name, age, sex);
students[count] = student;
count++;
System.out.println("添加成功!!!");
}
3.6 查看功能 - findAllStudent
以下是查看所有学生信息的具体实现。
private void findAllStudent() {
System.out.println("学号\t姓名\t年龄\t性别");
for (int j = 0; j < count - 1; j++) {
for (int i = 0; i < count - 1 - j; i++) {
if (students[i].getId() > students[i + 1].getId()) {
Student temp = students[i];
students[i] = students[i + 1];
students[i + 1] = temp;
}
}
}
if (count == 0) {
System.out.println("对不起,现在班级没有学生,待开班.........");
} else {
for (int i = 0; i < count; i++) {
System.out.println(students[i].getId() + "\t" + students[i].getName() + "\t" + students[i].getAge() + "\t" + students[i].getSex());
}
}
}
3.7 修改功能 - updateStudent
以下是修改学生信息的具体实现。
private void updateStudent() {
System.out.println("请您输入要修改的学生学号:");
int id = sc.nextInt();
int updateIndex = ArrayUtils.findIndexById(students, id, count);
System.out.println("请您输入学生姓名:");
String name = sc.next();
System.out.println("请您输入学生年龄:");
int age = sc.nextInt();
System.out.println("请您输入学生性别:");
String sex = sc.next();
Student student = new Student(id, name, age, sex);
students[updateIndex] = student;
System.out.println("修改成功!!!");
}
3.8 删除功能 - deleteStudent
以下是删除学生信息的具体实现。
private void deleteStudent() {
System.out.println("请您输入要删除的学生学号:");
int id = sc.nextInt();
int removeIndex = ArrayUtils.findIndexById(students, id, count);
System.arraycopy(students, 0, newStudents, 0, removeIndex);
System.arraycopy(students, removeIndex + 1, newStudents, removeIndex, students.length - removeIndex - 1);
students = newStudents;
count--;
System.out.println("删除成功");
}
3.9 退出功能 - switch
以下是退出系统的实现。
case 5:
System.out.println("是否退出?按0为退出/按9为取消");
int key = sc.nextInt();
if (key == 0) {
System.out.println("再见,欢迎再来");
return;
} else if (key == 9) {
continue;
}