帮我写一个java代码王强是广州城市理工学院的学时,为了方便想制作一个课程表查询小工具,预先输入的课程表,然后可以查看整个课程表,查询结果格式: 1-2节 3-4节 5-6节 7-8节星期一 Java面向对象程序设计II 大学英语II 体育星期二 离散数学 大学英语星期三 也可以自己选择查看某天或某天那个时间段的课程,请你帮忙设计完成此工具开发。要求:数据来自真实的课程表;减少用户输入压力(如星期几不用输入,由用户选择),查询结果整齐;可以考虑输入的时候没有按照星期顺序输入,但输入后根据星期排序或输入时进行课程重复检查(同一时间不能有两个课程,如周一1-2节只能有一个课程)。
时间: 2023-03-31 10:03:44 浏览: 126
王强21320355战斗系统.7z
以下是Java代码,实现了课程表查询小工具的功能:
import java.util.*;
public class CourseSchedule {
private static final int MAX_DAY = 7; // 一周最多7天
private static final int MAX_TIME = 4; // 一天最多4个时间段
private String[][] schedule; // 课程表
private Map<String, Integer> dayMap; // 星期几到数字的映射
private Map<String, Integer> timeMap; // 时间段到数字的映射
public CourseSchedule() {
schedule = new String[MAX_DAY][MAX_TIME];
dayMap = new HashMap<>();
dayMap.put("星期一", );
dayMap.put("星期二", 1);
dayMap.put("星期三", 2);
dayMap.put("星期四", 3);
dayMap.put("星期五", 4);
dayMap.put("星期六", 5);
dayMap.put("星期日", 6);
timeMap = new HashMap<>();
timeMap.put("1-2节", );
timeMap.put("3-4节", 1);
timeMap.put("5-6节", 2);
timeMap.put("7-8节", 3);
}
// 添加课程
public boolean addCourse(String day, String time, String course) {
if (!dayMap.containsKey(day) || !timeMap.containsKey(time)) {
return false; // 星期或时间段不合法
}
int d = dayMap.get(day);
int t = timeMap.get(time);
if (schedule[d][t] != null) {
return false; // 该时间段已有课程
}
schedule[d][t] = course;
return true;
}
// 查询某天某时间段的课程
public String getCourse(String day, String time) {
if (!dayMap.containsKey(day) || !timeMap.containsKey(time)) {
return null; // 星期或时间段不合法
}
int d = dayMap.get(day);
int t = timeMap.get(time);
return schedule[d][t];
}
// 查询整个课程表
public void printSchedule() {
System.out.println("课程表:");
for (int t = ; t < MAX_TIME; t++) {
System.out.print("第" + (t+1) + "节\t");
for (int d = ; d < MAX_DAY; d++) {
String course = schedule[d][t];
if (course == null) {
System.out.print("\t\t");
} else {
System.out.print(course + "\t");
}
}
System.out.println();
}
}
public static void main(String[] args) {
CourseSchedule cs = new CourseSchedule();
cs.addCourse("星期一", "1-2节", "Java面向对象程序设计II");
cs.addCourse("星期一", "3-4节", "大学英语II");
cs.addCourse("星期一", "7-8节", "体育");
cs.addCourse("星期二", "3-4节", "离散数学");
cs.addCourse("星期二", "5-6节", "大学英语");
cs.addCourse("星期三", "1-2节", "数据结构");
cs.addCourse("星期三", "3-4节", "计算机组成原理");
cs.printSchedule();
System.out.println("星期一1-2节的课程是:" + cs.getCourse("星期一", "1-2节"));
}
}
使用方法:先创建一个CourseSchedule对象,然后调用addCourse方法添加课程,调用getCourse方法查询某天某时间段的课程,调用printSchedule方法打印整个课程表。注意,输入的星期和时间段必须是预先定义好的,否则会返回false或null。
阅读全文