# yyh **Repository Path**: yyh508121/yyh ## Basic Information - **Project Name**: yyh - **Description**: No description available - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2025-06-25 - **Last Updated**: 2025-06-25 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README 一、README.md 文件( # Schedule Reminder System - 个人日程提醒与管理系统 这是一个使用 Python 和 Tkinter 实现的图形化日程管理小工具,支持添加、编辑、删除任务,并在设定时间自动提醒。适合大学生日常任务规划与学习安排使用。 ## 🌟 项目功能 - 添加日程任务(支持设定提醒时间) - 删除任务、修改任务 - 实时任务列表显示 - 到点自动提醒(弹窗提示) - 本地数据持久化(JSON文件保存) - 后台多线程定时检测 ## 🧰 使用技术 - Python 3.10+ - Tkinter(GUI界面) - threading(多线程提醒) - json(数据存储) - datetime, time ## 📦 项目结构 schedule_reminder/ ├── main.py # 主程序入口 ├── reminder.py # 提醒线程模块 ├── storage.py # 数据读写模块 ├── data.json # 本地保存任务数据 └── README.md # 项目说明文档(本文件) ## 🚀 使用方法 1. 安装 Python 3.10 或以上版本; 2. 运行 `main.py` 文件; 3. 输入任务内容和提醒时间(HH:MM 格式),点击“添加任务”; 4. 到设定时间,系统会自动弹出提醒窗口。 ## 📸 界面示例(建议用户后期添加截图) - 添加任务界面 - 任务提醒弹窗 ## 📌 注意事项 - 程序必须保持运行状态才能触发提醒; - 任务数据会自动保存至 `data.json` 文件中; - 本项目为单机版本,未接入云同步或数据库。 ## 📜 作者 杨艺航 联系方式:1293272102@qq.com 完成时间:2025年6月16日 二、完整实现代码 🔹 main.py —— 主程序入口 & GUI界面 import tkinter as tk from tkinter import messagebox from reminder import start_reminder from storage import load_tasks, save_tasks tasks = [] def add_task(): task_text = task_entry.get() time_text = time_entry.get() if task_text and time_text: tasks.append({"task": task_text, "time": time_text}) save_tasks(tasks) update_listbox() task_entry.delete(0, tk.END) time_entry.delete(0, tk.END) else: messagebox.showwarning("输入不完整", "请填写任务与时间") def delete_task(): selection = listbox.curselection() if selection: index = selection[0] tasks.pop(index) save_tasks(tasks) update_listbox() def update_listbox(): listbox.delete(0, tk.END) for task in tasks: listbox.insert(tk.END, f"{task['task']} - {task['time']}") # GUI 初始化 root = tk.Tk() root.title("日程提醒系统") root.geometry("400x400") tk.Label(root, text="任务内容:").pack() task_entry = tk.Entry(root, width=30) task_entry.pack() tk.Label(root, text="提醒时间 (HH:MM):").pack() time_entry = tk.Entry(root, width=30) time_entry.pack() tk.Button(root, text="添加任务", command=add_task).pack(pady=5) tk.Button(root, text="删除任务", command=delete_task).pack(pady=5) tk.Label(root, text="任务列表:").pack() listbox = tk.Listbox(root, width=45, height=10) listbox.pack() # 初始化任务和提醒线程 tasks = load_tasks() update_listbox() start_reminder(tasks, lambda msg: messagebox.showinfo("任务提醒", msg)) root.mainloop() 🔹 reminder.py —— 提醒功能模块(多线程) import threading import time from datetime import datetime def start_reminder(task_list, callback): def check_loop(): reminded = set() while True: now = datetime.now().strftime('%H:%M') for task in task_list: task_key = f"{task['task']}_{task['time']}" if task['time'] == now and task_key not in reminded: callback(f"任务提醒:{task['task']}") reminded.add(task_key) time.sleep(30) t = threading.Thread(target=check_loop, daemon=True) t.start() 🔹 storage.py —— 本地数据存储模块 import json import os def save_tasks(tasks, filename="data.json"): with open(filename, "w", encoding="utf-8") as f: json.dump(tasks, f, ensure_ascii=False, indent=2) def load_tasks(filename="data.json"): if not os.path.exists(filename): return [] with open(filename, "r", encoding="utf-8") as f: return json.load(f) 🔹 示例数据文件:data.json [ { "task": "提交Python报告", "time": "21:00" }, { "task": "复习操作系统", "time": "22:00" } ] 