Java实现学生信息管理系统(借助Array List)攻略
1.需求分析
本系统的目的是实现一个学生信息管理系统,主要功能包括:添加学生信息、查询学生信息、修改学生信息、删除学生信息。基于以上需求,我们考虑使用Java语言来实现这个系统,并借助Java集合框架中的ArrayList来实现学生信息的存储。
2.设计思路
在设计这个学生信息管理系统时,我们需要先定义一个学生类(Student),包括学生姓名(name)、学生年龄(age)、学生性别(sex)、学生学号(number)等基本信息。在设计该类时需要注意信息封装和封装方法的设计,以保障数据的安全性。接着,我们需要定义一个学生信息管理类(StudentManager),该类包含了与学生信息相关的方法,比如添加学生信息、查询学生信息、修改学生信息、删除学生信息。该类的另一个核心功能是将学生信息保存到ArrayList中,通过ArrayList操作学生信息。具体实现思路如下:
- 在Student类中定义私有成员变量name、age、sex、number,并对它们进行封装,提供相应的get/set方法;
- 在Student类中重载equals()方法,以保证当年龄、性别、学号都相同时,两个学生为同一个人;
- 在StudentManager类中定义一个私有成员变量stuList,该变量用于存储我们添加的所有学生信息;
- 在StudentManager类中定义相应的方法(addStudent, queryStudent, updateStudent, deleteStudent)来管理学生信息,同时将学生信息保存到ArrayList中;
- 在StudentManager类中定义一个静态方法displayStudents,该方法用于展示所有学生信息。需要注意,我们需要加上synchronized关键字来保证线程安全性。
3.代码实现
3.1 学生类
public class Student {
private String name; // 学生姓名
private int age; // 学生年龄
private String sex; // 学生性别
private String number;// 学生学号
public Student(String name, int age, String sex, String number) {
this.name = name;
this.age = age;
this.sex = sex;
this.number = number;
}
// 重载equals()方法
@Override
public boolean equals(Object obj) {
if (obj instanceof Student) {
Student student = (Student) obj;
return this.age == student.age && this.sex.equals(student.sex) && this.number.equals(student.number);
}
return false;
}
// 封装方法
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;
}
public String getNumber() {
return number;
}
public void setNumber(String number) {
this.number = number;
}
}
3.2 学生信息管理类
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
public class StudentManager {
private List<Student> stuList = new ArrayList<Student>();
private static int studentID = 1000;
// 添加学生信息
public boolean addStudent(Student student) {
synchronized (stuList) {
if (!stuList.contains(student)) {
student.setNumber(String.valueOf(studentID++));
return stuList.add(student);
}
return false;
}
}
// 查询学生信息
public Student queryStudent(String number) {
synchronized (stuList) {
Iterator<Student> iterator = stuList.iterator();
while (iterator.hasNext()) {
Student student = iterator.next();
if (student.getNumber().equals(number)) {
return student;
}
}
return null;
}
}
// 修改学生信息
public boolean updateStudent(Student student) {
synchronized (stuList) {
Iterator<Student> iterator = stuList.iterator();
while (iterator.hasNext()) {
Student temp = iterator.next();
if (temp.equals(student)) {
temp.setSex(student.getSex());
temp.setAge(student.getAge());
temp.setName(student.getName());
return true;
}
}
return false;
}
}
// 删除学生信息
public boolean deleteStudent(String number) {
synchronized (stuList) {
Iterator<Student> iterator = stuList.iterator();
while (iterator.hasNext()) {
Student student = iterator.next();
if (student.getNumber().equals(number)) {
iterator.remove();
return true;
}
}
return false;
}
}
// 查看所有学生信息
public static void displayStudents() {
synchronized (StudentManager.class) {
System.out.println("All students:");
Iterator<Student> iterator = stuList.iterator();
while (iterator.hasNext()) {
System.out.println(iterator.next());
}
}
}
}
4.测试示例
4.1 添加学生信息
Student student = new Student("Tom", 20, "男", "");
StudentManager manager = new StudentManager();
boolean isOk = manager.addStudent(student);
System.out.println(isOk);
System.out.println(student.getNumber());
输出结果为:
true
1000
4.2 按学号查询学生信息
StudentManager manager = new StudentManager();
Student student = manager.queryStudent("1000");
System.out.println(student.getName());
输出结果为:
Tom
4.3 修改学生信息
// 先按学号查询到需要修改的学生信息
StudentManager manager = new StudentManager();
Student student = manager.queryStudent("1000");
student.setName("Jack");
student.setAge(25);
boolean isOk = manager.updateStudent(student);
System.out.println(isOk);
输出结果为:
true
4.4 删除学生信息
StudentManager manager = new StudentManager();
boolean isOk = manager.deleteStudent("1000");
System.out.println(isOk);
输出结果为:
true
以上就是Java实现学生信息管理系统(借助Array List)的完整攻略和中的示例。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Java实现学生信息管理系统(借助Array List) - Python技术站