Python|图书管理系统

# 图书管理系统

# 宝安小学图书馆开馆了,准备开发一个图书管理系统。
# 用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()



  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值