<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
本文範例為大家分享了python實現圖書管理系統的具體程式碼,供大家參考,具體內容如下
軟體python
事先用程式碼寫一個儲存資料的資料庫,也就是,.txt檔案
這是我模擬的一個資料
d1='[{"使用者名稱": "admin", "密碼": "123", "姓名": "張三"},{"使用者名稱": "aaa", "密碼": "123", "姓名": "李四"}]' with open(r"name_list.txt","w") as f: f.write(d1) d2='[{"編號":1001, "書名": "紅樓夢", "作者": "曹雪芹", "借出狀態": "可借"}, {"編號":1002, "書名": "java教學","作者": "齊一天", "借出狀態": "可借"}, {"編號":1003, "書名": "聖經","作者": "耶穌", "借出狀態": "已借出"}, {"編號":1004, "書名": "李白詩集","作者": "李白", "借出狀態": "可借"} ]' with open(r"books.txt","w") as f: f.write(d2)
資料準備好開始:
一步是讀取資料庫中的資料,將其轉換為字串,因為接下來的資料都是字串的處理
def readUser(): with open(r"name_list.txt","r") as f: jsondata=f.read() userlist=json.loads(jsondata) return userlist
這一步是將外部資料寫入資料庫
def writeData(listb): jsondata=json.dumps(listb,ensure_ascii=False) with open(r"name_list.txt","w") as f: f.write(jsondata) print("----------------資料寫入成功!")
1.使用者登入:
def login(): userlist=readUser() uname=input("請輸入您的使用者名稱:") upwd=input("請輸入您的密碼:") msg="失敗" for user in userlist: if uname==user["使用者名稱"] and upwd==user["密碼"]: print("恭喜",user["姓名"],"登入成功") msg="成功" if msg=="失敗": print("登入失敗,請從新登入!") return msg
2.顯示圖書列表:
def Showbooklist(): Booklist=readBook() print("**************************圖書目錄**************************") for data in Booklist: print(data["編號"],"t",data["書名"],"ttt",data["作者"],"ttt",data["借出狀態"]) print("---------------------------------------------------")
3.新增圖書
def addBook(): Booklist=readBook() numlist=[] for book in Booklist: numlist.append(book["編號"]) newnum=max(numlist)+1 Bname=input("請輸入書名:") writer=input("請輸入圖書作者:") condi="可借" newBooklist={"編號": newnum, "書名": Bname, "作者": writer,"借出狀態":condi} Booklist.append(newBooklist) writeBook(Booklist)
4.刪除圖書
def delbook(): Booklist=readBook() Bnum=int(input("請輸入要刪除的圖書編號:")) Bname=input("請輸入要刪除的圖書名稱:") for book in Booklist: if Bnum==book["編號"] or Bname==book["書名"]: Booklist.remove(book) print("圖書已",book["書名"],"經刪除") writeBook(Booklist)
5.借閱圖書
def lendbook(): Booklist=readBook() Bnum=int(input("請輸入要借閱的圖書編號:")) Bname=input("請輸入要借閱的圖書名稱:") for book in Booklist: if Bnum==book["編號"] or Bname==book["書名"]: if book["借出狀態"]=="可借": print("此書在架,可借閱") a=int(input("借閱請安1,退出請按0:")) if a==1: book["借出狀態"]="已借出" else: break else: print("此書已被借出,等歸還後再借") writeBook(Booklist)
6.歸還圖書
def returnbook(): Booklist=readBook() Bnum=int(input("請輸入要還的圖書編號:")) Bname=input("請輸入要還的圖書名稱:") for book in Booklist: if Bnum==book["編號"] or Bname==book["書名"]: if book["借出狀態"]=="已借出": book["借出狀態"]="可借" print(book["書名"],"已還") else: print(book["書名"],"書已在架,不用歸還") writeBook(Booklist)
最後是呼叫所有模組的總程式:
while 1==1: print("*************************圖書管理系統2.0******************************") msg=login() if msg=="成功": print("1.顯示所有的圖書;n2.圖書上架;n3.圖書下架;n4.借閱;n5.歸還;n6.退出") print("---------------------------------------------------------------------") while 2==2: choice=int(input("請輸入業務編號(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("沒有此業務,請重新選擇") continue
這位是執行後的效果圖。
以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支援it145.com。
相關文章
<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
综合看Anker超能充系列的性价比很高,并且与不仅和iPhone12/苹果<em>Mac</em>Book很配,而且适合多设备充电需求的日常使用或差旅场景,不管是安卓还是Switch同样也能用得上它,希望这次分享能给准备购入充电器的小伙伴们有所
2021-06-01 09:31:42
除了L4WUDU与吴亦凡已经多次共事,成为了明面上的厂牌成员,吴亦凡还曾带领20XXCLUB全队参加2020年的一场音乐节,这也是20XXCLUB首次全员合照,王嗣尧Turbo、陈彦希Regi、<em>Mac</em> Ova Seas、林渝植等人全部出场。然而让
2021-06-01 09:31:34
目前应用IPFS的机构:1 谷歌<em>浏览器</em>支持IPFS分布式协议 2 万维网 (历史档案博物馆)数据库 3 火狐<em>浏览器</em>支持 IPFS分布式协议 4 EOS 等数字货币数据存储 5 美国国会图书馆,历史资料永久保存在 IPFS 6 加
2021-06-01 09:31:24
开拓者的车机是兼容苹果和<em>安卓</em>,虽然我不怎么用,但确实兼顾了我家人的很多需求:副驾的门板还配有解锁开关,有的时候老婆开车,下车的时候偶尔会忘记解锁,我在副驾驶可以自己开门:第二排设计很好,不仅配置了一个很大的
2021-06-01 09:30:48
不仅是<em>安卓</em>手机,苹果手机的降价力度也是前所未有了,iPhone12也“跳水价”了,发布价是6799元,如今已经跌至5308元,降价幅度超过1400元,最新定价确认了。iPhone12是苹果首款5G手机,同时也是全球首款5nm芯片的智能机,它
2021-06-01 09:30:45