python图书管理系统
生活随笔
收集整理的這篇文章主要介紹了
python图书管理系统
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
以下三個(gè)文件需在同一目錄下。json文件格式不能更改
books-fxm.json
[{"name": "圖書管理","author": "fxm","price": "99999"},{"name": "完美世界","author": "辰東","price": "99"},{"name": "斗破蒼穹","author": "土豆","price": "99"} ]users-fxm.json
[{"name": "fxm","password": "123456"} ]main.py
#!/usr/bin/python3 # -*- coding: utf-8 -*- """ 圖書管理系統(tǒng) 1. 創(chuàng)建一個(gè)列表存儲(chǔ)書籍信息,包括書名,作者名,價(jià)格 2. 創(chuàng)建一個(gè)列表存儲(chǔ)用戶信息,包括用戶名,密碼 3. 制作一個(gè)注冊(cè)登錄系統(tǒng),登錄后可以使用添加書籍,刪除書籍, 修改書籍信息,查詢單本書籍信息,查詢所有書籍信息等功能 4. 圖書信息、用戶信息存入文件中 (新增)圖書管理系統(tǒng)操作說(shuō)明 一、普通用戶1.先注冊(cè)2.登錄到系統(tǒng)3.進(jìn)行功能操作 (增、刪、改、查書籍)4.退出系統(tǒng) 二、管理者1.使用管理者賬戶登陸(fxm:123456)2.管理普通用戶 (刪、改、查用戶)3.退出系統(tǒng) """import json import os# 本系統(tǒng)保存信息的文件名 file_name_books = "books-fxm.json" file_name_users = "users-fxm.json"# 主菜單 def menu():print('*' * 40)print('*' * 10, '歡迎來(lái)到圖書管理系統(tǒng) 1.0 ')print('*' * 40)print('請(qǐng)選擇:')print("1: 注冊(cè)新用戶:")print("2. 已有賬戶,登陸:")print("3. 退出本系統(tǒng)")# 用戶小屋(功能頁(yè)面) def user_menu(self):print('*' * 40)print('歡迎%s! 來(lái)到圖書小屋' % self)print('請(qǐng)選擇您所需的功能:')print('1. 添加書籍')print('2. 刪除書籍')print('3. 修改書籍信息')print('4. 查詢單本書籍信息')print('5. 查詢所有書籍信息')print('6. 退出您的圖書小屋')# 管理者頁(yè)面 def manger():print('*' * 40)print('歡迎本系統(tǒng)管理者!!!')print('*' * 40)print('請(qǐng)選擇您所需的功能:')print('1. 刪除一個(gè)用戶')print('2. 修改用戶密碼')print('3. 查看一個(gè)用戶信息')print('4. 查看全部用戶信息')print('5. 退出管理者頁(yè)面')# 刪除用戶 def del_user():user_name = input('請(qǐng)輸入要?jiǎng)h除的用戶名:')count = 0index = 0for i in users:if user_name == i['name']:count = 1del users[index]print('刪除成功!!!')index += 1if count == 0:print('查無(wú)此人!!!')# 修改用戶 def edit_user():user_name = input('請(qǐng)輸入要修改密碼的用戶名:')count = 0index = 0for i in users:if user_name == i['name']:count = 1del users[index]new_user_name = user_namenew_user_password = input('請(qǐng)輸入修改后的密碼:')new_user = {'name': new_user_name, 'password': new_user_password}users.append(new_user)print('修改成功!!!')index += 1if count == 0:print('查無(wú)此人!!!')# 查看一個(gè)用戶 def look_user():user_name = input('請(qǐng)輸入要查看的用戶名:')count = 0print('用戶名\t密碼\t')for i in users:if user_name == i['name']:count = 1print('%s\t\t%s\t' % (i['name'], i['password']))if count == 0:print('查無(wú)此人!!!')# 查看全部用戶 def look_users():print('用戶名\t密碼\t')for i in users:print('%s\t\t%s\t' % (i['name'], i['password']))# 注冊(cè)頁(yè)面 def sign_up():user_name = input("請(qǐng)輸入您的用戶名:")# 檢驗(yàn)用戶名是否重復(fù)for i in users:if user_name == i['name']:print("用戶名已存在!!!")returnuser_password = input("請(qǐng)輸入您的密碼:")user = {'name': user_name, 'password': user_password}users.append(user)print("注冊(cè)成功!!!")# 登陸頁(yè)面 def login():user_name = input("請(qǐng)輸入您的用戶名:")user_password = input("請(qǐng)輸入您的密碼:")count = 0for i in users:if user_name == i['name']:count = 1if user_password == i['password']:print("登陸成功!!!")return user_nameelse:print("密碼錯(cuò)誤!!!")print("請(qǐng)重試。")if count == 0:print("用戶名不存在!!!")print("請(qǐng)重試。")# 添加書籍 def add_book():book_name = input('請(qǐng)輸入要添加書籍的名字:')# 檢驗(yàn)書籍名是否重復(fù)for i in books:if book_name == i['name']:print("該書已存在!!!")returnbook_author = input('請(qǐng)輸入要添加書籍的作者:')book_price = input('請(qǐng)輸入要添加書籍的價(jià)格:')book = {'name': book_name, 'author': book_author, 'price': book_price}books.append(book)print('添加成功!!!')# 刪除書籍 def del_book():book_name = input('請(qǐng)輸入要?jiǎng)h除書籍的名字:')count = 0index = 0for i in books:if book_name == i['name']:count = 1del books[index]print('刪除成功!!!')index += 1if count == 0:print('查無(wú)此書!!!')# 修改書籍 def edit_book():book_name = input('請(qǐng)輸入要修改書籍的名字:')count = 0index = 0for i in books:if book_name == i['name']:count = 1del books[index]new_book_name = input('請(qǐng)輸入修改后書籍的名字:')new_book_author = input('請(qǐng)輸入修改后書籍的作者:')new_book_price = input('請(qǐng)輸入修改后書籍的價(jià)格:')new_book = {'name': new_book_name, 'author': new_book_author, 'price': new_book_price}books.append(new_book)print('修改成功!!!')index += 1if count == 0:print('查無(wú)此書!!!')# 查看一本書籍 def look_book():book_name = input('請(qǐng)輸入要查看書籍的名字:')count = 0print('書名\t\t作者\(yùn)t價(jià)格\t')for i in books:if book_name == i['name']:count = 1print('%s\t%s\t%s\t' % (i['name'], i['author'], i['price']))if count == 0:print('查無(wú)此書!!!')# 查看全部書籍 def look_books():print('書名\t\t作者\(yùn)t價(jià)格\t')for i in books:print('[%s]\t%s\t%s\t' % (i['name'], i['author'], i['price']))# 初始狀態(tài)讀取文件 def get_init_data():if (not os.path.exists(file_name_users)) | (not os.path.exists(file_name_books)):raise print("缺少必要文件:", file_name_books, file_name_users)with open(file_name_books, 'r', encoding='utf-8') as f:books_json = json.load(f)with open(file_name_users, 'r', encoding='utf-8') as f:users_json = json.load(f)return books_json, users_json# 結(jié)束程序更新數(shù)據(jù)文件 def set_init_data():with open(file_name_books, 'w', encoding='utf-8') as f:f.write(json.dumps(books, ensure_ascii=False, indent=4))with open(file_name_users, 'w', encoding='utf-8') as f:f.write(json.dumps(users, ensure_ascii=False, indent=4))# 用戶與管理者 def while_user(name):while name: # 根據(jù)是否登陸成功,進(jìn)入用戶菜單if name == 'fxm': # 判斷是否為管理者manger() # 管理者頁(yè)面manger_n = input()if manger_n == '1':del_user() # 刪除一個(gè)用戶elif manger_n == '2':edit_user() # 修改用戶密碼elif manger_n == '3':look_user() # 查看一個(gè)用戶信息elif manger_n == '4':look_users() # 查看全部用戶信息elif manger_n == '5':break # 退出管理者頁(yè)面else:print("非法輸入!!!")print("請(qǐng)?jiān)俅芜x擇:")else:user_menu(name) # 普通用戶頁(yè)面user_n = input()if user_n == '1':add_book() # 添加書籍elif user_n == '2':del_book() # 刪除書籍elif user_n == '3':edit_book() # 修改書籍信息elif user_n == '4':look_book() # 查詢單本書籍信息elif user_n == '5':look_books() # 查詢所有書籍信息elif user_n == '6':break # 退出普通用戶頁(yè)面else:print("非法輸入!!!")print("請(qǐng)?jiān)俅芜x擇:")# 主函數(shù) def main():# 循環(huán)菜單主頁(yè)面while True:menu() # 主菜單頁(yè)面menu_n = input()if menu_n == '1':sign_up()elif menu_n == '2':# 循環(huán)用戶菜單頁(yè)面name = login() # 用戶登陸后返回值namewhile_user(name) # 用戶與管理者elif menu_n == '3':set_init_data()breakelse:print("非法輸入!!!")print("請(qǐng)?jiān)俅芜x擇:")if __name__ == '__main__':# 初始信息讀取books, users = get_init_data()# 調(diào)用主函數(shù)main()總結(jié)
以上是生活随笔為你收集整理的python图书管理系统的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 各银行车主信用卡排名:有车一族这里看过来
- 下一篇: 机器学习笔记(十):机器学习系统的设计