学生选课系统部分Java代码
时间: 2023-08-30 20:12:32 浏览: 48
好的,下面是一个简单的学生选课系统的Java代码示例,仅供参考:
```java
// 学生类
public class Student {
private String name; // 学生姓名
private String id; // 学生ID
private List<Course> courses; // 学生已选课程列表
// 构造方法
public Student(String name, String id) {
this.name = name;
this.id = id;
this.courses = new ArrayList<Course>();
}
// 选课方法
public void selectCourse(Course course) {
// 判断是否已选该课程
if (courses.contains(course)) {
System.out.println("您已经选过该课程!");
return;
}
// 判断是否满足课程先修条件
if (!course.isValid(this)) {
System.out.println("您未满足该课程的先修条件!");
return;
}
// 判断课程容量是否已满
if (course.isFull()) {
System.out.println("该课程已经选满!");
return;
}
// 添加到已选课程列表
courses.add(course);
// 在课程中添加该学生
course.addStudent(this);
System.out.println("选课成功!");
}
// 查询成绩方法
public void queryGrade(Course course) {
if (!courses.contains(course)) {
System.out.println("您未选该课程,无法查询成绩!");
return;
}
System.out.println(course.getName() + "成绩为:" + course.getGrade(this));
}
// getter 和 setter 方法
// ...
}
// 课程类
public class Course {
private String name; // 课程名称
private String id; // 课程编号
private Teacher teacher; // 授课老师
private List<Student> students; // 已选该课程的学生列表
private int capacity; // 课程容量
private Set<Course> prerequisites; // 先修课程列表
private Map<Student, Double> grades; // 学生成绩
// 构造方法
public Course(String name, String id, Teacher teacher, int capacity) {
this.name = name;
this.id = id;
this.teacher = teacher;
this.capacity = capacity;
this.students = new ArrayList<Student>();
this.prerequisites = new HashSet<Course>();
this.grades = new HashMap<Student, Double>();
}
// 添加先修课程方法
public void addPrerequisite(Course course) {
prerequisites.add(course);
}
// 判断是否满足先修条件方法
public boolean isValid(Student student) {
for (Course prerequisite : prerequisites) {
if (!student.getCourses().contains(prerequisite)) {
return false;
}
}
return true;
}
// 判断课程容量是否已满方法
public boolean isFull() {
return students.size() >= capacity;
}
// 添加学生方法
public void addStudent(Student student) {
students.add(student);
}
// 查询学生成绩方法
public Double getGrade(Student student) {
return grades.get(student);
}
// getter 和 setter 方法
// ...
}
// 授课教师类
public class Teacher {
private String name; // 教师姓名
private String id; // 教师ID
// 构造方法
public Teacher(String name, String id) {
this.name = name;
this.id = id;
}
// getter 和 setter 方法
// ...
}
```
以上是一个简单的学生选课系统的Java代码示例,其中包含了学生类、课程类和授课教师类等基本类,以及选课、查询成绩等方法。当然,这只是一个简单的示例,实际的学生选课系统还需要根据具体需求进行设计和开发。