python模擬實(shí)現(xiàn)圖書(shū)管理系統(tǒng)
本文實(shí)例為大家分享了python實(shí)現(xiàn)圖書(shū)管理系統(tǒng)的具體代碼,供大家參考,具體內(nèi)容如下
軟件python
事先用代碼寫(xiě)一個(gè)存儲(chǔ)數(shù)據(jù)的數(shù)據(jù)庫(kù),也就是,.txt文件
這是我模擬的一個(gè)數(shù)據(jù)
d1='[{"用戶(hù)名": "admin", "密碼": "123", "姓名": "張三"},{"用戶(hù)名": "aaa", "密碼": "123", "姓名": "李四"}]' with open(r"name_list.txt","w") as f: ?? ??? ?f.write(d1) d2='[{"編號(hào)":1001, "書(shū)名": "紅樓夢(mèng)", "作者": "曹雪芹", "借出狀態(tài)": "可借"},\ {"編號(hào)":1002, "書(shū)名": "java教程","作者": "齊一天", "借出狀態(tài)": "可借"},\ {"編號(hào)":1003, "書(shū)名": "圣經(jīng)","作者": "耶穌", "借出狀態(tài)": "已借出"},\ {"編號(hào)":1004, "書(shū)名": "李白詩(shī)集","作者": "李白", "借出狀態(tài)": "可借"}\ ]' with open(r"books.txt","w") as f: ?? ??? ?f.write(d2)
數(shù)據(jù)準(zhǔn)備好開(kāi)始:
一步是讀取數(shù)據(jù)庫(kù)中的數(shù)據(jù),將其轉(zhuǎn)換為字符串,因?yàn)榻酉聛?lái)的數(shù)據(jù)都是字符串的處理
def readUser(): ?? ?with open(r"name_list.txt","r") as f: ?? ??? ?jsondata=f.read() ?? ?userlist=json.loads(jsondata) ?? ?return userlist
這一步是將外部數(shù)據(jù)寫(xiě)入數(shù)據(jù)庫(kù)
def writeData(listb): ?? ?jsondata=json.dumps(listb,ensure_ascii=False) ?? ?with open(r"name_list.txt","w") as f: ?? ??? ?f.write(jsondata) ?? ??? ?print("----------------數(shù)據(jù)寫(xiě)入成功!")
1.用戶(hù)登錄:
def login(): ?? ?userlist=readUser() ?? ?uname=input("請(qǐng)輸入您的用戶(hù)名:") ?? ?upwd=input("請(qǐng)輸入您的密碼:") ?? ?msg="失敗" ?? ?for user in userlist: ?? ??? ?if uname==user["用戶(hù)名"] and upwd==user["密碼"]: ?? ??? ??? ?print("恭喜",user["姓名"],"登錄成功") ?? ??? ??? ?msg="成功" ?? ?if msg=="失敗": ?? ??? ?print("登錄失敗,請(qǐng)從新登錄!") ?? ?return msg
2.顯示圖書(shū)列表:
def Showbooklist(): ?? ?Booklist=readBook() ?? ?print("**************************圖書(shū)目錄**************************") ?? ?for data in Booklist: ?? ??? ?print(data["編號(hào)"],"\t",data["書(shū)名"],"\t\t\t",data["作者"],"\t\t\t",data["借出狀態(tài)"]) ?? ?print("---------------------------------------------------")
3.添加圖書(shū)
def addBook(): ?? ?Booklist=readBook() ?? ?numlist=[] ?? ?for book in Booklist: ?? ??? ?numlist.append(book["編號(hào)"]) ?? ?newnum=max(numlist)+1 ?? ?Bname=input("請(qǐng)輸入書(shū)名:") ?? ?writer=input("請(qǐng)輸入圖書(shū)作者:") ?? ?condi="可借" ?? ?newBooklist={"編號(hào)": newnum, "書(shū)名": Bname, "作者": writer,"借出狀態(tài)":condi} ?? ?Booklist.append(newBooklist) ?? ?writeBook(Booklist)
4.刪除圖書(shū)
def delbook(): ?? ?Booklist=readBook() ?? ?Bnum=int(input("請(qǐng)輸入要?jiǎng)h除的圖書(shū)編號(hào):")) ?? ?Bname=input("請(qǐng)輸入要?jiǎng)h除的圖書(shū)名稱(chēng):") ?? ?for book in Booklist: ?? ??? ?if Bnum==book["編號(hào)"] or Bname==book["書(shū)名"]: ?? ??? ??? ?Booklist.remove(book) ?? ??? ??? ?print("圖書(shū)已",book["書(shū)名"],"經(jīng)刪除") ?? ?writeBook(Booklist)
5.借閱圖書(shū)
def lendbook(): ?? ?Booklist=readBook() ?? ?Bnum=int(input("請(qǐng)輸入要借閱的圖書(shū)編號(hào):")) ?? ?Bname=input("請(qǐng)輸入要借閱的圖書(shū)名稱(chēng):") ?? ?for book in Booklist: ?? ??? ?if Bnum==book["編號(hào)"] or Bname==book["書(shū)名"]: ?? ??? ??? ?if book["借出狀態(tài)"]=="可借": ?? ??? ??? ??? ?print("此書(shū)在架,可借閱") ?? ??? ??? ??? ?a=int(input("借閱請(qǐng)安1,退出請(qǐng)按0:")) ?? ??? ??? ??? ?if a==1: ?? ??? ??? ??? ??? ?book["借出狀態(tài)"]="已借出"?? ? ?? ??? ??? ??? ?else: ?? ??? ??? ??? ??? ?break ?? ??? ??? ?else: ?? ??? ??? ??? ?print("此書(shū)已被借出,等歸還后再借") ?? ?writeBook(Booklist)
6.歸還圖書(shū)
def returnbook(): ?? ?Booklist=readBook() ?? ?Bnum=int(input("請(qǐng)輸入要還的圖書(shū)編號(hào):")) ?? ?Bname=input("請(qǐng)輸入要還的圖書(shū)名稱(chēng):") ?? ?for book in Booklist: ?? ??? ?if Bnum==book["編號(hào)"] or Bname==book["書(shū)名"]: ?? ??? ??? ?if book["借出狀態(tài)"]=="已借出": ?? ??? ??? ??? ?book["借出狀態(tài)"]="可借" ?? ??? ??? ??? ?print(book["書(shū)名"],"已還") ?? ??? ??? ?else: ?? ??? ??? ??? ?print(book["書(shū)名"],"書(shū)已在架,不用歸還") ?? ?writeBook(Booklist)
最后是調(diào)用所有模塊的總程序:
while 1==1: ?? ?print("*************************圖書(shū)管理系統(tǒng)2.0******************************") ?? ?msg=login() ?? ?if msg=="成功": ?? ??? ?print("1.顯示所有的圖書(shū);\n2.圖書(shū)上架;\n3.圖書(shū)下架;\n4.借閱;\n5.歸還;\n6.退出") ?? ?print("---------------------------------------------------------------------") ?? ?while 2==2: ?? ??? ?choice=int(input("請(qǐng)輸入業(yè)務(wù)編號(hào)(1-6):")) ?? ??? ?if choice==1: ?? ??? ??? ?Showbooklist() ?? ??? ?elif choice==2: ?? ??? ??? ?addBook() ?? ??? ?elif choice==3: ?? ??? ??? ?delbook() ?? ??? ?elif choice==4: ?? ??? ??? ?lendbook() ?? ??? ?elif choice==5: ?? ??? ??? ?returnbook() ?? ??? ?elif choice==6: ?? ??? ??? ?break ?? ??? ?else: ?? ??? ??? ?print("沒(méi)有此業(yè)務(wù),請(qǐng)重新選擇") ?? ??? ??? ?continue
這位是執(zhí)行后的效果圖。
以上就是本文的全部?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面向?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)簡(jiǎn)單的圖書(shū)管理系統(tǒng)
相關(guān)文章
python+selenium+chromedriver實(shí)現(xiàn)爬蟲(chóng)示例代碼
這篇文章主要介紹了python+selenium+chromedriver實(shí)現(xiàn)爬蟲(chóng)示例代碼,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2020-04-04python實(shí)現(xiàn)pptx批量向PPT中插入圖片
大家好,本篇文章主要講的是python實(shí)現(xiàn)pptx批量向PPT中插入圖片,感興趣的同學(xué)趕快來(lái)看一看吧,對(duì)你有幫助的話(huà)記得收藏一下2022-02-02經(jīng)驗(yàn)豐富程序員才知道的8種高級(jí)Python技巧
這篇文章主要介紹了經(jīng)驗(yàn)豐富程序員才知道的8種高級(jí)Python技巧,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-07-07pycharm下打開(kāi)、執(zhí)行并調(diào)試scrapy爬蟲(chóng)程序的方法
本篇文章主要介紹了pycharm下打開(kāi)、執(zhí)行并調(diào)試scrapy爬蟲(chóng)程序的方法,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2017-11-11Python批量將圖片灰度化的實(shí)現(xiàn)代碼
這篇文章主要介紹了Python批量將圖片灰度化的實(shí)現(xiàn)代碼,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-04-04python將時(shí)分秒轉(zhuǎn)換成秒的實(shí)例
今天小編就為大家分享一篇python將時(shí)分秒轉(zhuǎn)換成秒的實(shí)例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2019-12-12