完成一个控制台应用(也可用SWING应用或Web应用)程序的开发,该程序应该能够提供如下功能: 1. 用户通过菜单可以选择不同操作功能。 2. 用户可以查询所有课程信息。 3. 用户可以新增课程信息。 4. 用户可以修改现有的课程信息。 5. 用户可以删除指定课程的信息。 6. 用户可以查询指定某门课程的选课情况。
时间: 2024-03-07 16:51:21 浏览: 16
好的,这是一个比较明确的问题。我可以为您提供一个简单的Java程序实现上述功能。请注意,以下程序只是一个示例,您可能需要根据您的具体需求进行修改和扩展。
```java
import java.util.ArrayList;
import java.util.Scanner;
public class CourseManagementSystem {
private ArrayList<Course> courses;
public CourseManagementSystem() {
courses = new ArrayList<Course>();
}
public void run() {
Scanner scanner = new Scanner(System.in);
int choice = 0;
while (choice != 6) {
System.out.println("请选择操作:");
System.out.println("1. 查询所有课程信息");
System.out.println("2. 新增课程信息");
System.out.println("3. 修改现有课程信息");
System.out.println("4. 删除指定课程信息");
System.out.println("5. 查询指定某门课程的选课情况");
System.out.println("6. 退出");
choice = scanner.nextInt();
scanner.nextLine();
switch (choice) {
case 1:
displayAllCourses();
break;
case 2:
addCourse();
break;
case 3:
modifyCourse();
break;
case 4:
deleteCourse();
break;
case 5:
displayCourseSelection();
break;
case 6:
System.out.println("程序已退出");
break;
default:
System.out.println("无效的选择,请重新输入");
break;
}
}
}
private void displayAllCourses() {
if (courses.isEmpty()) {
System.out.println("无课程信息");
} else {
System.out.println("所有课程信息:");
for (Course course : courses) {
System.out.println(course);
}
}
}
private void addCourse() {
Scanner scanner = new Scanner(System.in);
System.out.println("请输入课程名称:");
String name = scanner.nextLine();
System.out.println("请输入授课教师:");
String teacher = scanner.nextLine();
System.out.println("请输入选课人数:");
int enrollment = scanner.nextInt();
scanner.nextLine();
Course course = new Course(name, teacher, enrollment);
courses.add(course);
System.out.println("课程信息已添加");
}
private void modifyCourse() {
Scanner scanner = new Scanner(System.in);
System.out.println("请输入要修改的课程名称:");
String name = scanner.nextLine();
Course course = findCourseByName(name);
if (course == null) {
System.out.println("未找到该课程");
} else {
System.out.println("请输入新的课程名称(留空表示不修改):");
String newName = scanner.nextLine();
if (!newName.isEmpty()) {
course.setName(newName);
}
System.out.println("请输入新的授课教师(留空表示不修改):");
String newTeacher = scanner.nextLine();
if (!newTeacher.isEmpty()) {
course.setTeacher(newTeacher);
}
System.out.println("请输入新的选课人数(留空表示不修改):");
String newEnrollmentStr = scanner.nextLine();
if (!newEnrollmentStr.isEmpty()) {
int newEnrollment = Integer.parseInt(newEnrollmentStr);
course.setEnrollment(newEnrollment);
}
System.out.println("课程信息已修改");
}
}
private void deleteCourse() {
Scanner scanner = new Scanner(System.in);
System.out.println("请输入要删除的课程名称:");
String name = scanner.nextLine();
Course course = findCourseByName(name);
if (course == null) {
System.out.println("未找到该课程");
} else {
courses.remove(course);
System.out.println("课程信息已删除");
}
}
private void displayCourseSelection() {
Scanner scanner = new Scanner(System.in);
System.out.println("请输入要查询选课情况的课程名称:");
String name = scanner.nextLine();
Course course = findCourseByName(name);
if (course == null) {
System.out.println("未找到该课程");
} else {
System.out.println(course.getName() + " 的选课情况:");
ArrayList<String> students = course.getStudents();
if (students.isEmpty()) {
System.out.println("无人选修");
} else {
for (String student : students) {
System.out.println(student);
}
}
}
}
private Course findCourseByName(String name) {
for (Course course : courses) {
if (course.getName().equals(name)) {
return course;
}
}
return null;
}
public static void main(String[] args) {
CourseManagementSystem system = new CourseManagementSystem();
system.run();
}
}
class Course {
private String name;
private String teacher;
private int enrollment;
private ArrayList<String> students;
public Course(String name, String teacher, int enrollment) {
this.name = name;
this.teacher = teacher;
this.enrollment = enrollment;
students = new ArrayList<String>();
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getTeacher() {
return teacher;
}
public void setTeacher(String teacher) {
this.teacher = teacher;
}
public int getEnrollment() {
return enrollment;
}
public void setEnrollment(int enrollment) {
this.enrollment = enrollment;
}
public ArrayList<String> getStudents() {
return students;
}
public void addStudent(String student) {
students.add(student);
}
public void removeStudent(String student) {
students.remove(student);
}
@Override
public String toString() {
return name + "(授课教师:" + teacher + ",选课人数:" + enrollment + ")";
}
}
```
这个程序使用了控制台界面,通过菜单提供了所有的操作功能。用户可以选择不同的操作,然后程序会执行相应的操作。程序使用了一个Course类来存储课程信息,包括课程名称、授课教师、选课人数和已选学生名单。程序使用ArrayList来存储所有的课程信息。