项目名称:学生信息管理系统

1. 项目简介

学生信息管理系统是一个基于Java的应用程序,用于管理学生的个人信息、课程信息和成绩信息。该系统允许管理员添加、删除、修改和查询学生信息,以及记录和计算学生的课程成绩。通过该系统,管理员可以方便地管理学生的信息,并提供实时的数据分析和报告。

2. 系统需求

本项目的主要功能和需求如下:

  • 管理员功能:
    • 添加学生信息:管理员可以添加学生的个人信息,包括学号、姓名、性别、出生日期、联系方式等。
    • 删除学生信息:管理员可以根据学号删除指定学生的个人信息。
    • 修改学生信息:管理员可以根据学号修改指定学生的个人信息。
    • 查询学生信息:管理员可以根据学号或姓名查询学生的个人信息。
    • 记录课程成绩:管理员可以录入学生的课程成绩,包括课程名称、学分、成绩等。
    • 统计学生成绩:管理员可以根据课程名称或学号统计学生的课程成绩,计算平均成绩和排名等。
  • 学生功能:
    • 查询个人信息:学生可以根据学号查询自己的个人信息。
    • 查询课程成绩:学生可以根据学号查询自己的课程成绩和平均成绩。

3. 系统设计

3.1 类图

classDiagram
    class Person {
        -id: String
        -name: String
        -gender: String
        -birthDate: Date
        -contact: String
        +Person(id: String, name: String, gender: String, birthDate: Date, contact: String)
        +getId(): String
        +getName(): String
        +getGender(): String
        +getBirthDate(): Date
        +getContact(): String
        +toString(): String
    }
    
    class Student {
        -studentId: String
        +Student(id: String, name: String, gender: String, birthDate: Date, contact: String, studentId: String)
        +getStudentId(): String
        +toString(): String
    }
    
    class Course {
        -courseName: String
        -credit: int
        -grade: double
        +Course(name: String, credit: int, grade: double)
        +getCourseName(): String
        +getCredit(): int
        +getGrade(): double
        +toString(): String
    }
    
    class StudentManagementSystem {
        -students: List<Student>
        +addStudent(student: Student)
        +deleteStudent(studentId: String)
        +modifyStudent(studentId: String, newStudent: Student)
        +queryStudentById(studentId: String): Student
        +queryStudentByName(studentName: String): List<Student>
        +recordGrade(studentId: String, course: Course)
        +calculateAverageGrade(studentId: String): double
        +calculateRanking(studentId: String): int
    }
    
    Person <|-- Student
    Student "1" *-- "*" Course
    Student "1" *-- "1" StudentManagementSystem

3.2 代码示例

下面是部分核心代码示例:

import java.util.ArrayList;
import java.util.List;

public class Person {
    private String id;
    private String name;
    private String gender;
    private Date birthDate;
    private String contact;
    
    public Person(String id, String name, String gender, Date birthDate, String contact) {
        this.id = id;
        this.name = name;
        this.gender = gender;
        this.birthDate = birthDate;
        this.contact = contact;
    }
    
    public String getId() {
        return id;
    }
    
    public String getName() {
        return name;
    }
    
    public String getGender() {
        return gender;
    }
    
    public Date getBirthDate() {
        return birthDate;
    }
    
    public String getContact() {
        return contact;
    }
    
    @Override
    public String toString() {
        return "Person [id=" + id + ", name=" + name + ", gender=" + gender
                + ", birthDate=" + birthDate + ", contact=" + contact + "]";
    }
}

public class Student extends Person {
    private String studentId;
    
    public Student(String id, String name, String gender, Date birthDate, String contact, String studentId) {
        super(id, name, gender, birthDate, contact);
        this.studentId = student