小说管理系统CLI版
项目背景
随着网络文学的发展,读书不仅仅是在纸质文学上,大量的网络文学充斥着人们的视野。网络上越来越多的平台出现,有的小说只能在特定的平台展现。为了更好的记录小说,提升对小说各种信息的有效管理(从各种小说平台得到小说:暂未开发),小说管理系统的需求也会随着增加。主要功能:书籍的录入、查询、修改以及退出功能。
需求分析
1.系统描述
系统版本1.0,主要功能为小说基本信息的记录、编辑、查找、删除功能
2.功能结构
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-tmJGZiWv-1610120126228)(F:\study_project\小说管理系统\3.jpg)]
3.主要功能描述
3.1 主界面
------小说管理系统CLI版 v1.0------
1. 新增小说信息
2. 显示所有小说
3. 搜索小说
0.退出系统
--------------------------------
请输入您的操作(序号):
3.2 新增小说信息
您的操作为:新增小说信息
------新增小说信息------
请输出小说名:万族之劫
请输入作者:老鹰吃小鸡
请输入小说类型:都市
请输入小说字数(万字):750.4
【添加《万族之劫》成功】
3.3 显示全部小说信息
您的操作为:显示所有小说
------显示所有小说------
小说名 作者 类型 字数(w)
万族之劫 老鹰吃小鸡 都市 750.4
如果没有任何小说,则显示如下信息
您的操作为:显示所有小说
------显示所有小说------
【当前没有任何小说被添加】
3.4 查询小说信息
用户如果录入为3,则提示用户输入要搜索的小说名字,并根据小说名进行搜索
您的操作为:搜索小说
------搜索小说------
请输入要搜索的书名:万族之劫
小说名 作者 类型 字数(w)
万族之劫 老鹰吃小鸡 都市 750.4
--------------------
请输入要执行的操作[1]修改 [2]删除 [0]返回菜单
如果没有搜索到,则显示
------搜索小说------
请输入要搜索的书名:万族之劫
没有搜索到 《万族之劫》
3.5 修改小说信息
搜索结果显示后,根据提示输入1,进入小说修改环节
如果没有录入任何信息,则默认保留原有信息。
因为查询的小说名字可能有重复 所以需要选择序号
请输入要执行的操作[1]修改 [2]删除 [0]返回菜单1
请输入要修改的序号(从0开始):0
小说名(回车不修改):
作者(回车不修改):
类型(回车不修改):
字数(回车不修改):800
【修改信息成功!】
3.6删除小说信息
搜索结果显示后,根据提示输入2,进入小说删除环节
因为查询的小说名字可能有重复 所以需要选择序号
请输入要执行的操作[1]修改 [2]删除 [0]返回菜单2
请输入要删除的序号(从0开始):0
【删除小说成功!】
不足与扩展
1.爬取各平台资源,进行补充
2.连接后台数据库
3.用户图形化界面
4.本系统的细节补充
# @Time:2020/12/30 21:43
# @Author:李 祥
# @File:main.py
# @Software:PyCharm
from function import *
from pygame.locals import *
def run():
while True:
print()
print("------小说管理系统CLI版 v1.0------")
print("1. 新增小说信息")
print("2. 显示所有小说")
print("3. 搜索小说")
print()
print("0.退出系统")
print("--------------------------------")
userNum = input("请输入您的操作(序号):")
if userNum == "1":
newNovel()
elif userNum == "2":
showNovel()
elif userNum == "3":
selectNovel()
elif userNum == "0":
break
else:
print("输入有误,请重新输入!")
if __name__ == '__main__':
run()
# @Time:2020/12/30 21:53
# @Author:李 祥
# @File:function.py
# @Software:PyCharm
# 小说信息 方便后续增加
keys = ["小说名", "作者", "类型", "字数"]
# 存储数据
list1 = []
# 临时存储查找到的小说
list2 = []
# 测试数据
# list1 = [{'小说名': '万族', '作者': '老鹰', '类型': '玄幻', '字数': '750'}]
def newNovel():
print("您的操作为:新增小说信息")
print("------新增小说信息------".center(30, "-"))
dict1 = {}
for key in keys:
key2 = input(f"请输出{key}:")
dict1[f"{key}"] = key2
print()
list1.append(dict1)
print(f"【添加《{dict1[keys[0]]}》成功】")
def showNovel():
print("您的操作为:显示所有小说")
print("------显示所有小说------")
for key in keys:
print(f"{key}\t\t", end="")
print()
if list1:
for dict in list1:
for value in dict.values():
print(f"{value}\t\t", end="")
print()
else:
print("【当前没有任何小说被添加】")
def selectNovel():
print("您的操作为:搜索小说")
print("------搜索小说------")
novelName = input("请输入要搜索的书名:")
for i in keys:
print(f"{i}\t\t", end="")
print()
for dict in list1:
if dict["小说名"] == novelName:
list2.append(dict)
for value in dict.values():
print(f"{value}\t\t", end="")
print()
if len(list2) == 0:
print(f"没有搜索到《{novelName}》")
print("--------------------")
userNum = input("请输入要执行的操作[1]修改 [2]删除 [0]返回菜单")
if userNum == "1":
num = int(input("请输入要修改的序号(从0开始):"))
for i in keys:
key2 = input(f"请输出{i}(回车不修改):") or list2[num][i]# False or 值 ,返回:值
for dict in list1:
if dict == list2[num]:
dict[i] = key2
elif userNum == "2":
num = int(input("请输入要删除的序号(从0开始):"))
for dict in list1:
if dict == list2[num]:
list1.remove(dict)
print("【删除小说成功!】")
elif userNum == "0":
return print("11")
else:
print("请输入正确操作")