当前位置:   article > 正文

python --图书管理系统

python --图书管理系统

目录

 一、前言

二、思路

三、实现代码

①设定变量

②登录、注册界面

③借书界面

四、所有代码

五、打包为exe文件

 一、前言

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

二、思路

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

三、实现代码

①设定好需要的变量

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

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

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

②登录、注册界面

  1. print("图书管理系统--\n")
  2. print("请登录后再使用\n")
  3. key = int(input("登录-1,若无账号请注册-3,按其余任意键退出\n"))
  4. if key == 3:
  5. n += 1
  6. print("请输入用户名和密码\n")
  7. str1 = input("用户名:")
  8. print("\n")
  9. str_key = input("密码:")
  10. # 注意此时不从0开始,从1开始
  11. users[n] = {
  12. "user_num": n,
  13. "name": str1,
  14. "keywords": str_key
  15. }
  16. print("当前用户信息:\n")
  17. print(users)
  18. elif key == 1:
  19. print("请输入用户名 \n")
  20. str2 = input("用户名: ")
  21. # 判断用户是否存在
  22. for i, user in users.items(): # 前者接受users字典的索引,后者user接受其索引下的值
  23. if str2 == user["name"]:
  24. index = i
  25. print(index)
  26. break
  27. if index == 0:
  28. print("请先注册\n")
  29. str3 = input("按下任意键跳转")
  30. continue
  31. # 用户存在,输入密码
  32. print("欢迎尊敬的 " + str2 + " 用户")
  33. print("请输入密码")
  34. while 1:
  35. key1 = input("密码: ")
  36. if key1 == users[index]["keywords"]:
  37. print("登陆成功")
  38. break
  39. else:
  40. print("请重新输入")

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

③借书界面

  1. # 开始访问内部界面
  2. while 1:
  3. print("1---查看书籍信息\n") # 提前创建好书籍信息
  4. print("2---租借书籍\n")
  5. print("3---归还书籍")
  6. print("任意键退出图书馆")
  7. kind_num = int(input("请选择选项: "))
  8. if kind_num == 1:
  9. print(book_list) # 打印列表
  10. print("是否继续操作?Yes or No")
  11. choice = input(" ")
  12. if choice == "Yes":
  13. print("请选择要借用的书籍:") # 进入借书界面,选择借用书籍,借用天数,并在后台实时更新剩余书籍数目
  14. print(book_list)
  15. book_name = input("请输入要借用的书籍名称")
  16. if book_name in book_list:
  17. day_time = int(input("请输入要借用的天数:"))
  18. print("借书成功,请按时归还")
  19. book_list.remove(book_name)
  20. print("剩余可借书籍")
  21. print(book_list)
  22. else:
  23. print("不存在此书")
  24. print("是否继续操作?Yes or No")
  25. choice = input(" ")
  26. if choice == "Yes":
  27. continue
  28. else:
  29. break
  30. else:
  31. break
  32. elif kind_num == 2:
  33. while 1:
  34. print("请选择要借用的书籍:") # 进入借书界面,选择借用书籍,借用天数,并在后台实时更新剩余书籍数目
  35. print(book_list)
  36. book_name = input("请输入要借用的书籍名称")
  37. if book_name in book_list:
  38. day_time = int(input("请输入要借用的天数:"))
  39. print("借书成功,请按时归还")
  40. book_list.remove(book_name)
  41. print("剩余可借书籍")
  42. print(book_list)
  43. else:
  44. print("图书馆暂未收藏此书籍")
  45. print("是否继续操作?Yes or No")
  46. choice = input(" ")
  47. if choice == "Yes":
  48. continue
  49. else:
  50. break
  51. elif kind_num == 3:
  52. # 进入归还界面,将书籍信息加入到列表中
  53. book_name = input("输入借用的书籍:")
  54. day_time1 = int(input("输入实际借用天数:"))
  55. if day_time1 <= day_time:
  56. book_list.append(book_name)
  57. else:
  58. print("已拉黑用户")
  59. del users[index] # 设定index索引的好处,因为登录之后,index并不会改变,所以可以很方便的进行操作信息,当然以后也可以根据这一点,让用户自行更改自己的用户名和密码
  60. print("当前用户信息: \n")
  61. print(users)
  62. else:
  63. # 任意键退出系统
  64. break

四、所有代码

  1. # 图书管理系统----python综合实践
  2. # 定义变量区
  3. n = 0
  4. key = 0
  5. index = 0 # 判断用户是否存在的索引
  6. str1 = "0" # 存储用户名
  7. str_key = "0" # 存储密码
  8. users = {
  9. }
  10. book_list = ["老人与海", "红楼梦", "水浒传", "西游记",
  11. "三国演义", "解忧杂货铺", "哈利波特", "唐诗三百首",
  12. "小虎队大冒险", "查理九世", "鲁滨逊漂流记", "斯塔克工业制造"] # 书单名称
  13. day_time = 0 # 借书天数
  14. day_time1 = 0 # 用户实际使用天数
  15. # 实体部分区域
  16. while 1:
  17. print("图书管理系统--\n")
  18. print("请登录后再使用\n")
  19. key = int(input("登录-1,若无账号请注册-3,按其余任意键退出\n"))
  20. if key == 3:
  21. n += 1
  22. print("请输入用户名和密码\n")
  23. str1 = input("用户名:")
  24. print("\n")
  25. str_key = input("密码:")
  26. # 注意此时不从0开始,从1开始
  27. users[n] = {
  28. "user_num": n,
  29. "name": str1,
  30. "keywords": str_key
  31. }
  32. print("当前用户信息:\n")
  33. print(users)
  34. elif key == 1:
  35. print("请输入用户名 \n")
  36. str2 = input("用户名: ")
  37. # 判断用户是否存在
  38. for i, user in users.items(): # 前者接受users字典的索引,后者user接受其索引下的值
  39. if str2 == user["name"]:
  40. index = i
  41. print(index)
  42. break
  43. if index == 0:
  44. print("请先注册\n")
  45. str3 = input("按下任意键跳转")
  46. continue
  47. # 用户存在,输入密码
  48. print("欢迎尊敬的 " + str2 + " 用户")
  49. print("请输入密码")
  50. while 1:
  51. key1 = input("密码: ")
  52. if key1 == users[index]["keywords"]:
  53. print("登陆成功")
  54. break
  55. else:
  56. print("请重新输入")
  57. # 开始访问内部界面
  58. while 1:
  59. print("1---查看书籍信息\n") # 提前创建好书籍信息
  60. print("2---租借书籍\n")
  61. print("3---归还书籍")
  62. print("任意键退出图书馆")
  63. kind_num = int(input("请选择选项: "))
  64. if kind_num == 1:
  65. print(book_list) # 打印列表
  66. print("是否继续操作?Yes or No")
  67. choice = input(" ")
  68. if choice == "Yes":
  69. print("请选择要借用的书籍:") # 进入借书界面,选择借用书籍,借用天数,并在后台实时更新剩余书籍数目
  70. print(book_list)
  71. book_name = input("请输入要借用的书籍名称")
  72. if book_name in book_list:
  73. day_time = int(input("请输入要借用的天数:"))
  74. print("借书成功,请按时归还")
  75. book_list.remove(book_name)
  76. print("剩余可借书籍")
  77. print(book_list)
  78. else:
  79. print("不存在此书")
  80. print("是否继续操作?Yes or No")
  81. choice = input(" ")
  82. if choice == "Yes":
  83. continue
  84. else:
  85. break
  86. else:
  87. break
  88. elif kind_num == 2:
  89. while 1:
  90. print("请选择要借用的书籍:") # 进入借书界面,选择借用书籍,借用天数,并在后台实时更新剩余书籍数目
  91. print(book_list)
  92. book_name = input("请输入要借用的书籍名称")
  93. if book_name in book_list:
  94. day_time = int(input("请输入要借用的天数:"))
  95. print("借书成功,请按时归还")
  96. book_list.remove(book_name)
  97. print("剩余可借书籍")
  98. print(book_list)
  99. else:
  100. print("图书馆暂未收藏此书籍")
  101. print("是否继续操作?Yes or No")
  102. choice = input(" ")
  103. if choice == "Yes":
  104. continue
  105. else:
  106. break
  107. elif kind_num == 3:
  108. # 进入归还界面,将书籍信息加入到列表中
  109. book_name = input("输入借用的书籍:")
  110. day_time1 = int(input("输入实际借用天数:"))
  111. if day_time1 <= day_time:
  112. book_list.append(book_name)
  113. else:
  114. print("已拉黑用户")
  115. del users[index]
  116. print("当前用户信息: \n")
  117. print(users)
  118. else:
  119. # 任意键退出系统
  120. break
  121. else:
  122. break

五、打包为exe文件

首先安装pyinstaller

pip install -m pyinstaller

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

pyinstaller -F 文件名 

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

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

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

转载请说明出处

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/花生_TL007/article/detail/555949
推荐阅读
相关标签
  

闽ICP备14008679号