学生选课管理系统通过Java实现,包含学生、课程和选课三大模块,设计Student、Course和CourseManager类,支持添加学生与课程、选课退课及查询功能,适用于高校教务管理学习项目。

学生选课管理系统是高校教务管理中的常见需求,使用Java可以很好地实现这一系统。它通常包含学生、课程和选课三大核心模块。下面从设计思路到代码实现,逐步说明如何用Java构建一个简易但功能完整的学生选课管理系统。
一个基础的学生选课管理系统应具备以下功能:
我们定义三个主要类:Student(学生)、Course(课程)和CourseManager(选课管理器)。
Student 类
立即学习“Java免费学习笔记(深入)”;
表示学生的基本信息和所选课程列表。
class Student {
private String id;
private String name;
private List<Course> selectedCourses;
<pre class='brush:java;toolbar:false;'>public Student(String id, String name) {
this.id = id;
this.name = name;
this.selectedCourses = new ArrayList<>();
}
// getter 方法
public String getId() { return id; }
public String getName() { return name; }
public List<Course> getSelectedCourses() { return selectedCourses; }
@Override
public String toString() {
return "Student{id='" + id + "', name='" + name + "'}";
}}
Course 类
表示课程信息,包括容量控制。
class Course {
private String courseId;
private String courseName;
private int maxStudents;
private List<Student> enrolledStudents;
<pre class='brush:java;toolbar:false;'>public Course(String courseId, String courseName, int maxStudents) {
this.courseId = courseId;
this.courseName = courseName;
this.maxStudents = maxStudents;
this.enrolledStudents = new ArrayList<>();
}
public boolean isFull() {
return enrolledStudents.size() >= maxStudents;
}
// getter 方法
public String getCourseId() { return courseId; }
public String getCourseName() { return courseName; }
public List<Student> getEnrolledStudents() { return enrolledStudents; }
@Override
public String toString() {
return "Course{courseId='" + courseId + "', courseName='" + courseName +
"', enrolled=" + enrolledStudents.size() + "/" + maxStudents + "}";
}}
CourseManager 类
负责管理学生、课程以及选课逻辑。
class CourseManager {
private Map<String, Student> students = new HashMap<>();
private Map<String, Course> courses = new HashMap<>();
<pre class='brush:java;toolbar:false;'>public void addStudent(Student student) {
students.put(student.getId(), student);
}
public void addCourse(Course course) {
courses.put(course.getCourseId(), course);
}
public boolean selectCourse(String studentId, String courseId) {
Student student = students.get(studentId);
Course course = courses.get(courseId);
if (student == null || course == null) {
System.out.println("学生或课程不存在");
return false;
}
if (course.isFull()) {
System.out.println("课程 [" + course.getCourseName() + "] 已满");
return false;
}
if (student.getSelectedCourses().contains(course)) {
System.out.println("该学生已选此课程");
return false;
}
course.getEnrolledStudents().add(student);
student.getSelectedCourses().add(course);
System.out.println(student.getName() + " 成功选修 " + course.getCourseName());
return true;
}
public boolean dropCourse(String studentId, String courseId) {
Student student = students.get(studentId);
Course course = courses.get(courseId);
if (student == null || course == null) {
System.out.println("学生或课程不存在");
return false;
}
if (!student.getSelectedCourses().remove(course)) {
System.out.println("未选修此课程,无法退课");
return false;
}
course.getEnrolledStudents().remove(student);
System.out.println(student.getName() + " 成功退选 " + course.getCourseName());
return true;
}
public void printStudentCourses(String studentId) {
Student student = students.get(studentId);
if (student == null) {
System.out.println("学生不存在");
return;
}
System.out.println(student.getName() + " 已选课程:");
for (Course c : student.getSelectedCourses()) {
System.out.println(" - " + c.getCourseName());
}
}
public void printCourseStudents(String courseId) {
Course course = courses.get(courseId);
if (course == null) {
System.out.println("课程不存在");
return;
}
System.out.println(course.getCourseName() + " 的选课学生:");
for (Student s : course.getEnrolledStudents()) {
System.out.println(" - " + s.getName());
}
}}
在 main 方法中演示基本操作流程。
public class StudentCourseSystem {
public static void main(String[] args) {
CourseManager manager = new CourseManager();
<pre class='brush:java;toolbar:false;'> // 添加学生
Student s1 = new Student("S001", "张三");
Student s2 = new Student("S002", "李四");
manager.addStudent(s1);
manager.addStudent(s2);
// 添加课程
Course c1 = new Course("C101", "Java编程", 2);
Course c2 = new Course("C102", "数据库原理", 1);
manager.addCourse(c1);
manager.addCourse(c2);
// 选课
manager.selectCourse("S001", "C101");
manager.selectCourse("S002", "C101");
manager.selectCourse("S001", "C102");
// 查看信息
manager.printStudentCourses("S001");
manager.printCourseStudents("C101");
// 退课
manager.dropCourse("S001", "C101");
manager.printStudentCourses("S001");
}}
运行结果将显示学生选课、退课及查询过程,验证系统逻辑正确性。
当前实现为内存版,适合学习理解。实际项目中可考虑:
基本上就这些。这个系统结构清晰,便于理解和扩展,适合作为Java面向对象编程的练习项目。
以上就是如何用Java实现学生选课管理系统的详细内容,更多请关注php中文网其它相关文章!
每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号