python代碼實(shí)現(xiàn)圖書(shū)管理系統(tǒng)
本文實(shí)例為大家分享了python代碼實(shí)現(xiàn)圖書(shū)管理系統(tǒng)的具體代碼,供大家參考,具體內(nèi)容如下
圖書(shū)管理系統(tǒng)

功能簡(jiǎn)介
- 添加圖書(shū)時(shí),圖書(shū)ID不能重復(fù),圖書(shū)名可重復(fù)
- 刪除,查詢(xún),修改功能,輸入圖書(shū)名之后提供所有的同名的圖書(shū),用戶(hù)可以按照?qǐng)D書(shū)序號(hào)對(duì)具體的一本書(shū)進(jìn)行操作
- 顯示書(shū)籍,分行顯示,每行一本書(shū)的信息
書(shū)籍信息以如下格式保存在txt文本文件格式下

源代碼
#-*- coding=utf8 -*-
# @author:sololi
# date: 2020/11/12
# 文件說(shuō)明 : data
import sys
def print_muen():
print("----菜單提示----")
print("[1]:添加圖書(shū)")
print("[2]:查詢(xún)圖書(shū)")
print("[3]:刪除圖書(shū)")
print("[4]:修改圖書(shū)信息")
print("[5]:顯示所有圖書(shū)")
print("[6]:退出")
def add_book():
book_id=input("請(qǐng)輸入圖書(shū)編號(hào)")
book_name=input("請(qǐng)輸入圖書(shū)名稱(chēng)")
book_loc=input("請(qǐng)輸入圖書(shū)位置")
for i in books:
if book_id==i["book_id"]:
print("編號(hào)重復(fù)")
break
else:
book={}
book["book_id"]=book_id
book["book_name"]=book_name
book["book_loc"]=book_loc
books.append(book)
new_file(books)
print("添加成功")
def find_book():
jg=0
while True:
book_name=input("輸入要找的書(shū)名")
for i in books:
if book_name==i["book_name"]:
print(i)
jg=1
if jg==0:
print("查找失敗請(qǐng)重新輸入")
continue
elif jg==1:
break
def dell_book():
book_name =input("請(qǐng)輸入圖書(shū)書(shū)名")
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("圖書(shū)編號(hào):{}".format(id))
jg=1
i+=1
if jg==0:
print("找不到圖書(shū)名")
if jg==1:
book_id=input("請(qǐng)輸入刪除的圖書(shū)編號(hào)")
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]
new_file(books)
print("刪除成功")
break
i+=1
break
j+=1
else:
print("輸入的編號(hào)有誤")
return books
def modify_book():
book_name = input("請(qǐng)輸入修改的圖書(shū)名稱(chēng)")
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("本書(shū)圖書(shū)編號(hào):{}".format(id))
jg = 1
i += 1
if jg == 0:
print("找不到圖書(shū)名")
elif jg == 1:
book_id = input("請(qǐng)輸入修改的圖書(shū)編號(hào),或者其他需要修改的圖書(shū)編號(hào)")
for i in books:
if book_id == i["book_id"]:
New_id = input("新的圖書(shū)編號(hào)")
if New_id == i["book_id"]:
print("輸入編號(hào)重復(fù)")
break
else:
New_name = input("新的圖書(shū)名稱(chēng)")
New_loc = input("新的圖書(shū)位置")
i["book_id"] = New_id
i["book_name"] = New_name
i["book_loc"] = New_loc
new_file(books)
break
else:
print("輸入有誤")
def all_book():
for i in books:
print(i)
def read_book(data):#將文本文件里的圖書(shū)信息讀取到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 new_file(books):#將books的內(nèi)容更新到文本文件里
i=0
nf = open('data', 'w+',encoding='utf8') # 以清空原文本文件內(nèi)容的方式打開(kāi)文件寫(xiě)入
while i<len(books):
new=str(books[i])
nf.write(new)
if i !=len(books)-1:
nf.write("\n")
i+=1
nf.close()
if __name__=="__main__":#主要流程
while True:
data="data"
books=read_book(data)
print_muen()
choice=input("請(qǐng)輸入您的選擇")
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("您的輸入有誤,請(qǐng)重新輸入")
還可以添加一個(gè)登錄與注冊(cè)系統(tǒng):點(diǎn)擊此處
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
- python實(shí)現(xiàn)簡(jiǎn)易圖書(shū)管理系統(tǒng)
- python編寫(xiě)圖書(shū)管理系統(tǒng)
- Python實(shí)現(xiàn)簡(jiǎn)易的圖書(shū)管理系統(tǒng)
- Python實(shí)現(xiàn)圖書(shū)借閱管理系統(tǒng)
- Python實(shí)現(xiàn)圖書(shū)管理系統(tǒng)設(shè)計(jì)
- 基于python實(shí)現(xiàn)圖書(shū)管理系統(tǒng)
- python實(shí)現(xiàn)簡(jiǎn)單圖書(shū)管理系統(tǒng)
- Python簡(jiǎn)易版圖書(shū)管理系統(tǒng)
- python面向?qū)ο蠓▽?shí)現(xiàn)圖書(shū)管理系統(tǒng)
- wxpython實(shí)現(xiàn)圖書(shū)管理系統(tǒng)
- python圖書(shū)管理系統(tǒng)
- python實(shí)現(xiàn)圖書(shū)管理系統(tǒng)
- python模擬實(shí)現(xiàn)圖書(shū)管理系統(tǒng)
相關(guān)文章
python pymysql peewee關(guān)于時(shí)區(qū)問(wèn)題分析
這篇文章主要為大家介紹了python pymysql peewee關(guān)于時(shí)區(qū)問(wèn)題分析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-06-06
如何用Python和JS實(shí)現(xiàn)的Web SSH工具
這篇文章主要介紹了如何用Python和JS實(shí)現(xiàn)的Web SSH工具,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2021-02-02
Python入門(mén)之使用pandas分析excel數(shù)據(jù)
這篇文章主要給大家介紹了關(guān)于Python入門(mén)學(xué)習(xí)之使用pandas分析excel數(shù)據(jù)的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家學(xué)習(xí)或者使用python具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2021-05-05
Python實(shí)現(xiàn)批量將MP3音頻轉(zhuǎn)為WAV格式詳解
這篇文章主要介紹了通過(guò)Python實(shí)現(xiàn)將MP3音頻轉(zhuǎn)為WAV格式的方法,文中的示例代碼講解詳細(xì),對(duì)我們學(xué)習(xí)Python有一定幫助,感興趣的可以了解一下2021-12-12
Python實(shí)現(xiàn)隨機(jī)森林回歸與各自變量重要性分析與排序
這篇文章主要為大家詳細(xì)介紹了在Python環(huán)境中,實(shí)現(xiàn)隨機(jī)森林(Random Forest,RF)回歸與各自變量重要性分析與排序的過(guò)程,感興趣的小伙伴可以了解一下2023-02-02
python使用PyGame實(shí)現(xiàn)打磚塊游戲
打磚塊也是一個(gè)非常經(jīng)典的小游戲,玩法大致如下,用一個(gè)小車(chē)接一個(gè)小球,然后反射小球,使之打在磚塊上,當(dāng)小球碰到磚塊之后,則磚塊被消掉,邏輯十分清晰,本文將給大家介紹了python使用PyGame實(shí)現(xiàn)打磚塊游戲,文中有詳細(xì)的代碼示例供大家參考,需要的朋友可以參考下2023-12-12
一文教你學(xué)會(huì)使用Python中的多處理模塊
Python?多處理模塊是一個(gè)強(qiáng)大的工具,用于實(shí)現(xiàn)并行處理,提高程序的性能和效率,本文將詳細(xì)介紹?Python?中多處理模塊的使用方法,希望對(duì)大家有所幫助2024-01-01

