python --图书管理系统

目录

 一、前言

二、思路

三、实现代码

①设定变量

②登录、注册界面

③借书界面

四、所有代码

五、打包为exe文件

 一、前言

此图书管理系统偏简易版,提供大概思路,实际可以根据自己需求做更多拓展

二、思路

主要从登录/注册 界面入手,进行一步一步拓展,将用户信息存入动态字典中,书籍信息存入列表中(当然,后续也可以增加更多功能,例如用户可以主动给图书馆捐赠书籍,设定积分系统来规定借的书的多少以及种类等等,如果是种类,则需要将列表换成字典),以及用户登录之后自行更改用户名和密码(本文中设定了index索引,所以更改这些信息很方便也很简单)-----可自己自行添加,比较简单,这里就不做拓展了

三、实现代码

①设定好需要的变量

# 定义变量区
n = 0
key = 0
index = 0  # 判断用户是否存在的索引
str1 = "0"  # 存储用户名
str_key = "0"  # 存储密码
users = {
}
book_list = ["老人与海", "红楼梦", "水浒传", "西游记",
             "三国演义", "解忧杂货铺", "哈利波特", "唐诗三百首",
             "小虎队大冒险", "查理九世", "鲁滨逊漂流记", "斯塔克工业制造"]  # 书单名称
day_time = 0  # 借书天数
day_time1 = 0  # 用户实际使用天数

咳咳,因为是漫威迷,所以加上了这个书籍(不要在意~~)

这里必须先定义一个空字典,以备后续动态添加用户信息做准备,如果不提前设定,则会出现未定义

②登录、注册界面

print("图书管理系统--\n")
    print("请登录后再使用\n")
    key = int(input("登录-1,若无账号请注册-3,按其余任意键退出\n"))
    if key == 3:
        n += 1
        print("请输入用户名和密码\n")
        str1 = input("用户名:")
        print("\n")
        str_key = input("密码:")
        # 注意此时不从0开始,从1开始
        users[n] = {
            "user_num": n,
            "name": str1,
            "keywords": str_key
        }
        print("当前用户信息:\n")
        print(users)
    elif key == 1:
        print("请输入用户名 \n")
        str2 = input("用户名: ")
        # 判断用户是否存在
        for i, user in users.items():  # 前者接受users字典的索引,后者user接受其索引下的值
            if str2 == user["name"]:
                index = i
                print(index)
                break
        if index == 0:
            print("请先注册\n")
            str3 = input("按下任意键跳转")
            continue
        # 用户存在,输入密码
        print("欢迎尊敬的 " + str2 + " 用户")
        print("请输入密码")
        while 1:
            key1 = input("密码: ")
            if key1 == users[index]["keywords"]:
                print("登陆成功")
                break
            else:
                print("请重新输入")

这里 可以看出之前设定 n的目的是为了更加方便的自动给用户贴上标签(也就是排序),这里对字典的遍历采用item()对其变换为列表之后再遍历,相比于之间使用 for i in length(users) 在这种情况下会更为准确,for i in length(users)会出现第一个注册的信息无法访问

③借书界面

 # 开始访问内部界面
        while 1:
            print("1---查看书籍信息\n")  # 提前创建好书籍信息
            print("2---租借书籍\n")
            print("3---归还书籍")
            print("任意键退出图书馆")
            kind_num = int(input("请选择选项: "))
            if kind_num == 1:
                print(book_list)  # 打印列表
                print("是否继续操作?Yes or No")
                choice = input(" ")
                if choice == "Yes":
                    print("请选择要借用的书籍:")  # 进入借书界面,选择借用书籍,借用天数,并在后台实时更新剩余书籍数目
                    print(book_list)
                    book_name = input("请输入要借用的书籍名称")
                    if book_name in book_list:
                        day_time = int(input("请输入要借用的天数:"))
                        print("借书成功,请按时归还")
                        book_list.remove(book_name)
                        print("剩余可借书籍")
                        print(book_list)
                    else:
                        print("不存在此书")
                        print("是否继续操作?Yes or No")
                        choice = input(" ")
                        if choice == "Yes":
                            continue
                        else:
                            break
                else:
                    break
            elif kind_num == 2:
                while 1:
                    print("请选择要借用的书籍:")  # 进入借书界面,选择借用书籍,借用天数,并在后台实时更新剩余书籍数目
                    print(book_list)
                    book_name = input("请输入要借用的书籍名称")
                    if book_name in book_list:
                        day_time = int(input("请输入要借用的天数:"))
                        print("借书成功,请按时归还")
                        book_list.remove(book_name)
                        print("剩余可借书籍")
                        print(book_list)
                    else:
                        print("图书馆暂未收藏此书籍")
                        print("是否继续操作?Yes or No")
                        choice = input(" ")
                        if choice == "Yes":
                            continue
                        else:
                            break
            elif kind_num == 3:
                # 进入归还界面,将书籍信息加入到列表中
                book_name = input("输入借用的书籍:")
                day_time1 = int(input("输入实际借用天数:"))
                if day_time1 <= day_time:
                    book_list.append(book_name)
                else:
                    print("已拉黑用户")
                    del users[index]  # 设定index索引的好处,因为登录之后,index并不会改变,所以可以很方便的进行操作信息,当然以后也可以根据这一点,让用户自行更改自己的用户名和密码
                    print("当前用户信息: \n")
                    print(users)
            else:
                # 任意键退出系统
                break

四、所有代码

# 图书管理系统----python综合实践

# 定义变量区
n = 0
key = 0
index = 0  # 判断用户是否存在的索引
str1 = "0"  # 存储用户名
str_key = "0"  # 存储密码
users = {
}
book_list = ["老人与海", "红楼梦", "水浒传", "西游记",
             "三国演义", "解忧杂货铺", "哈利波特", "唐诗三百首",
             "小虎队大冒险", "查理九世", "鲁滨逊漂流记", "斯塔克工业制造"]  # 书单名称
day_time = 0  # 借书天数
day_time1 = 0  # 用户实际使用天数
# 实体部分区域
while 1:
    print("图书管理系统--\n")
    print("请登录后再使用\n")
    key = int(input("登录-1,若无账号请注册-3,按其余任意键退出\n"))
    if key == 3:
        n += 1
        print("请输入用户名和密码\n")
        str1 = input("用户名:")
        print("\n")
        str_key = input("密码:")
        # 注意此时不从0开始,从1开始
        users[n] = {
            "user_num": n,
            "name": str1,
            "keywords": str_key
        }
        print("当前用户信息:\n")
        print(users)
    elif key == 1:
        print("请输入用户名 \n")
        str2 = input("用户名: ")
        # 判断用户是否存在
        for i, user in users.items():  # 前者接受users字典的索引,后者user接受其索引下的值
            if str2 == user["name"]:
                index = i
                print(index)
                break
        if index == 0:
            print("请先注册\n")
            str3 = input("按下任意键跳转")
            continue
        # 用户存在,输入密码
        print("欢迎尊敬的 " + str2 + " 用户")
        print("请输入密码")
        while 1:
            key1 = input("密码: ")
            if key1 == users[index]["keywords"]:
                print("登陆成功")
                break
            else:
                print("请重新输入")
        # 开始访问内部界面
        while 1:
            print("1---查看书籍信息\n")  # 提前创建好书籍信息
            print("2---租借书籍\n")
            print("3---归还书籍")
            print("任意键退出图书馆")
            kind_num = int(input("请选择选项: "))
            if kind_num == 1:
                print(book_list)  # 打印列表
                print("是否继续操作?Yes or No")
                choice = input(" ")
                if choice == "Yes":
                    print("请选择要借用的书籍:")  # 进入借书界面,选择借用书籍,借用天数,并在后台实时更新剩余书籍数目
                    print(book_list)
                    book_name = input("请输入要借用的书籍名称")
                    if book_name in book_list:
                        day_time = int(input("请输入要借用的天数:"))
                        print("借书成功,请按时归还")
                        book_list.remove(book_name)
                        print("剩余可借书籍")
                        print(book_list)
                    else:
                        print("不存在此书")
                        print("是否继续操作?Yes or No")
                        choice = input(" ")
                        if choice == "Yes":
                            continue
                        else:
                            break
                else:
                    break
            elif kind_num == 2:
                while 1:
                    print("请选择要借用的书籍:")  # 进入借书界面,选择借用书籍,借用天数,并在后台实时更新剩余书籍数目
                    print(book_list)
                    book_name = input("请输入要借用的书籍名称")
                    if book_name in book_list:
                        day_time = int(input("请输入要借用的天数:"))
                        print("借书成功,请按时归还")
                        book_list.remove(book_name)
                        print("剩余可借书籍")
                        print(book_list)
                    else:
                        print("图书馆暂未收藏此书籍")
                        print("是否继续操作?Yes or No")
                        choice = input(" ")
                        if choice == "Yes":
                            continue
                        else:
                            break
            elif kind_num == 3:
                # 进入归还界面,将书籍信息加入到列表中
                book_name = input("输入借用的书籍:")
                day_time1 = int(input("输入实际借用天数:"))
                if day_time1 <= day_time:
                    book_list.append(book_name)
                else:
                    print("已拉黑用户")
                    del users[index]
                    print("当前用户信息: \n")
                    print(users)
            else:
                # 任意键退出系统
                break
    else:
        break

五、打包为exe文件

首先安装pyinstaller

pip install -m pyinstaller

然后直接输出就行了(前提是当前代码文件需要在当前项目中,即保障路径一致性)

pyinstaller -F 文件名 

网传是pyinstaller -F -w 文件名,但是因为本文中涉及到 input 的命令行窗口 ,所以需要去掉-w,否则会报错--- input(): lost sys.stdin

代码有任何问题请在评论区留言

制作不易,请多多点赞支持呐!

转载请说明出处

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值