利用java代码输出下面7个文件学生选课系统实现: 1. 系统至少应包括以下信息: 学生信息:学号、姓名、性别、年级、密码 课程信息:课程编号、课程名称、已选人数、可选人数、授课教师。 2.基本功能需求: (1)使用命令行完成系统的功能设计; (2)启动程序,输出“学生选课管理——登录”。 (2)提示客户输入学号、密码。 (3)登录后显示操作菜单,效果如下图所示: (4)根据用户选择的功能,进行相关的展示: 查看全部课程: 选课功能: 查看已选课程: 3.其他功能需求: (1) 文件CourseDB.java:单例类,模拟数据库中的课程,初始化后至少封装10门课程; (2)文件StudentDB.java:单列类,模拟数据库中的课程,初始化后至少封装5名学生信息; (3)文件Login.java:负责登录的业务逻辑; (4)文件SelectCourse.java:负责选课的业务逻辑; (5)文件MainProcess.java:负责整体业务流程; (6)学生选课成功后,选课状态变更为“已选”,否则,课程状态变更为“可选”;学生选择“已选”课程,提示“该课程无法重复选择”; (7)学生选课成功后,选课人数相应发生变化;
时间: 2024-03-10 21:50:18 浏览: 13
这里提供一个简单的学生选课系统的Java代码,包括上述的基本功能和其他功能需求。代码中涉及的类包括CourseDB、StudentDB、Login、SelectCourse和MainProcess。请注意,这只是一个简单的示例,实际的实现可能需要更复杂的代码和更多的功能。
CourseDB.java
```
import java.util.ArrayList;
import java.util.List;
public class CourseDB {
private static CourseDB instance = null;
private List<Course> courses;
private CourseDB() {
courses = new ArrayList<Course>();
courses.add(new Course("001", "Java Programming", 0, 2, "John Smith"));
courses.add(new Course("002", "Database Systems", 0, 2, "Mary Johnson"));
courses.add(new Course("003", "Web Development", 0, 2, "Tom Brown"));
courses.add(new Course("004", "Data Structures", 0, 2, "Lisa Chen"));
courses.add(new Course("005", "Algorithms", 0, 2, "David Lee"));
courses.add(new Course("006", "Computer Networks", 0, 2, "Susan Wang"));
courses.add(new Course("007", "Operating Systems", 0, 2, "Kevin Wu"));
courses.add(new Course("008", "Software Engineering", 0, 2, "Emily Liu"));
courses.add(new Course("009", "Artificial Intelligence", 0, 2, "Brian Zhang"));
courses.add(new Course("010", "Computer Graphics", 0, 2, "Cathy Chen"));
}
public static CourseDB getInstance() {
if (instance == null) {
instance = new CourseDB();
}
return instance;
}
public List<Course> getCourses() {
return courses;
}
}
```
StudentDB.java
```
import java.util.ArrayList;
import java.util.List;
public class StudentDB {
private static StudentDB instance = null;
private List<Student> students;
private StudentDB() {
students = new ArrayList<Student>();
students.add(new Student("2018001", "Alice", "Female", "Freshman", "123456"));
students.add(new Student("2018002", "Bob", "Male", "Sophomore", "234567"));
students.add(new Student("2018003", "Charlie", "Male", "Junior", "345678"));
students.add(new Student("2018004", "David", "Male", "Senior", "456789"));
students.add(new Student("2018005", "Emily", "Female", "Freshman", "567890"));
}
public static StudentDB getInstance() {
if (instance == null) {
instance = new StudentDB();
}
return instance;
}
public List<Student> getStudents() {
return students;
}
}
```
Login.java
```
import java.util.Scanner;
public class Login {
private StudentDB studentDB;
public Login() {
studentDB = StudentDB.getInstance();
}
public Student login() {
Scanner scanner = new Scanner(System.in);
System.out.println("学生选课管理——登录");
System.out.print("请输入学号:");
String id = scanner.nextLine();
System.out.print("请输入密码:");
String password = scanner.nextLine();
for (Student student : studentDB.getStudents()) {
if (student.getId().equals(id) && student.getPassword().equals(password)) {
System.out.println("登录成功,欢迎 " + student.getName() + "!");
return student;
}
}
System.out.println("登录失败,请检查学号和密码是否正确。");
return null;
}
}
```
SelectCourse.java
```
import java.util.Scanner;
public class SelectCourse {
private CourseDB courseDB;
private Student student;
public SelectCourse(Student student) {
courseDB = CourseDB.getInstance();
this.student = student;
}
public void select() {
Scanner scanner = new Scanner(System.in);
System.out.println("选课功能");
System.out.println("课程编号\t课程名称\t授课教师\t已选人数\t可选人数");
for (Course course : courseDB.getCourses()) {
System.out.println(course.getId() + "\t" + course.getName() + "\t" + course.getTeacher() + "\t" + course.getSelectedNum() + "\t" + course.getAvailableNum());
}
System.out.print("请输入要选择的课程编号:");
String courseId = scanner.nextLine();
Course selectedCourse = null;
for (Course course : courseDB.getCourses()) {
if (course.getId().equals(courseId)) {
selectedCourse = course;
break;
}
}
if (selectedCourse == null) {
System.out.println("选择失败,无此课程编号!");
return;
}
if (selectedCourse.getSelectedNum() >= selectedCourse.getAvailableNum()) {
System.out.println("选择失败,该课程已经选满!");
return;
}
if (student.hasCourse(selectedCourse)) {
System.out.println("选择失败,您已经选择了该课程!");
return;
}
student.addCourse(selectedCourse);
selectedCourse.setSelectedNum(selectedCourse.getSelectedNum() + 1);
System.out.println("选择成功!");
}
public void listSelectedCourses() {
System.out.println("查看已选课程");
System.out.println("课程编号\t课程名称\t授课教师");
for (Course course : student.getSelectedCourses()) {
System.out.println(course.getId() + "\t" + course.getName() + "\t" + course.getTeacher());
}
}
}
```
MainProcess.java
```
import java.util.Scanner;
public class MainProcess {
private Login login;
private SelectCourse selectCourse;
private Student student;
public MainProcess() {
login = new Login();
}
public void run() {
student = login.login();
if (student != null) {
selectCourse = new SelectCourse(student);
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. 退出系统");
int choice = scanner.nextInt();
scanner.nextLine();
switch (choice) {
case 1:
listAllCourses();
break;
case 2:
selectCourse.select();
break;
case 3:
selectCourse.listSelectedCourses();
break;
case 4:
System.out.println("已退出系统。");
return;
default:
System.out.println("无效的输入,请重新输入。");
}
}
}
}
private void listAllCourses() {
System.out.println("查看全部课程");
System.out.println("课程编号\t课程名称\t授课教师\t已选人数\t可选人数");
for (Course course : CourseDB.getInstance().getCourses()) {
System.out.println(course.getId() + "\t" + course.getName() + "\t" + course.getTeacher() + "\t" + course.getSelectedNum() + "\t" + course.getAvailableNum());
}
}
}
```
Course.java
```
public class Course {
private String id;
private String name;
private int selectedNum;
private int availableNum;
private String teacher;
public Course(String id, String name, int selectedNum, int availableNum, String teacher) {
this.id = id;
this.name = name;
this.selectedNum = selectedNum;
this.availableNum = availableNum;
this.teacher = teacher;
}
public String getId() {
return id;
}
public String getName() {
return name;
}
public int getSelectedNum() {
return selectedNum;
}
public void setSelectedNum(int selectedNum) {
this.selectedNum = selectedNum;
}
public int getAvailableNum() {
return availableNum;
}
public void setAvailableNum(int availableNum) {
this.availableNum = availableNum;
}
public String getTeacher() {
return teacher;
}
}
```
Student.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;
selectedCourses = new ArrayList<Course>();
}
public String getId() {
return id;
}
public String getName() {
return name;
}
public String getGender() {
return gender;
}
public String getGrade() {
return grade;
}
public String getPassword() {
return password;
}
public List<Course> getSelectedCourses() {
return selectedCourses;
}
public void addCourse(Course course) {
selectedCourses.add(course);
}
public boolean hasCourse(Course course) {
for (Course selectedCourse : selectedCourses) {
if (selectedCourse.getId().equals(course.getId())) {
return true;
}
}
return false;
}
}
```
以上是一个简单的学生选课系统的Java代码,包括了所需的七个文件。需要注意的是,这只是一个简单的实现,可能需要根据实际情况进行修改和补充。