圖書管理系統

功能簡介
- 添加圖書時,圖書ID不能重復,圖書名可重復
- 洗掉,查詢,修改功能,輸入圖書名之后提供所有的同名的圖書,用戶可以按照圖書序號對具體的一本書進行操作
- 顯示書籍,分行顯示,每行一本書的資訊
書籍資訊以如下格式保存在txt文本檔案格式下

源代碼
#-*- coding=utf8 -*-
# @author:sololi
# date: 2020/10/24
# 檔案說明 :
# 123檔案存放 用戶資訊 456 檔案存放猜拳結果
import sys
def print_muen():
print("----選單提示----")
print("[1]:添加圖書")
print("[2]:查詢圖書")
print("[3]:洗掉圖書")
print("[4]:修改圖書資訊")
print("[5]:顯示所有圖書")
print("[6]:退出")
def add_book():
book_id=input("請輸入圖書編號")
book_name=input("請輸入圖書名稱")
book_loc=input("請輸入圖書位置")
for i in books:
if book_id==i["book_id"]:
print("編號重復")
else:
book={}
book["book_id"]=book_id
book["book_name"]=book_name
book["book_loc"]=book_loc
books.append(book)
write_book(book)
print("添加成功")
def find_book():
jg=0
while True:
book_name=input("輸入要找的書名")
for i in books:
if book_name==i["book_name"]:
print(i)
jg=1
if jg==0:
print("查找失敗請重新輸入")
continue
elif jg==1:
break
def dell_book():
book_name =input("請輸入圖書書名")
i=0
j=0
jg=0
flag=[]
while i<len(books):
if books[i]["book_name"]==book_name:
id=books[i]["book_id"]
flag.append(id)
print("圖書編號:{}".format(id))
jg=1
i+=1
if jg==0:
print("找不到圖書名")
if jg==1:
book_id=input("請輸入洗掉的圖書編號")
i=0
while j < len(flag):
if flag[j] == book_id:
while i < len(books):
if books[i]["book_id"] == book_id:
del books[i]
dell_file(book_id)
print("洗掉成功")
break
i+=1
break
j+=1
else:
print("輸入的編號有誤")
def modify_book():
book_name = input("請輸入修改的圖書名稱")
i = 0
jg = 0
flag = []
while i < len(books):
if books[i]["book_name"] == book_name:
id = books[i]["book_id"]
flag.append(id)
print("圖書編號:{}".format(id))
jg = 1
i += 1
if jg == 0:
print("找不到圖書名")
book_id = input("請輸入修改的圖書編號,或者其他需要修改的圖書編號")
for i in books:
if book_id == i["book_id"]:
New_id = input("新的圖書編號")
if New_id == i["book_id"]:
print("輸入編號重復")
break
else:
New_name = input("新的圖書名稱")
New_loc = input("新的圖書位置")
i["book_id"] = New_id
i["book_name"] = New_name
i["book_loc"] = New_loc
write_book(i)
break
else:
print("輸入有誤")
def all_book():
for i in books:
print(i)
def read_book(data):#將文本檔案里的圖書資訊讀取到books中
f = open(data, mode="r", encoding="utf8")
books = f.readlines()
f.close()
for i in range(0, len(books)):
books[i] = eval(books[i].replace("\n", ""))
return books
def write_book(books):#將books里添加的內容放到檔案檔案里存盤
f = open('data', mode='a+', encoding='utf8')
a = str(books)
f.write("\n")
f.write(a)
f.close()
def dell_file(key):#將books里面洗掉的內容更新到文本檔案里
f = open('data', 'r+',encoding='utf8')
transit = "" # 創立空的字串用于儲存檔案
for line in f: # 使用迭代器讀取每一段文本檔案的內容
if key in line:
continue
else:
transit += line # 將資料寫入存盤到字串中
f.close()
nf = open('data', 'w+',encoding='utf8') # 以清空原文本檔案內容的方式打開檔案寫入
nf.write(transit)
nf.close()
if __name__=="__main__":#主要流程
while True:
data="data"
books=read_book(data)
print_muen()
choice=input("請輸入您的選擇")
if choice=='1':
add_book()
all_book()
elif choice=='2':
find_book()
elif choice=='3':
dell_book()
all_book()
elif choice=='4':
modify_book()
all_book()
elif choice == '5':
all_book()
elif choice == '6':
print("感謝您的使用")
sys.exit(0)
else:
print("您的輸入有誤,請重新輸入")
還可以添加一個登錄與注冊系統:
https://blog.csdn.net/weixin_51322568/article/details/109477348
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/209998.html
標籤:其他
上一篇:云計算和邊緣計算的區別是什么?
