21xrx.com
2024-12-23 00:48:04 Monday
登录
文章检索 我的文章 写文章
Java 期末作业小项目实战:实现一个学生信息管理系统
2023-06-15 12:39:36 深夜i     --     --
Java 期末作业 小项目

Java 期末作业小项目是每位 Java 学生都会面临的挑战,这是一次机会,让你展示出你在课程中所学习的所有知识,并把它们应用于实际项目中。本文将带领你深入了解一个学生信息管理系统的开发过程,我们会从分析需求开始,到编写实现代码,最后测试调试完成一个可工作的小项目。

在此小项目中,我们需要以学生为对象,实现学生信息的录入、查询、修改和删除等功能,同时要求数据的可靠存储,保证系统的稳定可靠。首先,我们需要先分析我们的需求。

需求分析:

- 录入学生信息:学生姓名、学号、性别、年龄、所在院系等信息。

- 查询学生信息:根据学生姓名或者学号等关键字查询学生的详细信息,如若查不到,需给出无查询结果的提示。

- 修改学生信息:对学生的任意信息进行修改是否允许。

- 删除学生信息:根据学生学号删除学生信息,提供删除操作的确认提示。

- 保存信息:将录入的学生信息保存在本地文件中。

- 加载信息:从本地文件中加载之前录入的学生信息。

接下来,我们通过代码实现,一步步来实现以上需求:

1、创建项目和类

在 Eclipse 或者 IntelliJ IDEA 等 Java 开发工具中,创建一个新的 Java 项目,命名为 StudentManager。在该项目下创建两个 Java 类 Student 和 StudentManager。

2、完成 Student 类的编写

编写 Student 类,它应该包含以下属性和方法:

属性:

- String name:学生姓名

- int id:学生编号

- String gender:学生性别

- int age:学生年龄

- String department:学生所在院系

方法:

- 无参构造方法

- 带参构造方法

- get/set 方法

Student 类的代码如下:

public class Student {

  private String name;

  private int id;

  private String gender;

  private int age;

  private String department;

  public Student() {}

  public Student(String name, int id, String gender, int age, String department)

    this.name = name;

    this.id = id;

    this.gender = gender;

    this.age = age;

    this.department = department;

  // get/set 方法省略

  @Override

  public String toString() {

    return "学生信息 -> 姓名:" + name + ",学号:" + id + ",性别:" + gender + ",年龄:" + age + ",所在院系:" + department;

  }

}

3、完成 StudentManager 类的编写

编写 StudentManager 类,它应该包含以下属性和方法:

属性:

- Scanner input:用于从控制台接收用户输入。

- List list:用于保存多个学生信息。

方法:

- addStudent():添加一个学生信息。

- showStudent():显示一个学生的详细信息。

- showAllStudent():显示所有学生的详细信息。

- updateStudent():修改一个学生的信息。

- deleteStudent():删除一个学生的信息。

- saveStudent():将所有学生信息保存到本地文件中。

- loadStudent():从本地文件中加载所有学生信息。

StudentManager 类的代码如下:

import java.io.File;

import java.io.FileOutputStream;

import java.io.IOException;

import java.io.ObjectOutputStream;

import java.io.Serializable;

import java.util.ArrayList;

import java.util.List;

import java.util.Scanner;

public class StudentManager {

  private Scanner input = new Scanner(System.in);

  private List list = new ArrayList ();

  public void addStudent() {

    System.out.println("请输入学生信息:");

    System.out.print("姓名:");

    String name = input.next();

    System.out.print("学号:");

    int id = input.nextInt();

    System.out.print("性别:");

    String gender = input.next();

    System.out.print("年龄:");

    int age = input.nextInt();

    System.out.print("所在院系:");

    String department = input.next();

    Student student = new Student(name, id, gender, age, department);

    list.add(student);

    System.out.println("添加成功!");

  }

  public void showStudent() {

    System.out.print("请输入学生姓名或学号:");

    String searchKey = input.next();

    boolean flag = false;

    for(Student student : list) {

      if(student.getName().equals(searchKey) || student.getId() == Integer.parseInt(searchKey)) {

        System.out.println(student);

        flag = true;

        break;

      }

    }

    if(!flag) {

      System.out.println("查无此人!");

    }

  }

  public void showAllStudent() {

    if(list.size() == 0) {

      System.out.println("没有学生信息!");

      return;

    }

    System.out.println("所有学生信息如下:");

    for(Student student : list) {

      System.out.println(student);

    }

  }

  public void updateStudent() {

    System.out.print("请输入要修改的学生学号:");

    int searchKey = input.nextInt();

    boolean flag = false;

    for(Student student : list) {

      if(student.getId() == searchKey) {

        System.out.println("要修改的学生原信息如下:");

        System.out.println(student);

        System.out.print("请输入姓名(当前值为" + student.getName() + "):");

        String name = input.next();

        System.out.print("请输入性别(当前值为" + student.getGender() + "):");

        String gender = input.next();

        System.out.print("请输入年龄(当前值为" + student.getAge() + "):");

        int age = input.nextInt();

        System.out.print("请输入所在院系(当前值为" + student.getDepartment() + "):");

        String department = input.next();

        student.setName(name);

        student.setGender(gender);

        student.setAge(age);

        student.setDepartment(department);

        System.out.println("修改成功!");

        flag = true;

        break;

      }

    }

    if(!flag) {

      System.out.println("查无此人!");

    }

  }

  public void deleteStudent() {

    System.out.print("请输入要删除的学生学号:");

    int searchKey = input.nextInt();

    boolean flag = false;

    for(Student student : list) {

      if(student.getId() == searchKey) {

        System.out.println("要删除的学生信息如下:");

        System.out.println(student);

        System.out.print("是否确认删除?(Y/N):");

        String confirm = input.next();

        if(confirm.equals("Y") || confirm.equals("y")) {

          list.remove(student);

          System.out.println("删除成功!");

        } else {

          System.out.println("取消删除!");

        }

        flag = true;

        break;

      }

    }

    if(!flag) {

      System.out.println("查无此人!");

    }

  }

  public void saveStudent() {

    try (ObjectOutputStream outputStream = new ObjectOutputStream(new FileOutputStream(new File("students.data")))) {

      outputStream.writeObject(list);

      System.out.println("保存成功!");

    } catch (IOException e) {

      e.printStackTrace();

      System.out.println("保存失败!");

    }

  }

  public void loadStudent() {

    File file = new File("students.data");

    if(file.exists()) {

      try {

        list = (List )ObjectStreamUtil.readObject(file);

        System.out.println("加载成功!");

      } catch (IOException e) {

        e.printStackTrace();

        System.out.println("加载失败!");

      } catch (ClassNotFoundException e) {

        e.printStackTrace();

        System.out.println("加载失败!");

      }

    } else {

      System.out.println("文件不存在!");

    }

  }

}

4、编写主函数

在 main 函数中,我们只需要定义一个 StudentManager 对象,并通过菜单的形式调用 StudentManager 中的方法来操作学生信息,代码如下:

public class Main {

  public static void main(String[] args) {

    StudentManager manager = new StudentManager();

    while(true) {

      System.out.println("学生信息管理系统");

      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.println("0. 退出系统");

      System.out.println("====================================");

      System.out.print("请选择操作序号:");

      int num = manager.input.nextInt();

      switch(num) {

      case 1:

        manager.addStudent();

        break;

      case 2:

        manager.showStudent();

        break;

      case 3:

        manager.updateStudent();

        break;

      case 4:

        manager.deleteStudent();

        break;

      case 5:

        manager.showAllStudent();

        break;

      case 6:

        manager.saveStudent();

        break;

      case 7:

        manager.loadStudent();

        break;

      case 0:

        manager.input.close();

        System.exit(0);

      default:

        System.out.println("请输入正确的操作序号!");

      }

    }

  }

}

代码案例就以上述代码为主,对 Java 期末作业小项目逐一解析完成。通过详细的分析和代码实现,希望能够帮助你更好地理解 Java 期末作业小项目,更加轻松地完成任务。

  
  

评论区

{{item['qq_nickname']}}
()
回复
回复