用JAVA实现:新建立一个 StudentSaveTest类建立学生信息,新建一个StudentQueryTest 类查看并打印全部学生信息,新建一个 StudentDeleteTest删除学号为1的学生信息,新建一个 StudentUpdateTest 类修改学号为1的学生信息为19岁,最后在StudentQueryTest类查看所有学生信息。通过磁盘持久化数据。
时间: 2024-03-27 20:40:51 浏览: 75
java代码-定义一个学生类,使用LinkedList对学生类进行管理,执行添加操作,并打印数据 ;曾子龙
好的,这是一个比较完整的题目,需要涉及到Java的文件读写操作和面向对象编程思想。我会给你提供一个大致的实现思路,你可以根据自己的理解和需求进行一定的修改。
首先,我们需要定义一个学生类,包含学号、姓名、年龄等属性和相应的 getter 和 setter 方法。这里假设学号是 int 类型,其他属性都是字符串类型。
```java
public class Student {
private int id;
private String name;
private String age;
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 String getAge() {
return age;
}
public void setAge(String age) {
this.age = age;
}
}
```
接下来,我们需要实现一个学生信息保存类,将学生信息保存到文件中。这里使用 ObjectOutputStream 进行对象序列化并写入文件,文件名为 students.dat。保存学生信息时,可以考虑将学生对象存放在一个 List 中,这样方便后续的查询、修改和删除操作。
```java
import java.io.*;
import java.util.ArrayList;
import java.util.List;
public class StudentSaveTest {
public static void main(String[] args) {
List<Student> students = new ArrayList<>();
Student student1 = new Student();
student1.setId(1);
student1.setName("张三");
student1.setAge("18");
students.add(student1);
Student student2 = new Student();
student2.setId(2);
student2.setName("李四");
student2.setAge("19");
students.add(student2);
try {
ObjectOutputStream oos = new ObjectOutputStream(new FileOutputStream("students.dat"));
oos.writeObject(students);
oos.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
```
接下来,我们需要实现一个学生信息查询类,可以读取 students.dat 文件中的学生信息并打印出来。这里使用 ObjectInputStream 进行对象反序列化并读取文件中的学生信息。
```java
import java.io.*;
import java.util.List;
public class StudentQueryTest {
public static void main(String[] args) {
try {
ObjectInputStream ois = new ObjectInputStream(new FileInputStream("students.dat"));
List<Student> students = (List<Student>) ois.readObject();
ois.close();
for (Student student : students) {
System.out.println("学号:" + student.getId() + ",姓名:" + student.getName() + ",年龄:" + student.getAge());
}
} catch (IOException | ClassNotFoundException e) {
e.printStackTrace();
}
}
}
```
接下来,我们需要实现一个学生信息删除类,可以删除学号为 1 的学生信息。这里需要先读取 students.dat 文件中的学生信息,然后找到学号为 1 的学生并从 List 中删除,最后再将修改后的学生信息重新写入文件中。
```java
import java.io.*;
import java.util.List;
public class StudentDeleteTest {
public static void main(String[] args) {
try {
ObjectInputStream ois = new ObjectInputStream(new FileInputStream("students.dat"));
List<Student> students = (List<Student>) ois.readObject();
ois.close();
for (Student student : students) {
if (student.getId() == 1) {
students.remove(student);
break;
}
}
ObjectOutputStream oos = new ObjectOutputStream(new FileOutputStream("students.dat"));
oos.writeObject(students);
oos.close();
} catch (IOException | ClassNotFoundException e) {
e.printStackTrace();
}
}
}
```
最后,我们需要实现一个学生信息修改类,可以将学号为 1 的学生年龄修改为 19 岁。这里同样需要先读取 students.dat 文件中的学生信息,然后找到学号为 1 的学生并修改其年龄属性,最后再将修改后的学生信息重新写入文件中。
```java
import java.io.*;
import java.util.List;
public class StudentUpdateTest {
public static void main(String[] args) {
try {
ObjectInputStream ois = new ObjectInputStream(new FileInputStream("students.dat"));
List<Student> students = (List<Student>) ois.readObject();
ois.close();
for (Student student : students) {
if (student.getId() == 1) {
student.setAge("19");
break;
}
}
ObjectOutputStream oos = new ObjectOutputStream(new FileOutputStream("students.dat"));
oos.writeObject(students);
oos.close();
} catch (IOException | ClassNotFoundException e) {
e.printStackTrace();
}
}
}
```
以上就是一个简单的学生信息管理系统的实现思路,你可以根据自己的需求和实际情况进行修改和完善。
阅读全文