Python项目实战:构建一个功能强大的任务管理系统394
本文将详细介绍一个使用Python构建的任务管理系统的完整过程,涵盖需求分析、设计、编码和测试等关键环节。我们将使用面向对象编程的思想,结合常用的Python库,例如sqlite3 (数据库操作) 和 datetime (日期时间处理),创建一个具有添加任务、查看任务、标记完成和删除任务等功能的实用工具。
一、需求分析
我们的任务管理系统需要具备以下功能:
添加新任务:包括任务描述、截止日期和优先级。
查看任务列表:可以按优先级、截止日期等进行排序。
标记任务完成:将已完成的任务标记为已完成状态。
删除任务:删除不需要的任务。
持久化存储:将任务数据保存到本地数据库,以便下次启动时可以恢复。
二、系统设计
我们将使用面向对象编程的思想来设计系统。主要类包括:
Task 类:表示单个任务,包含任务描述 (description)、截止日期 (due_date)、优先级 (priority) 和完成状态 (completed) 等属性。
TaskManager 类:负责管理任务列表,提供添加、查看、标记完成和删除任务等方法。
我们将使用SQLite作为数据库,因为它轻量级且易于集成到Python中。
三、Python代码实现```python
import sqlite3
from datetime import datetime
class Task:
def __init__(self, description, due_date, priority):
= description
self.due_date = due_date
= priority
= False
def __str__(self):
status = "已完成" if else "未完成"
return f"描述: {}, 截止日期: {self.due_date}, 优先级: {}, 状态: {status}"
class TaskManager:
def __init__(self, db_name=""):
= (db_name)
= ()
self.create_table()
def create_table(self):
('''
CREATE TABLE IF NOT EXISTS tasks (
id INTEGER PRIMARY KEY AUTOINCREMENT,
description TEXT NOT NULL,
due_date TEXT,
priority INTEGER,
completed INTEGER
)
''')
()
def add_task(self, task):
("INSERT INTO tasks (description, due_date, priority, completed) VALUES (?, ?, ?, ?)",
(, task.due_date, , ))
()
def get_tasks(self, order_by="due_date"):
(f"SELECT * FROM tasks ORDER BY {order_by}")
return [Task(*row) for row in ()]
def mark_complete(self, task_id):
("UPDATE tasks SET completed = 1 WHERE id = ?", (task_id,))
()
def delete_task(self, task_id):
("DELETE FROM tasks WHERE id = ?", (task_id,))
()
def close(self):
()
if __name__ == "__main__":
manager = TaskManager()
while True:
print("任务管理系统")
print("1. 添加任务")
print("2. 查看任务")
print("3. 标记完成")
print("4. 删除任务")
print("5. 退出")
choice = input("请选择:")
if choice == '1':
description = input("请输入任务描述:")
due_date_str = input("请输入截止日期(YYYY-MM-DD): ")
try:
due_date = (due_date_str, "%Y-%m-%d").date()
except ValueError:
print("无效的日期格式")
continue
priority = int(input("请输入优先级(1-高, 2-中, 3-低): "))
task = Task(description, due_date, priority)
manager.add_task(task)
print("任务已添加")
elif choice == '2':
tasks = manager.get_tasks()
if tasks:
for task in tasks:
print(task)
else:
print("暂无任务")
elif choice == '3':
tasks = manager.get_tasks()
if tasks:
for i, task in enumerate(tasks):
print(f"{i+1}. {task}")
task_id = int(input("请选择要标记完成的任务序号: ")) -1
if 0
2025-06-15

PHP 配置信息获取详解:多种方法与场景分析
https://www.shuihudhg.cn/120803.html

PHP数组元素添加:方法详解与最佳实践
https://www.shuihudhg.cn/120802.html

Java税率计算方法详解及应用示例
https://www.shuihudhg.cn/120801.html

Python高效解析JSON文件:方法、技巧及性能优化
https://www.shuihudhg.cn/120800.html

Python高效处理Excel文件:Openpyxl、XlsxWriter与xlrd/xlwt详解
https://www.shuihudhg.cn/120799.html
热门文章

Python 格式化字符串
https://www.shuihudhg.cn/1272.html

Python 函数库:强大的工具箱,提升编程效率
https://www.shuihudhg.cn/3366.html

Python向CSV文件写入数据
https://www.shuihudhg.cn/372.html

Python 静态代码分析:提升代码质量的利器
https://www.shuihudhg.cn/4753.html

Python 文件名命名规范:最佳实践
https://www.shuihudhg.cn/5836.html