# 图书管理系统
# 宝安小学图书馆开馆了,准备开发一个图书管理系统。
# 用json模拟数据库的方式完成下列业务:
# 1.用户登录;login()
# 2.显示图书列表;showAllBooks()
# 3.图书上架;addBook() 增加图书信息
# 4.图书下架;delBook() 删除增加图书信息
# 5.借书;lendBook()判断借出状态是不是可借,如果是,就更改为已借出
# 6.还书;returnBook()
# 7.退出。
# 使用json数据保存用户数据(包含用户名,密码,姓名);
# 使用json数据保存图书数据(包含编号,书名,作者,借出状态state);可借---已借出
# 编写用户各个业务函数,在main函数中将所有函数串联起来;
import json
import datetime
import time
# #写入初始数据
# d1='[{"用户名": "admin", "密码": "123", "姓名": "张三"},{"用户名": "aaa", "密码": "123", "姓名": "李四"}]'
# with open(r"users.txt","w") as f:
# f.write(d1)
# d2='[{"编号":1001, "书名": "<红楼梦>", "作者": "曹雪芹", "借出状态": "可借"},\
# {"编号":1002, "书名": "<java教程>","作者": "齐一天", "借出状态": "可借"},\
# {"编号":1003, "书名": "<圣经>","作者": "耶稣", "借出状态": "已借出"},\
# {"编号":1004, "书名": "<李白诗集>","作者": "李白", "借出状态": "可借"}\
# ]'
# with open(r"books.txt","w") as f:
# f.write(d2)
#读json数据
def readUsers():
with open (r"users.txt","r") as f:
jsonData = f.read()
dataList = json.loads(jsonData)
return dataList
def readBooks():
with open (r"books.txt","r") as f :
jsonData = f.read()
dataList = json.loads(jsonData)
return dataList
#写json数据
def writeData(dataList):
jsonData = json.dumps(dataList,ensure_ascii = False)
with open(r"books.txt","w") as f:
f.write(jsonData)
print("写入数据成功!")
#1 用户登录
def login():
msg = "失败"
usersList = readUsers()
name = input("请输入用户名:")
pwd = input("请输入密码:")
for user in usersList:
if name == user["用户名"] and pwd == user["密码"]:
time.sleep(1)
print(user["姓名"],",登陆成功!\n\n")
msg = "成功"
break
if msg == "失败":
time.sleep(1)
print("用户名或密码输入错误!")
return msg
#2 显示图书列表:showAllBooks()
def showAllBooks():
booksList = readBooks()
print("-----------------------------------------")
for book in booksList:
print(book["编号"]," ",book["书名"]," ", book["作者"]," ", book["借出状态"])
print("-----------------------------------------")
#3 图书上架:addBook()
def addBook():
booksList = readBooks()
numList =[]
for book in booksList:
numList.append(book["编号"])
newNum =max(numList) + 1
bookName = input("请输入图书名:")
bookName="<"+bookName+">"
author = input("请输入作者名字:")
state="可借"
newBook = {"编号":newNum,"书名":bookName,"作者":author,"借出状态":state}
booksList.append(newBook)
writeData(booksList)
#4 图书下架:delBook()
def delBook():
booksList = readBooks()
data1 = input("请输入要下架的图书名称:")
data2 = input("请输入要下架的图书编号:")
for book in booksList:
if data1 == book["编号"] or data2 == book["书名"]:
booksList.remove(book) #删除图书信息
print("图书:",book["书名"],"已下架")
writeData(booksList)
#5 借书:lendBook()
def lendBook():
booksList=readBooks()
num=int(input("请输入要借的图书编号:"))
msg=0 #0没有
for book in booksList:
if num==book["编号"]:
msg=2
if book["借出状态"]=="可借":
print("----您已成功借出图书:",book["书名"],"!")
book["借出状态"]="已借出"
writeData(booksList)
else:
print("----",book["书名"],"已经借出!下次再来吧!")
if msg==0:
print("-----没有此图书!")
#6 还书:returnBook():
def returnBook():
booksList=readBooks()
num=int(input("请输入要归还的图书编号:"))
msg=0 #0没有
for book in booksList:
if num==book["编号"]:
msg=2
if book["借出状态"]=="已借出":
print("----成功归还图书",book["书名"],"!")
book["借出状态"]="可借"
writeData(booksList)
else:
print("---该图书不允许归还!")
if msg==0:
print("-----没有此图书!")
#---主函数
def main():
print("***********************图书管理系统1.0*************************")
msg=login()
# msg="成功"
if msg=="成功":
while 1==1:
print("1.显示所有图书;\n2.图书上架;\n3.图书下架;\n4.借书;\n5.还书;\n6.退出。")
print("*************************************************************")
c=int(input("请输入业务编号(1-6):"))
if c==1:
showAllBooks()
elif c==2:
addBook()
showAllBooks()
elif c==3:
delBook()
showAllBooks()
elif c==4:
lendBook()
showAllBooks()
elif c==5:
returnBook()
showAllBooks()
elif c==6:
break
else:
print("没有此业务!")
#---
if __name__ == '__main__':
main()
python for循环写图书管理 基于python的图书管理系统
转载本文章为转载内容,我们尊重原作者对文章享有的著作权。如有内容错误或侵权问题,欢迎原作者联系我们进行内容更正或删除文章。
提问和评论都可以,用心的回复会被更多人看到
评论
发布评论
相关文章