图书管理系统python代码
一、鹿寨小学图书馆开馆了,准备开发一个图书管理系统。用json模拟数据库的方式完成下列业务:
1.用户登录;login()  判断用户名输入错误三次即强制退出,密码输入错误三次也强制退出。
2.显示图书列表;showAllBooks()
3.图书上架;addBook()  增加图书信息
4.图书下架;delBook() 删除增加图书信息
5.借书;lendBook()判断借出状态是不是可借,如果是,就更改为已借出
6.还书;returnBook()
7.显示用户 showallusers()    显示用户名
8.增加用户 adduser()        增加用户
9.删除用户 deluser()        删除用户
10.退出
a.使用json数据保存用户数据(包含用户名,密码,姓名);
b.使用json数据保存图书数据(包含编号,书名,作者,借出状态state);
可借---已借出
c.编写用户各个业务eclipse中文翻译函数,在main函数中将所有函数串联起来
二、需要注意的是:第一次运行程序时,标黄的初始化数据要运行,第二次运行后就不需要保留(原因:json初始数据需要程序写入,不能手动添加!如果第二次运行时仍然保留的话,数据库的信息都会被初始化!)
该程序为面向过程的语言,缺点是当用户信息或图书信息变得很大时,程序的执行效率就会变得很慢,后续会利用面向对象的方法编写图书管理系统。完整的Python程序如下:
import json
import time
import sys
# 初始化数据
# booksdata = '[{"编号": 1001, "书名": "<红楼梦>", "作者": "曹雪芹", "借出状态": "已借出"}, \
# {"编号": 1002, "书名": "<java教程>", "作者": "齐一天", "借出状态": "可借"}, \
# {"编号": 1003, "书名": "<圣经>", "作者": "耶稣", "借出状态": "可借"}]'
# usersdata = '[{"用户名": "admin", "密码": "123", "姓名": "张三"},{"用户名": "aaa", "密码": "123", "姓名": "李四"}]'
# with open(", "w") as f:
#    f.write(usersdata)
# with open(", "w") as f:
#    f.write(booksdata)
# 读用户数据
def readusersdata():
    with open(", "r") as f:
        jsondata = f.read()
python教材下载    listdata = json.loads(jsondata)
    return listdata
# 读图书数据
def readbooksdata():
    with open(", "r") as f:
        jsondata = f.read()
    listdata = json.loads(jsondata)
    return listdata
# 写用户数据
def writeusersdata(listdata):
    jsondata = json.dumps(listdata)
    with open(", "w") as f:
        f.write(jsondata)
    print("---用户数据写入成功")
# 写图书数据
def writebooksdata(listdata):
    jsondata = json.dumps(listdata)
    with open(", "w") as f:
update语句可以同时修改多个数据列吗
        f.write(jsondata)
    print("---图书数据写入成功")
# 用户登录
def login():
    with open(", "r") as f:
        listusersdata = f.read()
    usersdata = json.loads(listusersdata)
    user = input("请输入用户名:")
    msg = 0  # 判断用户名是否存在
    usererror = 0  # 判断用户名输入错误次数
    passworderror = 0  # 判断密码输入错误次数
    while 1 == 1:
        for x in usersdata:
            if x["用户名"] == user:
                usererror = 0
                password = input("请输入用户密码:")
                msg == 1
                while 1 == 1:
                    if x["密码"] == password:
                        passworderror = 0
                        print("恭喜您,登入成功!")
float数值范围                        return "成功"
                    else:
                        passworderror += 1
                        if passworderror == 2:
                            print("密码已输入错误两次,第三次输入错误将锁定账号!")
                        if passworderror == 3:
                            print("对不起!第三次密码输入错误,账号已锁定!系统正在退出...")
                            return "失败"
                        password = input("密码错误!请重新输入:")
        if msg == 0:
            usererror += 1
            if usererror == 2:
                print("账号已输入错误两次,第三次输入错误将锁定账号!")
            if usererror == 3:
                print("对不起!第三次账号输入错误,账号已锁定!系统正在退出...")
                return "失败"
            user = input("无此用户名!请重新输入:")
# 显示图书列表
def showAllBooks():
    listdata = readbooksdata()
mysql登录access denied
    print("==============图书管理系统================")
    print("编号", "        ", "书名", "        ", "作者", "      ", "借出状态")
    for x in listdata:
        print(x["编号"], "      ", x["书名"], "        ", x["作者"], "      ", x["借出状态"])
# 图书上架
def addBook():
foci翻译    print("==============增加图书信息================")
    listdata = readbooksdata()
    list1 = []
    for book in listdata:
        list1.append(book["编号"])
    newNum = max(list1) + 1
    #    number=int(input("请输入图书编号:"))
    #    msg=0 #判断图书编号是否已存在
    #    while 1==1:
    #        for x in listdata:
    #            if x["编号"]==number:
    #                msg=1
    #        if msg==1:
    #            number=int(input("系统中已存在该编号!请输入新的图书编号:"))
    #        else:
    #            break
    book = input("请输入书名:")
    book = "<" + book + ">"
    author = input("请输入作者:")
    state = "可借"
    newBook = {"编号": newNum, "书名": book, "作者": author, "借出状态": state}
    listdata.append(newBook)
    writebooksdata(listdata)
# 图书下架
def delBook():
    listdata = readbooksdata()
    showAllBooks()
    number = int(input("请输入要删除的图书编号:"))
    for book in listdata:
        if book["编号"] == number:
            ve(book)

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。