请你用python写一个简单的程序,仿照学生信息管理系统,写一个唐诗管理系统,从txt文件读取唐诗,定义唐诗类,和方法类,包含列出所有唐诗的名字、添加一首唐诗、删除一首唐诗,根据诗名查找唐诗、退出程序这些功能,并给出注释、
时间: 2024-12-11 21:24:59 浏览: 5
当然可以,下面是一个简单的Python程序,它模拟了一个唐诗管理系统。我们将创建一个`Poem`类,用于存储唐诗的信息,并提供相应的操作方法。
```python
# 定义一个 Poem 类,用于表示唐诗
class TangPoem:
def __init__(self, title, author):
"""
初始化函数,设置唐诗的基本信息
:param title: 唐诗标题
:param author: 作者姓名
"""
self.title = title
self.author = author
# 列出所有唐诗的方法
@staticmethod
def list_poems(poem_list):
"""
打印所有诗歌列表
:param poem_list: 存储唐诗的列表
"""
if not poem_list:
print("当前没有任何唐诗")
else:
for index, poem in enumerate(poem_list, start=1):
print(f"{index}. {poem.title} - {poem.author}")
# 添加新诗的方法
@classmethod
def add_poem(cls, poem_list, title, author):
"""
添加新的唐诗到列表中
:param poem_list: 存储唐诗的列表
:param title: 新诗标题
:param author: 作者姓名
"""
poem = cls(title, author)
poem_list.append(poem)
print(f"已成功添加:{title} - {author}")
# 删除诗的方法
@staticmethod
def delete_poem(poem_list, title):
"""
根据标题删除指定的唐诗
:param poem_list: 存储唐诗的列表
:param title: 需要删除的诗的标题
"""
found = False
for index, poem in enumerate(poem_list):
if poem.title == title:
poem_list.pop(index)
found = True
break
if found:
print(f"'{title}' 已从列表中移除")
else:
print(f"找不到标题为 '{title}' 的唐诗")
# 查找诗的方法
@classmethod
def find_poem(cls, poem_list, title):
"""
根据标题查找特定的唐诗
:param poem_list: 存储唐诗的列表
:param title: 搜索标题
"""
for poem in poem_list:
if poem.title == title:
return poem
return None
# 主程序开始
def main():
poems = [] # 初始化一个空的唐诗列表
while True:
print("\n1. 列出所有唐诗")
print("2. 添加一首唐诗")
print("3. 删除一首唐诗")
print("4. 查找唐诗")
print("5. 退出")
choice = input("请输入您的选择 (1-5): ")
if choice == "1":
TangPoem.list_poems(poems)
elif choice == "2":
title = input("请输入唐诗标题: ")
author = input("请输入作者姓名: ")
TangPoem.add_poem(poems, title, author)
elif choice == "3":
title = input("请输入要删除的唐诗标题: ")
TangPoem.delete_poem(poems, title)
elif choice == "4":
search_title = input("请输入搜索的唐诗标题: ")
result = TangPoem.find_poem(poems, search_title)
if result is not None:
print(f"找到的唐诗:{result.title} - {result.author}")
else:
print("未找到匹配的唐诗")
elif choice == "5":
print("感谢使用,再见!")
break
else:
print("无效的选择,请重新输入。")
if __name__ == "__main__":
main()
```
阅读全文