Java 学生管理系统 V1.0:使用基础技术、面向对象和集合实现
以下是一个基于 Java 基础技术、面向对象技术、集合(ArrayList)、IO 流等技术的学生管理系统 V1.0 的示例实现:
import java.io.*;
import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;
public class StudentManagementSystem {
private List<Student> students;
private Scanner scanner;
public StudentManagementSystem() {
students = new ArrayList<>();
scanner = new Scanner(System.in);
}
public void start() {
boolean running = true;
while (running) {
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('6. 导出学员信息');
System.out.println('7. 退出系统');
System.out.print('请选择操作:');
int choice = scanner.nextInt();
switch (choice) {
case 1:
addStudent();
break;
case 2:
deleteStudent();
break;
case 3:
modifyStudent();
break;
case 4:
showAllStudents();
break;
case 5:
importStudents();
break;
case 6:
exportStudents();
break;
case 7:
running = false;
break;
default:
System.out.println('无效操作,请重新选择。');
}
}
}
private void addStudent() {
System.out.println('添加学员');
System.out.print('姓名:');
String name = scanner.next();
System.out.print('年龄:');
int age = scanner.nextInt();
System.out.print('性别:');
String sex = scanner.next();
System.out.print('学号:');
long sid = scanner.nextLong();
System.out.print('成绩:');
double grade = scanner.nextDouble();
if (findStudent(sid) != null) {
System.out.println('学号已存在,无法添加。');
return;
}
Student student = new Student(name, age, sex, sid, grade);
students.add(student);
System.out.println('添加成功。');
}
private void deleteStudent() {
System.out.println('删除学员');
System.out.print('学号:');
long sid = scanner.nextLong();
Student student = findStudent(sid);
if (student == null) {
System.out.println('学号不存在,无法删除。');
return;
}
students.remove(student);
System.out.println('删除成功。');
}
private void modifyStudent() {
System.out.println('修改学员信息');
System.out.print('学号:');
long sid = scanner.nextLong();
Student student = findStudent(sid);
if (student == null) {
System.out.println('学号不存在,无法修改。');
return;
}
System.out.print('姓名(原始值:' + student.getName() + '):');
String name = scanner.next();
System.out.print('年龄(原始值:' + student.getAge() + '):');
int age = scanner.nextInt();
System.out.print('性别(原始值:' + student.getSex() + '):');
String sex = scanner.next();
System.out.print('成绩(原始值:' + student.getGrade() + '):');
double grade = scanner.nextDouble();
student.setName(name);
student.setAge(age);
student.setSex(sex);
student.setGrade(grade);
System.out.println('修改成功。');
}
private void showAllStudents() {
System.out.println('所有学员信息');
System.out.println('姓名 年龄 性别 学号 成绩');
for (Student student : students) {
System.out.println(student.getName() + '\t' + student.getAge() + '\t' +
student.getSex() + '\t' + student.getSid() + '\t' + student.getGrade());
}
}
private void importStudents() {
System.out.println('导入学员信息');
System.out.print('请输入文件路径:');
String filePath = scanner.next();
try (ObjectInputStream ois = new ObjectInputStream(new FileInputStream(filePath))) {
students = (List<Student>) ois.readObject();
System.out.println('导入成功。');
} catch (IOException | ClassNotFoundException e) {
System.out.println('导入失败:' + e.getMessage());
}
}
private void exportStudents() {
System.out.println('导出学员信息');
System.out.print('请输入文件路径:');
String filePath = scanner.next();
try (ObjectOutputStream oos = new ObjectOutputStream(new FileOutputStream(filePath))) {
oos.writeObject(students);
System.out.println('导出成功。');
} catch (IOException e) {
System.out.println('导出失败:' + e.getMessage());
}
}
private Student findStudent(long sid) {
for (Student student : students) {
if (student.getSid() == sid) {
return student;
}
}
return null;
}
public static void main(String[] args) {
StudentManagementSystem system = new StudentManagementSystem();
system.start();
}
}
class Student implements Serializable {
private String name;
private int age;
private String sex;
private long sid;
private double grade;
public Student(String name, int age, String sex, long sid, double grade) {
this.name = name;
this.age = age;
this.sex = sex;
this.sid = sid;
this.grade = grade;
}
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 long getSid() {
return sid;
}
public void setSid(long sid) {
this.sid = sid;
}
public double getGrade() {
return grade;
}
public void setGrade(double grade) {
this.grade = grade;
}
}
此示例实现了一个简单的学生管理系统,提供了添加学生、删除学生、修改学生信息、显示所有学生信息、导入学生信息和导出学生信息等功能。可以根据需要进行扩展和修改。
原文地址: https://www.cveoy.top/t/topic/qdBk 著作权归作者所有。请勿转载和采集!