利用java程序实现文件MainProcess.java:负责整体业务流程(进入主菜单按1查看课程信息,按2选课,按3查看个人选课); (6)学生选课成功后,选课状态变更为“已选”,否则,课程状态变更为“可选”;学生选择“已选”课程,提示“该课程无法重复选择”; (7)学生选课成功后,选课人数相应发生变化
时间: 2023-12-02 19:05:16 浏览: 62
好的,我理解了你的问题,以下是实现文件MainProcess.java的代码,其中包括了你提到的业务流程和选课状态的变更等功能:
```
import java.util.Scanner;
public class MainProcess {
private static Course[] courses; // 所有课程数组
private static Student[] students; // 所有学生数组
private static int courseCount; // 当前课程数量
private static int studentCount; // 当前学生数量
public static void main(String[] args) {
init(); // 初始化所有课程和学生
Scanner scanner = new Scanner(System.in);
while (true) {
System.out.println("欢迎使用选课系统,请输入数字选择功能:");
System.out.println("1. 查看课程信息");
System.out.println("2. 选课");
System.out.println("3. 查看个人选课");
int choice = scanner.nextInt();
switch (choice) {
case 1:
showAllCourses();
break;
case 2:
selectCourse();
break;
case 3:
showSelectedCourses();
break;
default:
System.out.println("无效的输入,请重新输入!");
}
}
}
// 初始化所有课程和学生
private static void init() {
courses = new Course[100];
students = new Student[100];
courseCount = 0;
studentCount = 0;
Course c1 = new Course("001", "Java程序设计", 60);
Course c2 = new Course("002", "数据结构", 50);
addCourse(c1);
addCourse(c2);
}
// 添加课程
private static void addCourse(Course course) {
courses[courseCount++] = course;
}
// 显示所有课程信息
private static void showAllCourses() {
System.out.println("所有课程信息如下:");
for (int i = 0; i < courseCount; i++) {
System.out.println(courses[i]);
}
}
// 学生选课
private static void selectCourse() {
Scanner scanner = new Scanner(System.in);
System.out.println("请输入你的姓名:");
String name = scanner.next();
System.out.println("请输入你要选的课程编号:");
String courseId = scanner.next();
Course course = findCourse(courseId);
if (course == null) {
System.out.println("没有找到该课程,请重新输入!");
return;
}
if (course.isSelected()) {
System.out.println("该课程已经被选过了,不能重复选择!");
return;
}
Student student = findStudent(name);
if (student == null) {
student = new Student(name);
students[studentCount++] = student;
}
if (student.selectCourse(course)) {
course.setSelectedCount(course.getSelectedCount() + 1);
course.setSelected(true);
System.out.println("选课成功!");
} else {
System.out.println("选课失败!");
}
}
// 显示个人选课信息
private static void showSelectedCourses() {
Scanner scanner = new Scanner(System.in);
System.out.println("请输入你的姓名:");
String name = scanner.next();
Student student = findStudent(name);
if (student == null) {
System.out.println("没有找到该学生,请重新输入!");
return;
}
System.out.println("你已选的课程信息如下:");
for (Course course : student.getSelectedCourses()) {
System.out.println(course);
}
}
// 根据课程编号查找课程
private static Course findCourse(String courseId) {
for (int i = 0; i < courseCount; i++) {
if (courses[i].getId().equals(courseId)) {
return courses[i];
}
}
return null;
}
// 根据学生姓名查找学生
private static Student findStudent(String name) {
for (int i = 0; i < studentCount; i++) {
if (students[i].getName().equals(name)) {
return students[i];
}
}
return null;
}
}
```
在这个程序中,我们定义了一个Course类来表示课程,一个Student类来表示学生。在MainProcess类中,我们将所有的课程和学生存储在数组中,并提供了初始化、添加、查找等方法。在主菜单中,我们提供了查看课程信息、选课、查看个人选课等功能,其中选课过程中涉及到课程状态和选课状态的变更。
阅读全文