python之 模拟简单图书馆

单纯地用简单的代码流程来模拟图书馆系统,没有涉及到类的概念,仅仅用来练习简单的条件分支流程(if语句)和循环流程(for循环、while循环)等。

模拟图书馆系统包含的功能

(1)登录注册(用户、管理员)

(2)查询书籍、借书、还书

(3)退出登录

附上我的代码部分:


users = [['123456', '123@163.com', '22325378']]

adminers = [['123456','123456']]
admin_state = 0#默认

books = [
    #序号,书名,作者,出版社,ISBN,分类,库存,价格
    [1,'西游记','吴承恩','大明出版社','0001','玄幻小说','999',998],
    [2,'水浒传','施耐庵','大明出版社','0002','历史纪实','999',998],
    [3,'数据结构','严蔚敏','清华大学出版社','0003','科教文娱','0',2],
    [4,'时间简史','霍金','牛津大学出版社','0004','玄幻小说','777',50],
    [5,'斗罗大陆','唐家三少','大明出版社','0005','玄幻小说','99999',18888]]

alpha_table = ['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j',
               'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't',
               'u', 'v', 'w', 'x', 'y', 'z', 'A', 'B', 'C', 'D',
               'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N',
               'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X',
               'Y', 'Z', '0', '1', '2', '3', '4', '5', '6', '7', '8', '9']

#用户注册:
def logon():
    username = input("请输入用户名:")
    if len(username) < 8 or len(username) > 16:
        print("用户名长度为8~16位,请重新输入!")
        logon()
    else:
        email = input("请输入邮箱:")
        password = input("请输入密码:")
        if len(password)<8 or len(password)>16:
            print("密码长度为8~16位,请重新输入!")
        else:
            check_password = input("请确认密码:")
            if password == check_password:
                print("注册成功!")
                # 函数调用,每追加一列数据都进行换行 每个数据之间都有空格
                users.append([username,email,password])
                print(users)
                login_flags = input('是否登录?(yes/no)')
                if login_flags =='yes':
                    login()
                else:
                    pass
                return True
            else:
                print("两次输入的密码不一致,请重新输入!")
                # 递归调用
                logon()

#用户登录
def login():
    print("--------用户登录---------")
    flags = input("是否已经注册?(yes/no)")
    if flags =='yes':
        status = int(input("请输入身份类型:"))
        if status == 0:#管理员身份
            admin_name = input("输入管理员账户:")
            admin_password = input("输入管理员密码:")
            for adminer in adminers:
                if adminer[0] == admin_name and adminer[1] == admin_password:
                    print("登录成功!")
                    print("欢迎管理员",admin_name,"!")
                    operate_adminer()
                else:
                    flag = input("管理员登录失败!是否重新登录?(yes/no)")
                    if flag == 'yes':
                        login()
                    elif flag == 'no':
                        print("欢迎再来!")
        elif status == 1:
            username = input("输入用户名:")
            password = input("输入密码:")
            for user in users:
                if user[0] == username and user[2] == password:
                    print("登录成功!")
                    print("欢迎普通用户", username, "!")
                    operate_user()
                elif user[0] == username and user[1] != password:
                    print("密码不正确!")
                    login()
                else:
                    flag = input("登录失败!是否重新登录?(yes/no)")
                    if flag == 'yes':
                        login()
                    elif flag == 'no':
                        print("欢迎再来!")
        else:
            print("类型不存在!重新输入!")

    else:
        print("您还未注册,请先注册后再登录!")
        # 递归
        logon()

#个人信息
def person_information():
    status = int(input("请确认身份类型:"))
    name = input("请确认用户名:")
    if status == 0:
        print("欢迎管理员", name,"!")
    elif status == 1:
        print("欢迎普通用户",name,"!")
    tips = input("请选择操作:\n 1.查看个人信息\n 2.修改个人信息\n 3.返回\n 4.退出")
    tip = int(input(""))
    if tip == 1:
        if status == 0:
            for adminer in adminers:
                if adminer[0] == name:
                    print("用户名:", name, "\n密码:", adminer[2])
        elif status == 1:
            for user in users:
                if user[0] == name :
                    print("用户名:",name,"\n邮箱:",user[1],"\n密码:",user[2])
    elif tip == 2:
        tip = int(input("请选择操作:\n 1.修改邮箱\n 2.修改密码\n"))
        if tip == 1:
            if status == 1:
                for user in users:
                    if user[0] == name:
                        print("您目前的邮箱为:",user[1])
                        update = input("请输入要修改的邮箱:")
                        user[1] = update
                        print("邮箱已修改为:", user[1])
        elif tip == 2:
            if status == 0:
                for adminer in adminers:
                    if adminer[0] == name:
                        print("您目前的密码为:", adminer[2])
                        update = input("请输入要修改的密码:")
                        adminer[2] = update
                        print("密码已修改为:", adminer[2])
            elif status == 1:
                for user in users:
                    if user[0] == name:
                        print("您目前的密码为:",user[2])
                        update = input("请输入要修改的密码:")
                        user[2] = update
                        print("密码已修改为:", user[2])
        else:
            print("重新输入!")
    elif tip == 3:
        if status == 0:  # 管理员身份
            operate_adminer()
        elif status == 1:
            operate_user()
    elif tip == 4:
        tip = input("确定退出系统吗?(yes/no)")
        if tip == 'yes':
            goout()
    else:
        print("重新输入!")


#查询图书
def find_books():
    print("-----查看所有图书------")
    for book in books:
        print(book)
    tip = ("---请选择操作:\n 1.根据书名查找\n 2.根据作者查找\n 3.根据分类查找\n 4.根据价格查找\n 5.返回\n 6.退出")
    if tip == '1':
        findByName()
    elif tip == '2':
        findByAuthor()
    elif tip == '3':
        findBySort()
    elif tip == '4':
        findByPrice()
    elif tip == '5':
        operate_user()
    elif tip == '6':
        tip = input("确定退出系统吗?(yes/no)")
        if tip == 'yes':
            goout()

def findByName():
    # 根据书名查找
    book_name = input("---请输入要查找到书名:")
    for book in books:
        if book[1] == book_name:
            print(book)

def findByAuthor():
    book_author = input("---请输入要查找到作者:")
    for book in books:
        if book[2] == book_author:
            print(book)

def findBySort():
    book_sort = input("---请输入要查找到分类:")
    for book in books:
        if book[5] == book_sort:
            print(book)

def findByPrice():
    max_book_price = input("---请输入要查找到价格最大范围:")
    min_book_price = input("---请输入要查找到价格最小范围:")
    for book in books:
        if book[7] < max_book_price and book[7] > max_book_price:
            print(book)




def add_book():
    print("-----图书列表------")
    for book in books:
        print(book)
    book_name = input("请输入添加图书名:")
    book_author = input("请输入添加图书作者:")
    book_publish = input("请输入添加图书出版社:")
    book_isbn = input("请输入添加图书ISBN:")
    book_sort = input("请输入添加图书分类:")
    book_count = input("请输入添加图书库存量:")
    book_price = int(input("请输入添加图书价格:"))
    xuhao = len(books)+1
    books.append([xuhao,book_name,book_author,book_publish,book_isbn,book_sort,book_count,book_price])
    for book in books:
        if book[1] == book_name:
            print("添加图书成功!")

def update_book():
    print("-----图书列表------")
    for book in books:
        print(book)
    book_name = input("请输入修改图书名:")
    book_author = input("请输入修改图书作者:")
    book_publish = input("请输入修改图书出版社:")
    book_isbn = input("请输入修改图书ISBN:")
    book_sort = input("请输入修改图书分类:")
    book_count = input("请输入修改图书库存量:")
    book_price = int(input("请输入修改图书价格:"))
    for book in books:
        if book[1] == book_name:
            print(book)
            book[2] = book_author
            book[3] = book_publish
            book[4] = book_isbn
            book[5] = book_sort
            book[6] = book_count
            book[7] = book_price
            print("修改后的图书为:",book)

def del_book():
    print("-----图书列表------")
    for book in books:
        print(book)
    book_name = input("请输入要删除图书名:")
    for book in books:
        if book[1] == book_name:
            print("要删除图书为:",book)
            books.remove()
            print("删除成功!")

def borrow_book():
    print("-----图书列表------")
    for book in books:
        print(book)
    book_name = input("请输入要借图书名:")
    for book in books:
        if book[1] == book_name:
            print("要借图书为:",book)
            book[6] = str(int(book[6])-1)
            print(book)
            print("借书成功!")

def return_book():
    print("-----图书列表------")
    for book in books:
        print(book)
    book_name = input("请输入要还图书名:")
    for book in books:
        if book[1] == book_name:
            print("要还图书为:",book)
            book[6] = str(int(book[6])+1)
            print(book)
            print("还书成功!")


#系统菜单页面
def operate_user():
    while True:
        msg = int(input("请选择操作:\n 1.查询图书\n 2.借书\n 3.归还图书\n 4.个人信息\n 5.退出\n"))
        if msg == 1:
            find_books()
        elif msg == 2:
            borrow_book()
        elif msg == 3:
            return_book()
        elif msg == 4:
            person_information()
        elif msg == 5:
            msg = input("确定退出登录吗?(yes/no)")
            if msg == 'yes':
                goout()
                break

def operate_adminer():
    while True:
        msg = int(input("请选择操作:\n 1.查询图书\n 2.添加图书\n 3.修改图书\n 4.删除图书\n 5.借书\n 6.归还图书\n 7.个人信息\n 8.退出登录\n"))
        if msg == 1:
            find_books()
        elif msg == 2:
            add_book()
        elif msg == 3:
            update_book()
        elif msg == 4:
            del_book()
        elif msg == 5:
            borrow_book()
        elif msg == 6:
            return_book()
        elif msg == 7:
            person_information()
        elif msg == 8:
            msg = input("确定退出登录吗?(yes/no)")
            if msg == 'yes':
                goout()
                break
        else:
            print("重新输入!")


def goout():
    print("您已退出!")
while True:
    print(users)
    print("--------欢迎来到图书管理系统---------")
    print("请选择:1.登录   2.注册")
    result = int(input("请输入"))
    #注册登录
    if result == 1:
        login()
    elif result == 2:
        logon()
    else:
        print("重新输入!")

下面是运行代码的效果:

  • 3
    点赞
  • 38
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

水w

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值