当前位置 : 主页 > 编程语言 > java >

java设计一个调度表

来源:互联网 收集:自由互联 发布时间:2023-12-28
Java设计一个调度表 背景介绍 在日常生活中,我们经常需要安排和管理各种任务和活动。无论是安排会议、制定计划,还是管理日程安排,都需要一个有效的调度表来帮助我们高效地处

Java设计一个调度表

背景介绍

在日常生活中,我们经常需要安排和管理各种任务和活动。无论是安排会议、制定计划,还是管理日程安排,都需要一个有效的调度表来帮助我们高效地处理和安排任务。

在本文中,我们将使用Java编程语言设计一个简单的调度表应用程序,以展示如何使用面向对象的设计和编程思想来实现这个功能。

功能需求

我们的调度表应用程序需要具备以下功能:

  1. 添加任务:用户可以输入任务的标题、开始时间和结束时间,并将其添加到调度表中。
  2. 删除任务:用户可以选择指定任务并将其从调度表中删除。
  3. 查看任务列表:用户可以获取当前调度表中所有任务的列表,并查看任务的详细信息。
  4. 根据时间范围查看任务:用户可以输入一个时间范围,获取在该范围内的所有任务列表。

设计思路

为了实现上述功能需求,我们可以使用Java的面向对象编程思想,设计以下几个类:

1. 任务(Task)类

任务类用于表示一个具体的任务,包含任务的标题、开始时间和结束时间等属性,以及对应的get和set方法。

public class Task {
    private String title;
    private LocalDateTime startTime;
    private LocalDateTime endTime;

    public Task(String title, LocalDateTime startTime, LocalDateTime endTime) {
        this.title = title;
        this.startTime = startTime;
        this.endTime = endTime;
    }

    // Getters and setters
    // ...
}

2. 调度表(Schedule)类

调度表类用于管理所有的任务,包含添加任务、删除任务、获取任务列表等方法。

public class Schedule {
    private List<Task> tasks;

    public Schedule() {
        this.tasks = new ArrayList<>();
    }

    public void addTask(Task task) {
        tasks.add(task);
    }

    public void removeTask(Task task) {
        tasks.remove(task);
    }

    public List<Task> getTasks() {
        return tasks;
    }

    public List<Task> getTasksByTimeRange(LocalDateTime startTime, LocalDateTime endTime) {
        List<Task> result = new ArrayList<>();
        for (Task task : tasks) {
            if (task.getStartTime().isAfter(startTime) && task.getEndTime().isBefore(endTime)) {
                result.add(task);
            }
        }
        return result;
    }
}

3. 调度表应用程序(ScheduleApp)类

调度表应用程序类是整个程序的入口点,负责与用户进行交互,提供添加、删除和查看任务的功能。

import java.time.LocalDateTime;
import java.util.List;
import java.util.Scanner;

public class ScheduleApp {
    private Schedule schedule;
    private Scanner scanner;

    public ScheduleApp() {
        this.schedule = new Schedule();
        this.scanner = new Scanner(System.in);
    }

    public void run() {
        boolean isRunning = true;
        while (isRunning) {
            System.out.println("请选择操作:");
            System.out.println("1. 添加任务");
            System.out.println("2. 删除任务");
            System.out.println("3. 查看任务列表");
            System.out.println("4. 根据时间范围查看任务");
            System.out.println("5. 退出");
            int option = scanner.nextInt();
            scanner.nextLine(); // 读取换行符

            switch (option) {
                case 1:
                    addTask();
                    break;
                case 2:
                    removeTask();
                    break;
                case 3:
                    viewTaskList();
                    break;
                case 4:
                    viewTaskByTimeRange();
                    break;
                case 5:
                    isRunning = false;
                    break;
                default:
                    System.out.println("无效的选项,请重新选择!");
            }
        }
    }

    private void addTask() {
        System.out.println("请输入任务标题:");
        String title = scanner.nextLine();
        System.out.println("请输入任务的开始时间(yyyy-MM-dd HH:mm):");
        LocalDateTime startTime = LocalDateTime.parse(scanner.nextLine());
        System.out.println("请输入任务的结束时间(yyyy-MM-dd HH:mm):");
        LocalDateTime endTime = LocalDateTime.parse(scanner.nextLine());

        Task task = new Task(title, startTime, endTime);
        schedule.addTask(task);

        System.out.println("任务添加成功!");
    }

    private void removeTask() {
        System.out.println("请输入要删除的任务标题:");
        String title = scanner.nextLine();

        List<Task> tasks = schedule.getTasks();
        for (Task task : tasks) {
            if (task.getTitle().equals(title)) {
                schedule.removeTask(task);
                System
上一篇:java实现网页在线聊天功能
下一篇:没有了
网友评论