写一个王强是广州城市理工学院的学时,为了方便想制作一个课程表查询小工具,预先输入的课程表,然后可以查看整个课程表,查询结果格式: 1-2节 3-4节 5-6节 7-8节星期一 Java面向对象程序设计II 大学英语II 体育星期二 离散数学 大学英语星期三 也可以自己选择查看某天或某天那个时间段的课程,请你帮忙设计完成此工具开发。要求:数据来自真实的课程表;减少用户输入压力(如星期几不用输入,由用户选择),查询结果整齐;可以考虑输入的时候没有按照星期顺序输入,但输入后根据星期排序或输入时进行课程重复检查(同一时间不能有两个课程,如周一1-2节只能有一个课程)的代码
时间: 2023-03-31 07:03:44 浏览: 259
我可以帮您设计完成此工具开发。首先,需要一个数据结构来存储课程表,可以使用二维数组或者哈希表。然后,可以设计一个简单的用户界面,让用户选择要查询的日期和时间段。接着,根据用户选择的日期和时间段,在数据结构中查找对应的课程信息,并将结果整齐地展示给用户。
为了减少用户输入压力,可以在输入课程表时,让用户选择星期几,然后再输入该星期的课程信息。在输入时,可以进行课程重复检查,避免同一时间段有两个课程。如果用户输入时没有按照星期顺序输入,可以在输入完成后,对课程表进行排序,以便后续查询操作。
以上是我的回答,希望能对您有所帮助。
相关问题
帮我写一个java代码王强是广州城市理工学院的学时,为了方便想制作一个课程表查询小工具,预先输入的课程表,然后可以查看整个课程表,查询结果格式: 1-2节 3-4节 5-6节 7-8节星期一 Java面向对象程序设计II 大学英语II 体育星期二 离散数学 大学英语星期三 也可以自己选择查看某天或某天那个时间段的课程,请你帮忙设计完成此工具开发。要求:数据来自真实的课程表;减少用户输入压力(如星期几不用输入,由用户选择),查询结果整齐;可以考虑输入的时候没有按照星期顺序输入,但输入后根据星期排序或输入时进行课程重复检查(同一时间不能有两个课程,如周一1-2节只能有一个课程)。
以下是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。
题目描述】:王强是广州城市理工学院的学时,为了方便想制作一个课程表查询小工具,预先输入的课程表,然后可以查看整个课程表,查询结果格式:1-2节3-4节5-6节7-8节星期一Java面向对象程序设计II大学英语II体育星期二离散数学大学英语星期三也可以自己选择查看某天或某天那个时间段的课程,请你帮忙设计完成此工具开发。要求:1、数据来自真实的课程表;2、减少用户输入压力(如星期几不用输入,由用户选择),查询结果整齐;3、可以考虑输入的时候没有按照星期顺序输入,但输入后根据星期排序或输入时进行课程重复检查(同一时间不能有两个课程,如周一1-2节只能有一个课程)。java代码
好的,以下是一个简单的Java程序实现该功能。首先,需要创建一个Course类表示一门课程,包含课程名、时间、地点等信息。然后,可以使用ArrayList集合存储所有的课程信息。最后,可以根据用户输入的查询条件,从ArrayList中筛选符合条件的课程并在控制台上输出。
```java
import java.util.ArrayList;
import java.util.Scanner;
public class Course {
private String name;
private String time;
private String location;
public Course(String name, String time, String location) {
this.name = name;
this.time = time;
this.location = location;
}
public String getName() {
return name;
}
public String getTime() {
return time;
}
public String getLocation() {
return location;
}
public String toString() {
return "课程名:" + name + " 时间:" + time + " 地点:" + location;
}
public static void main(String[] args) {
// 创建课程表
ArrayList<Course> courses = new ArrayList<>();
courses.add(new Course("Java面向对象程序设计II", "星期一1-2节", "教学楼101"));
courses.add(new Course("大学英语II", "星期一3-4节", "教学楼102"));
courses.add(new Course("体育", "星期一5-6节", "体育馆"));
courses.add(new Course("离散数学", "星期二1-2节", "教学楼201"));
courses.add(new Course("大学英语", "星期二3-4节", "教学楼202"));
// 提示用户输入查询条件
Scanner scanner = new Scanner(System.in);
System.out.println("请输入查询条件:");
System.out.println("1、查询整个课程表");
System.out.println("2、按星期查询");
System.out.println("3、按时间查询");
int option = scanner.nextInt();
// 根据用户选择查询课程
if (option == 1) {
// 查询整个课程表
for (Course course : courses) {
System.out.println(course);
}
} else if (option == 2) {
// 按星期查询
System.out.println("请输入星期几:");
String day = scanner.next();
for (Course course : courses) {
if (course.getTime().contains(day)) {
System.out.println(course);
}
}
} else if (option == 3) {
// 按时间查询
System.out.println("请输入时间段:");
String time = scanner.next();
for (Course course : courses) {
if (course.getTime().contains(time)) {
System.out.println(course);
}
}
} else {
System.out.println("无效的选项!");
}
}
}
```
注意,这只是一个简单的实现方案,你可以根据实际需求进行适当的调整和扩展。例如,可以将课程信息存储到数据库中,使用Web框架开发一个Web应用等。
阅读全文