Java 基础项目:学生成绩管理系统

一、项目介绍

本项目使用 Java 语言开发一个简单的学生成绩管理系统,实现以下功能:

添加学生信息:  包括学号、姓名、性别、年龄等。
录入学生成绩:  包括语文、数学、英语等科目成绩。
查询学生信息:  根据学号或姓名查询学生信息和成绩。
修改学生信息:  修改学生的基本信息或成绩。
删除学生信息:  从系统中删除学生信息。
显示所有学生信息:  以表格形式显示所有学生的信息和成绩。

二、项目实操代码

1. 学生类 (Student.java) 

public class Student {
    private String id; // 学号
    private String name; // 姓名
    private String gender; // 性别
    private int age; // 年龄
    private double chinese; // 语文成绩
    private double math; // 数学成绩
    private double english; // 英语成绩

    // 构造方法
    public Student(String id, String name, String gender, int age) {
        this.id = id;
        this.name = name;
        this.gender = gender;
        this.age = age;
    }

    // getter 和 setter 方法
    public String getId() {
        return id;
    }

    public void setId(String id) {
        this.id = id;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public String getGender() {
        return gender;
    }

    public void setGender(String gender) {
        this.gender = gender;
    }

    public int getAge() {
        return age;
    }

    public void setAge(int age) {
        this.age = age;
    }

    public double getChinese() {
        return chinese;
    }

    public void setChinese(double chinese) {
        this.chinese = chinese;
    }

    public double getMath() {
        return math;
    }

    public void setMath(double math) {
        this.math = math;
    }

    public double getEnglish() {
        return english;
    }

    public void setEnglish(double english) {
        this.english = english;
    }

    // 计算总分
    public double getTotalScore() {
        return chinese + math + english;
    }

    // 计算平均分
    public double getAverageScore() {
        return getTotalScore() / 3;
    }

    // 重写 toString 方法
    @Override
    public String toString() {
        return "学号:" + id + "\t姓名:" + name + "\t性别:" + gender + "\t年龄:" + age +
                "\t语文:" + chinese + "\t数学:" + math + "\t英语:" + english +
                "\t总分:" + getTotalScore() + "\t平均分:" + getAverageScore();
    }
}

2. 学生管理系统类 (StudentManagementSystem.java)

import java.util.ArrayList;
import java.util.Scanner;

public class StudentManagementSystem {
    private ArrayList studentList = new ArrayList<>(); // 学生列表

    // 添加学生信息
    public void addStudent() {
        Scanner scanner = new Scanner(System.in);
        System.out.println("请输入学号:");
        String id = scanner.nextLine();
        System.out.println("请输入姓名:");
        String name = scanner.nextLine();
        System.out.println("请输入性别:");
        String gender = scanner.nextLine();
        System.out.println("请输入年龄:");
        int age = scanner.nextInt();
        studentList.add(new Student(id, name, gender, age));
        System.out.println("添加成功!");
    }

    // 录入学生成绩
    public void inputScore() {
        Scanner scanner = new Scanner(System.in);
        System.out.println("请输入要录入成绩的学生学号:");
        String id = scanner.nextLine();
        for (Student student : studentList) {
            if (student.getId().equals(id)) {
                System.out.println("请输入语文成绩:");
                double chinese = scanner.nextDouble();
                System.out.println("请输入数学成绩:");
                double math = scanner.nextDouble();
                System.out.println("请输入英语成绩:");
                double english = scanner.nextDouble();
                student.setChinese(chinese);
                student.setMath(math);
                student.setEnglish(english);
                System.out.println("成绩录入成功!");
                return;
            }
        }
        System.out.println("未找到该学生!");
    }

    // 查询学生信息
    public void queryStudent() {
        Scanner scanner = new Scanner(System.in);
        System.out.println("请输入要查询的学生学号或姓名:");
        String keyword = scanner.nextLine();
        for (Student student : studentList) {
            if (student.getId().equals(keyword) || student.getName().equals(keyword)) {
                System.out.println(student);
                return;
            }
        }
        System.out.println("未找到该学生!");
    }

    // 修改学生信息
    public void modifyStudent() {
        Scanner scanner = new Scanner(System.in);
        System.out.println("请输入要修改的学生学号:");
        String id = scanner.nextLine();
        for (Student student : studentList) {
            if (student.getId().equals(id)) {
                System.out.println("请输入新的姓名:");
                String name = scanner.nextLine();
                System.out.println("请输入新的性别:");
                String gender = scanner.nextLine();
                System.out.println("请输入新的年龄:");
                int age = scanner.nextInt();
                student.setName(name);
                student.setGender(gender);
                student.setAge(age);
                System.out.println("修改成功!");
                return;
            }
        }
        System.out.println("未找到该学生!");
    }

    // 删除学生信息
    public void deleteStudent() {
        Scanner scanner = new Scanner(System.in);
        System.out.println("请输入要删除的学生学号:");
        String id = scanner.nextLine();
        for (Student student : studentList) {
            if (student.getId().equals(id)) {
                studentList.remove(student);
                System.out.println("删除成功!");
                return;
            }
        }
        System.out.println("未找到该学生!");
    }

    // 显示所有学生信息
    public void showAllStudents() {
        if (studentList.isEmpty()) {
            System.out.println("暂无学生信息!");
        } else {
            for (Student student : studentList) {
                System.out.println(student);
            }
        }
    }

    // 主菜单
    public void menu() {
        Scanner scanner = new Scanner(System.in);
        while (true) {
            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("0. 退出系统");
            System.out.println("请输入您的选择:");
            int choice = scanner.nextInt();
            switch (choice) {
                case 1:
                    addStudent();
                    break;
                case 2:
                    inputScore();
                    break;
                case 3:
                    queryStudent();
                    break;
                case 4:
                    modifyStudent();
                    break;
                case 5:
                    deleteStudent();
                    break;
                case 6:
                    showAllStudents();
                    break;
                case 0:
                    System.out.println("感谢使用!");
                    return;
                default:
                    System.out.println("输入错误,请重新输入!");
            }
        }
    }

    public static void main(String[] args) {
        StudentManagementSystem system = new StudentManagementSystem();
        system.menu();
    }
}

三、项目运行

1. 将代码复制到两个 Java 文件中:`Student.java` 和 `StudentManagementSystem.java`。
2. 使用 `javac` 命令编译代码:`javac Student.java StudentManagementSystem.java`。
3. 使用 `java` 命令运行程序:`java StudentManagementSystem`。
4. 按照提示进行操作,体验学生成绩管理系统的功能。

四、项目扩展

可以将学生信息保存到文件中,实现数据的持久化。
可以添加排序功能,例如按总分排序、按姓名排序等。
可以添加图形用户界面 (GUI),提升用户体验。

五、总结

本项目是一个简单的 Java 基础项目,涵盖了 Java 语言的基本语法、面向对象编程、集合框架等知识点。通过完成本项目,您可以巩固 Java 基础知识,并初步了解如何使用 Java 开发简单的应用程序。

你可能感兴趣的:(java)