private List<Course> courses; private CourseDB() { courses = new ArrayList<>(); courses.add(new Course("C001", "Java Programming", 50, "Mr. Zhang")); courses.add(new Course("C002", "Web Development", 40, "Ms. Li")); courses.add(new Course("C003", "Database Design", 30, "Mr. Wang")); courses.add(new Course("C004", "Data Structures", 60, "Ms. Zhao")); courses.add(new Course("C005", "Artificial Intelligence", 20, "Mr. Liu")); courses.add(new Course("C006", "Computer Networks", 35, "Ms. Chen")); courses.add(new Course("C007", "Operating Systems", 25, "Mr. Wu")); courses.add(new Course("C008", "Cybersecurity", 30, "Ms. Huang")); courses.add(new Course("C009", "Software Engineering", 45, "Mr. Xu")); courses.add(new Course("C010", "Mobile App Development", 20, "Ms. Zhang")); } public static CourseDB getInstance() { if (instance == null) { instance = new CourseDB(); } return instance; } public List<Course> getAllCourses() { return courses; } public Course getCourseById(String id) { for (Course course : courses) { if (course.getId().equals(id)) { return course; }
时间: 2024-04-20 12:27:26 浏览: 9
这段代码是一个CourseDB类,其中包含一个私有的List<Course>类型的变courses,用于存储课程信息。在CourseDB类的构造方法中,初始化了courses列表,添加了10门课程的信息。CourseDB类使用了单例模式,getInstance()方法可以获取CourseDB类的实例。getAllCourses()方法返回所有课程的信息列表courses,getCourseById()方法根据课程id获取对应的课程信息。
这段代码没有明显的报错,但是如果你在使用时出现了问题,可以提供更具体的错误信息和使用代码,我可以帮你更好地分析和解决问题。
相关问题
利用java程序定义文件CourseDB.java:单例类,模拟数据库中的课程,初始化后至少封装10门课程
好的,下面是一个示例的 CourseDB 类,它是一个单例类,用于模拟数据库中的课程,初始化后至少封装了10门课程:
```java
import java.util.ArrayList;
import java.util.List;
public class CourseDB {
private static CourseDB instance = null; // 单例实例
private List<Course> courses; // 课程列表
private CourseDB() {
// 初始化至少10门课程
courses = new ArrayList<>();
courses.add(new Course("C001", "Java Programming", 50, "John Smith"));
courses.add(new Course("C002", "Data Structures and Algorithms", 60, "Mary Johnson"));
courses.add(new Course("C003", "Database Management", 40, "Tom Lee"));
courses.add(new Course("C004", "Web Development", 45, "Lucy Chen"));
courses.add(new Course("C005", "Operating Systems", 55, "David Wang"));
courses.add(new Course("C006", "Artificial Intelligence", 30, "Emily Liu"));
courses.add(new Course("C007", "Computer Networks", 50, "James Chen"));
courses.add(new Course("C008", "Software Engineering", 40, "Grace Zhang"));
courses.add(new Course("C009", "Machine Learning", 35, "Richard Wu"));
courses.add(new Course("C010", "Human-Computer Interaction", 30, "Michelle Li"));
}
// 获取单例实例
public static CourseDB getInstance() {
if (instance == null) {
instance = new CourseDB();
}
return instance;
}
// 获取所有课程列表
public List<Course> getCourses() {
return courses;
}
// 根据课程编号获取课程信息
public Course getCourse(String code) {
for (Course course : courses) {
if (course.getCode().equals(code)) {
return course;
}
}
return null;
}
}
```
在这个示例中,我们使用单例模式来实现 CourseDB 类,在构造函数中初始化至少10门课程。我们提供了一个公有的静态方法 getInstance() 来获取单例实例。我们还提供了两个公有方法,getCourses() 方法返回所有课程的列表,getCourse(String code) 方法根据课程编号返回指定的课程信息。课程信息是一个 Course 类的对象,其中包含了课程编号、课程名称、可选人数和授课教师等属性。
制作一个学生选课系统,系统包括学号,姓名,性别,年级,密码。课程要包括课程编号,课程名称,已选人数,可选人数,授课老师。文件CourseDB.java:单例类,模拟数据库中的课程,初始化后至少封装10门课程。文件StudentDB.java:单列类,模拟数据库中的课程,初始化后至少封装5名学生信息;文件Login.java:负责登录的业务逻辑;文件SelectCourse.java:负责选课的业务逻辑;文件MainProcess.java:负责整体业务流程;学生选课成功后,选课状态变更为“已选”,否则,课程状态变更为“可选”;学生选择“已选”课程,提示“该课程无法重复选择”;学生选课成功后,选课人数相应发生变化
好的,以下是一个基本的Java实现学生选课系统的代码:
CourseDB.java
```java
import java.util.ArrayList;
import java.util.List;
public class CourseDB {
private static CourseDB instance;
private List<Course> courses;
private CourseDB() {
courses = new ArrayList<>();
courses.add(new Course("C001", "Java Programming", 0, 10, "Tom"));
courses.add(new Course("C002", "Data Structure", 0, 15, "John"));
courses.add(new Course("C003", "Algorithm Analysis", 0, 20, "Lucy"));
courses.add(new Course("C004", "Database Management", 0, 15, "Bob"));
courses.add(new Course("C005", "Web Development", 0, 12, "Alice"));
courses.add(new Course("C006", "Mobile Application Development", 0, 8, "Jack"));
courses.add(new Course("C007", "Artificial Intelligence", 0, 20, "David"));
courses.add(new Course("C008", "Computer Networks", 0, 18, "Sarah"));
courses.add(new Course("C009", "Operating System", 0, 15, "Mike"));
courses.add(new Course("C010", "Computer Graphics", 0, 10, "Lisa"));
}
public static CourseDB getInstance() {
if (instance == null) {
instance = new CourseDB();
}
return instance;
}
public List<Course> getCourses() {
return courses;
}
public void setCourses(List<Course> courses) {
this.courses = courses;
}
}
```
StudentDB.java
```java
import java.util.ArrayList;
import java.util.List;
public class StudentDB {
private static StudentDB instance;
private List<Student> students;
private StudentDB() {
students = new ArrayList<>();
students.add(new Student("S001", "张三", "男", "大一", "123456"));
students.add(new Student("S002", "李四", "女", "大二", "123456"));
students.add(new Student("S003", "王五", "男", "大三", "123456"));
students.add(new Student("S004", "赵六", "女", "大四", "123456"));
students.add(new Student("S005", "陈七", "男", "大一", "123456"));
}
public static StudentDB getInstance() {
if (instance == null) {
instance = new StudentDB();
}
return instance;
}
public List<Student> getStudents() {
return students;
}
public void setStudents(List<Student> students) {
this.students = students;
}
}
```
Login.java
```java
import java.util.Scanner;
public class Login {
public static Student login() {
Scanner scanner = new Scanner(System.in);
System.out.println("请输入学号:");
String id = scanner.nextLine();
System.out.println("请输入密码:");
String password = scanner.nextLine();
StudentDB studentDB = StudentDB.getInstance();
for (Student student : studentDB.getStudents()) {
if (student.getId().equals(id) && student.getPassword().equals(password)) {
return student;
}
}
return null;
}
}
```
SelectCourse.java
```java
import java.util.Scanner;
public class SelectCourse {
public static void selectCourse(Student student) {
CourseDB courseDB = CourseDB.getInstance();
Scanner scanner = new Scanner(System.in);
while (true) {
System.out.println("请选择课程(输入课程编号,输入0退出):");
for (Course course : courseDB.getCourses()) {
System.out.println(course.getCourseId() + " " + course.getCourseName() + " " +
course.getTeacher() + " " + course.getSelectedNum() + "/" + course.getTotalNum());
}
String courseId = scanner.nextLine();
if (courseId.equals("0")) {
break;
}
Course selectedCourse = null;
for (Course course : courseDB.getCourses()) {
if (course.getCourseId().equals(courseId)) {
selectedCourse = course;
break;
}
}
if (selectedCourse == null) {
System.out.println("输入的课程编号不存在,请重新输入!");
continue;
}
if (selectedCourse.getSelectedNum() >= selectedCourse.getTotalNum()) {
System.out.println("该课程已选满,请重新选择!");
continue;
}
if (student.getSelectedCourses().contains(selectedCourse)) {
System.out.println("该课程已选过,请重新选择!");
continue;
}
selectedCourse.setSelectedNum(selectedCourse.getSelectedNum() + 1);
student.getSelectedCourses().add(selectedCourse);
System.out.println("选课成功!");
}
}
}
```
MainProcess.java
```java
public class MainProcess {
public static void main(String[] args) {
Student student = Login.login();
if (student != null) {
System.out.println("欢迎" + student.getName() + "登录选课系统!");
SelectCourse.selectCourse(student);
} else {
System.out.println("学号或密码错误,登录失败!");
}
}
}
```
Course.java
```java
public class Course {
private String courseId;
private String courseName;
private int selectedNum;
private int totalNum;
private String teacher;
public Course(String courseId, String courseName, int selectedNum, int totalNum, String teacher) {
this.courseId = courseId;
this.courseName = courseName;
this.selectedNum = selectedNum;
this.totalNum = totalNum;
this.teacher = teacher;
}
public String getCourseId() {
return courseId;
}
public void setCourseId(String courseId) {
this.courseId = courseId;
}
public String getCourseName() {
return courseName;
}
public void setCourseName(String courseName) {
this.courseName = courseName;
}
public int getSelectedNum() {
return selectedNum;
}
public void setSelectedNum(int selectedNum) {
this.selectedNum = selectedNum;
}
public int getTotalNum() {
return totalNum;
}
public void setTotalNum(int totalNum) {
this.totalNum = totalNum;
}
public String getTeacher() {
return teacher;
}
public void setTeacher(String teacher) {
this.teacher = teacher;
}
}
```
Student.java
```java
import java.util.ArrayList;
import java.util.List;
public class Student {
private String id;
private String name;
private String gender;
private String grade;
private String password;
private List<Course> selectedCourses;
public Student(String id, String name, String gender, String grade, String password) {
this.id = id;
this.name = name;
this.gender = gender;
this.grade = grade;
this.password = password;
this.selectedCourses = new ArrayList<>();
}
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 String getGrade() {
return grade;
}
public void setGrade(String grade) {
this.grade = grade;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
public List<Course> getSelectedCourses() {
return selectedCourses;
}
public void setSelectedCourses(List<Course> selectedCourses) {
this.selectedCourses = selectedCourses;
}
}
```