根据上学期自己在面向对象课程设计的题目,例如学生成绩管理系统,从控制台输入Student类的信息,包括学号、姓名、年龄,如输入错误,提示用户重新输入;实现保存对象到文件和从文件读出对象并显示。用java实现
时间: 2024-10-29 08:11:22 浏览: 17
面向对象编程:基于java控制台学生成绩管理系统
为了实现一个简单的学生成绩管理系统,你可以按照以下步骤来创建Java类和控制台应用:
1. **定义Student类**:
```java
import java.io.Serializable;
import java.util.Scanner;
class Student implements Serializable {
private String studentId;
private String name;
private int age;
// 构造函数
public Student(String id, String name, int age) {
this.studentId = id;
this.name = name;
this.age = age;
}
// getters and setters
public String getStudentId() { return studentId; }
public void setStudentId(String studentId) { this.studentId = studentId; }
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; }
@Override
public String toString() {
return "Student{" +
"studentId='" + studentId + '\'' +
", name='" + name + '\'' +
", age=" + age +
'}';
}
}
```
2. **主程序入口点**:
```java
public class Main {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
FileHandler fileHandler = new FileHandler();
while (true) {
System.out.println("请输入学生信息(按 q 退出):");
try {
String input = scanner.nextLine();
if (input.equalsIgnoreCase("q")) break;
String[] data = input.split(",");
Student student = new Student(data[0], data[1], Integer.parseInt(data[2]));
// 保存到文件
fileHandler.saveStudent(student);
// 从文件读取并显示
Student loadedStudent = fileHandler.loadStudent(student.getStudentId());
System.out.println("加载的学生信息: " + loadedStudent);
} catch (Exception e) {
System.out.println("输入错误,请重新输入。");
}
}
scanner.close();
}
}
// 文件处理类
class FileHandler {
// 保存和读取学生的静态方法
public static void saveStudent(Student student) {
// 实现保存到文件的逻辑,比如使用序列化功能
// 这里假设已经实现了写入文件的功能
try (ObjectOutputStream oos = new ObjectOutputStream(new FileOutputStream("students.txt"))) {
oos.writeObject(student);
} catch (IOException e) {
e.printStackTrace();
}
}
public static Student loadStudent(String id) {
// 实现从文件读取的逻辑,比如使用反序列化功能
// 这里假设已经实现了从文件读取并返回Student对象的方法
try (ObjectInputStream ois = new ObjectInputStream(new FileInputStream("students.txt"))) {
return (Student) ois.readObject();
} catch (IOException | ClassNotFoundException e) {
e.printStackTrace();
}
return null;
}
}
```
这个例子中,我们定义了一个`Student`类用于存储学生信息,`FileHandler`类负责文件操作。在`main`方法中,用户可以通过控制台输入数据,然后保存到文件并在需要时从文件中读取。
阅读全文