当前位置:   article > 正文

Python项目实战练习:制作小型图书管理系统_python综合训练迷你图书馆

python综合训练迷你图书馆

本文的文字及图片来源于网络,仅供学习、交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理

以下文章来源于IT丛林 ,作者: IT丛林

 

说明:此程序适合入门基本练习。

 

私信回复“资料”,即可免费领取Python实战案例讲解视频

Python GUI制作视频解析神器,全网视频免费看

https://www.bilibili.com/video/BV1tz4y1o7Yc/

目标

了解面向对象开发过程中类内部功能的分析方法。

了解常用系统功能

系统需求

使用面向对象编程思想完成图书管理系统的开发。具体如下:

系统要求:图书信息存储到文件中

系统功能,添加,删除,修改,保存,查询,显示所有图书信息,退出系统等功能。

程序文件分析设计

角色分析:图书,管理系统

注意事项:

一个角色一个程序文件

项目的主入口,可以定义为main.py

主要功能

基于面向对象:实现图书:

添加功能,

删除功能,

修改功能,

查询功能,

显示所有,

保存到文件中,

加载数据等功能。

程序文件

程序入口:main.py

图书文件:book.py

管理系统文件:systemmgr.py

1.1.4 程序代码

图书文件代码

图书文件:book.py

需求:图书包括:书名,类型,sn号等。

添加__str__魔法方法,方便查看图书对象信息

代码:

  1. class Book(object):
  2.     def __init__(self,name,type,sn):
  3.         self.name=name
  4.         self.type=type
  5.         self.sn=sn
  6. def __str__(self):
  7. return f'{self.name},{self.type},{self.sn}'

管理文件程序代码

需求:

系统功能循环使用,根据用户输入的功能序号执行不同的功能

步骤:

加载数据

显示功能菜单

根据用户输入进行不同操作功能

定义系统功能函数:添加,删除,保存等

定义该管理系统的类:用于初始化,类中存储管理系统的代码。

定义一个一个list_page空图书列表,方便存储。

def __init__(self):
self.list_page=[]

添加一个静态方法用于显示功能菜单

  1. @staticmethod
  2. def show_menu():
  3. print("请选择如下功能")
  4. print("1,添加新书")
  5. print("2,删除新书")
  6. print("3,修改新书")
  7. print("4,查询相关书")
  8. print("5,显示所有书")
  9. print("6,保存书信息")
  10. print("7,加载书信息")
  11. print("9,退出系统")

程序入口函数,启动程序执行的函数 run()

  1. def run(self):
  2.     while True:
  3.         self.show_menu()
  4.         int_num=int(input("请输入功能序号"))
  5.         if int_num==1:#添加
  6.             self.add_book()
  7.         if int_num == 2:#删除
  8.             self.del_book()
  9.         elif int_num==3:#修改
  10.             self.update_book()
  11.         elif int_num==4:#查询
  12.             self.search_book()
  13.         elif int_num==5:#显示
  14.             self.show_book()
  15.         elif int_num==6:#保存
  16.             self.save_book()
  17.         elif int_num == 7:#加载
  18.             self.load_book()
  19.         elif int_num == 9:
  20.             print("退出系统")
  21. break
  22.     else:
  23. print("输入错误!")

程序入口文件程序代码

功能:导入系统管理模块,启动图书管理系统。

main.py

  1. from xm19code.systemgr import Systemmgr
  2. if __name__=='__main__':
  3. rr = Systemmgr()
  4. rr.run()

程序代码清单:

 

具体代码如下图:

  1. class Book(object):
  2. def __init__(self,name,type,sn):
  3. self.name=name
  4. self.type=type
  5. self.sn=sn
  6. def __str__(self):
  7. return f'{self.name},{self.type},{self.sn}'
  1. from xm19code.systemgr import Systemmgr
  2. if __name__=='__main__':
  3. rr = Systemmgr()
  4. rr.run()
  1. #from book import *
  2. from xm19code.book import *
  3. class Systemmgr(object):
  4. def __init__(self):
  5. self.list_page=[]
  6. #循环
  7. @staticmethod
  8. def show_menu():
  9. print("请选择如下功能")
  10. print("1,添加新书")
  11. print("2,删除新书")
  12. print("3,修改新书")
  13. print("4,查询相关书")
  14. print("5,显示所有书")
  15. print("6,保存书信息")
  16. print("7,加载书信息")
  17. print("9,退出系统")
  18. def run(self):
  19. while True:
  20. self.show_menu()
  21. int_num=int(input("请输入功能序号"))
  22. if int_num==1:#添加
  23. self.add_book()
  24. if int_num == 2:#删除
  25. self.del_book()
  26. elif int_num==3:#修改
  27. self.update_book()
  28. elif int_num==4:#查询
  29. self.search_book()
  30. elif int_num==5:#显示
  31. self.show_book()
  32. elif int_num==6:#保存
  33. self.save_book()
  34. elif int_num == 7:#加载
  35. self.load_book()
  36. elif int_num == 9:
  37. print("退出系统")
  38. break
  39. else:
  40. print("输入错误!")
  41. def add_book(self):
  42. #根据用户输入的字段添加
  43. name=input("请输入书的名称")
  44. type=input("请输入书的分类")
  45. sn = input("请输入书的sn")
  46. book=Book(name,type,sn)
  47. self.list_page.append(book)
  48. print(self.list_page)
  49. print(book)
  50. def update_book(self):
  51. names = input("请输入要修改的图书:")
  52. for i in self.list_page:
  53. if i.name==names:
  54. i.name=input("请输入要修改的图书名称:")
  55. i.type = input("请输入要修改的图书类型:")
  56. i.sn = input("请输入要修改的图书SN:")
  57. print(f'修改了图书信息成功:图书{i.name} ,类型{i.type},sn为:{i.sn}')
  58. break
  59. else:
  60. print("没有该图书!")
  61. def del_book(self):
  62. names=input("请输入要删除的图书:")
  63. # for 循环查询
  64. for i in self.list_page:
  65. if i.name == names:
  66. self.list_page.remove(i)
  67. print("删除成功!")
  68. break
  69. else:
  70. print("没有该图书")
  71. def show_book(self):
  72. print('图书名称\t\t\t类型\t\t\tSN')
  73. for i in self.list_page:
  74. print(f'{i.name}\t\t\t{i.type}\t\t\t{i.sn}')
  75. def save_book(self):
  76. # 打开文件
  77. f = open('book.data', 'w')
  78.         # 文件写人 把list【图书对象】转换为字典
  79. new_list = [i.__dict__ for i in self.list_page]
  80. print(new_list)
  81. f.write(str(new_list))
  82. # 文件关闭
  83. f.close();
  84. def search_book(self):
  85. names=input("请输入要查询的图书名称:")
  86. #for 循环查询
  87. for i in self.list_page:
  88. if i.name==names:
  89. print(f'查询到的图书信息:图书{i.name} ,'
  90. f'类型{i.type},sn为:{i.sn}')
  91. break
  92. else:
  93. print("没有该图书")
  94. def load_book(self):
  95. try:
  96. f=open('book.data','r')
  97. except:
  98. f=open('book.data','w')
  99. else:
  100. data=f.read()
  101. #文件读取的数据都是字符串且字符串内部为字典数据
  102. # 故需要转换数据类型在转换字典为对象存储到图书列表中
  103. new_list=eval(data)
  104. self.list_page=[Book(i['name'],i['type'],i['sn']) for i in new_list]
  105. print('图书\t\t类型\t\tSN')
  106. for i in self.list_page:
  107. print(f'{i.name}\t\t{i.type}\t\t{i.sn}')
  108. finally:
  109. #关闭文件
  110. f.close()

程序代码运行结果:

  1. C:\Python\Python38\python.exe D:/pythonProject/xm19code/main.py
  2. 请选择如下功能
  3. 1,添加新书
  4. 2,删除新书
  5. 3,修改新书
  6. 4,查询相关书
  7. 5,显示所有书
  8. 6,保存书信息
  9. 7,加载书信息
  10. 9,退出系统
  11. 请输入功能序号7
  12. 图书 类型 SN
  13. py py 1234
  14. 请选择如下功能
  15. 1,添加新书
  16. 2,删除新书
  17. 3,修改新书
  18. 4,查询相关书
  19. 5,显示所有书
  20. 6,保存书信息
  21. 7,加载书信息
  22. 9,退出系统
  23. 请输入功能序号2
  24. 请输入要删除的图书:22
  25. 没有该图书
  26. 请选择如下功能
  27. 1,添加新书
  28. 2,删除新书
  29. 3,修改新书
  30. 4,查询相关书
  31. 5,显示所有书
  32. 6,保存书信息
  33. 7,加载书信息
  34. 9,退出系统
  35. 请输入功能序号3
  36. 请输入要修改的图书:22
  37. 没有该图书!
  38. 请选择如下功能
  39. 1,添加新书
  40. 2,删除新书
  41. 3,修改新书
  42. 4,查询相关书
  43. 5,显示所有书
  44. 6,保存书信息
  45. 7,加载书信息
  46. 9,退出系统
  47. 请输入功能序号1
  48. 请输入书的名称1
  49. 请输入书的分类1
  50. 请输入书的sn1
  51. [<xm19code.book.Book object at 0x000000000277F7C0>, <xm19code.book.Book object at 0x00000000025159D0>]
  52. 1,1,1
  53. 请选择如下功能
  54. 1,添加新书
  55. 2,删除新书
  56. 3,修改新书
  57. 4,查询相关书
  58. 5,显示所有书
  59. 6,保存书信息
  60. 7,加载书信息
  61. 9,退出系统
  62. 请输入功能序号6
  63. [{'name': 'py', 'type': 'py', 'sn': '1234'}, {'name': '1', 'type': '1', 'sn': '1'}]
  64. 请选择如下功能
  65. 1,添加新书
  66. 2,删除新书
  67. 3,修改新书
  68. 4,查询相关书
  69. 5,显示所有书
  70. 6,保存书信息
  71. 7,加载书信息
  72. 9,退出系统
  73. 请输入功能序号1
  74. 请输入书的名称2
  75. 请输入书的分类2
  76. 请输入书的sn2
  77. [<xm19code.book.Book object at 0x000000000277F7C0>, <xm19code.book.Book object at 0x00000000025159D0>, <xm19code.book.Book object at 0x000000000277F7F0>]
  78. 2,2,2
  79. 请选择如下功能
  80. 1,添加新书
  81. 2,删除新书
  82. 3,修改新书
  83. 4,查询相关书
  84. 5,显示所有书
  85. 6,保存书信息
  86. 7,加载书信息
  87. 9,退出系统
  88. 请输入功能序号4
  89. 请输入要查询的图书名称:1
  90. 查询到的图书信息:图书1 ,类型1,sn为:1
  91. 请选择如下功能
  92. 1,添加新书
  93. 2,删除新书
  94. 3,修改新书
  95. 4,查询相关书
  96. 5,显示所有书
  97. 6,保存书信息
  98. 7,加载书信息
  99. 9,退出系统
  100. 请输入功能序号4
  101. 请输入要查询的图书名称:1
  102. 查询到的图书信息:图书1 ,类型1,sn为:1
  103. 请选择如下功能
  104. 1,添加新书
  105. 2,删除新书
  106. 3,修改新书
  107. 4,查询相关书
  108. 5,显示所有书
  109. 6,保存书信息
  110. 7,加载书信息
  111. 9,退出系统
  112. 请输入功能序号6
  113. [{'name': 'py', 'type': 'py', 'sn': '1234'}, {'name': '1', 'type': '1', 'sn': '1'}, {'name': '2', 'type': '2', 'sn': '2'}]
  114. 请选择如下功能
  115. 1,添加新书
  116. 2,删除新书
  117. 3,修改新书
  118. 4,查询相关书
  119. 5,显示所有书
  120. 6,保存书信息
  121. 7,加载书信息
  122. 9,退出系统
  123. 请输入功能序号7
  124. 图书 类型 SN
  125. py py 1234
  126. 1 1 1
  127. 2 2 2
  128. 请选择如下功能
  129. 1,添加新书
  130. 2,删除新书
  131. 3,修改新书
  132. 4,查询相关书
  133. 5,显示所有书
  134. 6,保存书信息
  135. 7,加载书信息
  136. 9,退出系统
  137. 请输入功能序号
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/代码探险家/article/detail/781381
推荐阅读
相关标签
  

闽ICP备14008679号