用java写一个学生选课系统,要能查询学生状况
时间: 2023-12-09 13:46:14 浏览: 81
好的,一个完整的学生选课系统需要包含学生管理模块、课程管理模块、选课模块和成绩管理模块。下面是一个简单的学生选课系统的 Java 代码示例,包含学生管理模块和选课模块,并且可以查询学生选课情况:
```java
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.Scanner;
public class StudentCourseSystem {
// 存储所有学生的列表
private List<Student> students;
// 存储所有课程的列表
private List<Course> courses;
// 存储学生选课情况的字典
private Map<Student, List<Course>> selections;
public StudentCourseSystem() {
students = new ArrayList<>();
courses = new ArrayList<>();
selections = new HashMap<>();
}
// 添加学生
public void addStudent(Student student) {
students.add(student);
}
// 添加课程
public void addCourse(Course course) {
courses.add(course);
}
// 学生选课
public void selectCourse(Student student, Course course) {
// 判断学生是否已经选过该课程
if (selections.containsKey(student) && selections.get(student).contains(course)) {
System.out.println(student.getName() + "已经选过" + course.getName() + "了!");
} else {
// 将课程添加到学生的选课列表中
List<Course> selectedCourses = selections.getOrDefault(student, new ArrayList<>());
selectedCourses.add(course);
selections.put(student, selectedCourses);
System.out.println(student.getName() + "成功选修了" + course.getName() + "!");
}
}
// 查询学生的选课情况
public void querySelections(Student student) {
if (selections.containsKey(student)) {
List<Course> selectedCourses = selections.get(student);
System.out.println(student.getName() + "已选修以下课程:");
for (Course course : selectedCourses) {
System.out.println(course.getName());
}
} else {
System.out.println(student.getName() + "还没有选课!");
}
}
public static void main(String[] args) {
StudentCourseSystem system = new StudentCourseSystem();
Scanner scanner = new Scanner(System.in);
// 添加学生
System.out.print("请输入学生姓名:");
String name = scanner.nextLine();
Student student = new Student(name);
system.addStudent(student);
// 添加课程
System.out.print("请输入课程名称:");
String courseName = scanner.nextLine();
Course course = new Course(courseName);
system.addCourse(course);
// 学生选课
system.selectCourse(student, course);
// 查询选课情况
system.querySelections(student);
}
}
class Student {
private String name;
public Student(String name) {
this.name = name;
}
public String getName() {
return name;
}
}
class Course {
private String name;
public Course(String name) {
this.name = name;
}
public String getName() {
return name;
}
}
```
以上代码只是一个简单的示例,实际的选课系统还需要考虑更多的功能和细节,例如课程时间冲突的处理、选课限制的设置等。
阅读全文