一、背景
某图书馆馆长觉得管理图书的方式过于低效,需要设计一个图书管理的系统,以实现对图书信息的管理。
二、功能
本系统应包含用户登录功能(只需要admin用户,密码随意),图书的增、删、改、查功能,图书借阅/还书功能,退出功能
三、要求
- 本系统能够完成对图书信息的静态存储,当系统启动时,应读取所有的图书信息到动态存储(20分)
2.图书信息的格式为:(10分)
图书编号 | 图书类别 | 图书名称 | 出版社 | 图书价格 | 入库时间 | 是否被借阅 |
3.对于增功能:(15分)
使用完整的信息添加内容,要求:可以将编号加密,且可以还原。
4.对于删功能:(15分)
应包含按编号查询 ,按类别查询,按名称查询,按出版社查询。
5.对于改功能:(15分)
应包含修改指定编号的内容
6.对于查功能:(15分)
应包含按编号查询 ,按类别查询,按名称查询,按出版社查询。
7.界面要求:(10分 根据美观度打分)
代码展示 import json from datetime import datetime #自定义一个.json图书存放数据文件 #自定义一个.json用户数据文件 data_file = 'book_data.json' user_accounts_file = 'user_accounts.json' #额外可以增加对图书信息的加密 #加载图书信息 def load_books(): try: with open(data_file, 'r') as file: book_data = json.load(file) return book_data except FileNotFoundError: return [] #保存图书信息 def save_books(book_data): with open(data_file, 'w') as file: json.dump(book_data, file) #用户登录 def login(): while True: username = input("请输入用户名:") password = input("请输入密码:") if username == "admin" or 'kkx' and password=='888888': print("登录成功!") return else: print("用户名或密码错误,请重新输入。") # 增加图书信息 def add_book(): books = load_books() book = {} book['编号'] = int(input("请输入图书编号:")) book['类别'] = input("请输入图书类别:") book['名称'] = input("请输入图书名称:") book['出版社'] = input("请输入出版社:") book['价格'] = float(input("请输入图书价格:")) book['入库时间'] = datetime.now().strftime("%Y-%m-%d %H:%M:%S") book['是否被借阅'] = False books.append(book) save_books(books) print("图书信息添加成功!") # 删除图书信息 def delete_book(): books = load_books() print("请选择删除方式:") print("1. 按编号查询") print("2. 按类别查询") print("3. 按名称查询") print("4. 按出版社查询") option = input("请输入您的选择:") if option == '1': number = int(input("请输入要删除的图书编号:")) books = [book for book in books if book['编号'] != number] elif option == '2': category = input("请输入要删除的图书类别:") books = [book for book in books if book['类别'] != category] elif option == '3': name = input("请输入要删除的图书名称:") books = [book for book in books if book['名称'] != name] elif option == '4': publisher = input("请输入要删除的出版社:") books = [book for book in books if book['出版社'] != publisher] save_books(books) print("图书信息删除成功!") # 修改图书信息 def modify_book(): books = load_books() number = int(input("请输入要修改的图书编号:")) for book in books: if book['编号'] == number: print("请选择要修改的信息:") print("1. 图书类别") print("2. 图书名称") print("3. 出版社名称") print("4. 图书价格") option = input("请输入您的选择:") if option == '1': book['类别'] = input("请输入新的图书类别:") elif option == '2': book['名称'] = input("请输入新的图书名称:") elif option == '3': book['出版社'] = input("请输入新的出版社:") elif option == '4': book['价格'] = float(input("请输入新的图书价格:")) save_books(books) print("图书信息修改成功!") return print("找不到对应的图书编号,修改失败!") # 查询图书信息 def search_book(): books = load_books() print("请选择查询方式:") print("1. 按编号查询") print("2. 按类别查询") print("3. 按名称查询") print("4. 按出版社查询") option = input("请输入您的选择:") if option == '1': number = int(input("请输入要查询的图书编号:")) found_books = [book for book in books if book['编号'] == number] elif option == '2': category = input("请输入要查询的图书类别:") found_books = [book for book in books if book['类别'] == category] elif option == '3': name = input("请输入要查询的图书名称:") found_books = [book for book in books if book['名称'] == name] elif option == '4': publisher = input("请输入要查询的出版社:") found_books = [book for book in books if book['出版社'] == publisher] print("查询结果:") for book in found_books: print(book) # 界面显示 def display_menu(): print("*********************************************************") print(" Chanbey图书管理系统 ") print("输入1, 增加图书信息") print("输入2, 删除图书信息") print("输入3, 修改图书信息") print("输入4, 查询图书信息") print("输入0, 退出图书管理系统") print("*********************************************************") # 主程序 def main(): login() # 用户登录 while True: display_menu() option = input("请输入您的选择:") if option == '1': add_book() elif option == '2': delete_book() elif option == '3': modify_book() elif option == '4': search_book() elif option == '0': print("感谢使用Chanbey图书管理系统!") break else: print("无效的选择,请重新输入!") # 运行主程序 if __name__ == '__main__': main()