網站首頁 編程語言 正文
前言
使用面向對象編程思想完成學員管理系統的開發,具體如下:
- 系統要求:使用面向對象的方法
- 系統功能:添加學員、刪除學員、修改學員信息、查詢學員信息、顯示所有學員信息、保存學員信息及退出系統等功能。
分析
- 角色分析
- 學員
- 管理系統
- 工作中注意事項
-為了方便維護代碼,一般一個角色一個程序文件
- 項目要有主程序入口,習慣稱為main.py
創建程序文件
1.創建項目目錄,例如:StudentmangerSystem
2.程序文件如下:
- 程序入口文件:main.py
- 學員文件:studnet.py
- 管理系統文件:mangerSystem.py
書寫程序
- student.py
需求:儲存數據的形式:列表存儲學員對象
- 管理系統框架
需求:系統功能循環使用,用戶輸入不同的功能序號執行不同的功能
- 步驟:
- 定義程序入口函數
- 顯示功能菜單
- 用戶輸入功能序號
- 根據用戶駛入的功能序號執行不同的功能
- 定義系統功能函數,添加、刪除學員等
student.py
需求是讓我們把學員的數據放在列表里面,而且要用到面向對象。由此我們將學員看成是一個類,一個個學員就是實例對象。注意:這個時候列表里放的將是對象,而非其他數據類型。切記切記!
class Student(object):
?? ?# 初始化學生類,傳入學員的三個參數
?? ?def __init__(self,sname,sgender,stel):
?? ??? ?self.name = sname
?? ??? ?self.gender = sgender
?? ??? ?self.tel = stel
?? ?# 便于格式化返回字符串,浙江影響到對象的打印
?? ?def __str__(self):
?? ??? ?return f'{self.name}的性別是{self.gender},電話號碼是{self.tel}'
managerSystem
同樣也是要用到面向對象,由此,將需求中的各種功能看成是一個個實例方法。
功能面板也看成是一個實例方法
要求使用循環,則需要一個運行程序,將功能面板,實例方法調用。同時使用if判斷語句判斷將用戶輸入的功能序號和功能的運行相對應。
from Student import *
class managerSystem(object):
?? ?# 初始化
?? ?def __init__(self):
?? ??? ?self.student_list = []
?? ?# 定義功能面板
?? ?def show_menu(self):
?? ??? ?print("請選擇如下功能:")
? ? ? ? print("1.添加學員")
? ? ? ? print("2.刪除學員")
? ? ? ? print("3.修改學員信息")
? ? ? ? print("4.查詢學員信息")
? ? ? ? print("5.顯示所有學員信息")
? ? ? ? print("6.保存學員信息")
? ? ? ? print("7.退出系統")
? ? # 定義功能函數:添加學員
? ? def student_add(self):
? ? ?? ?name = input('請輸入姓名:')
? ? ?? ?for i in self.student_list:
? ? ?? ??? ?if i.name != name:
? ? ?? ??? ??? ?gender = input('請輸入性別:')
? ? ?? ??? ??? ?tel = input('請輸入電話號:')
? ? ?? ??? ??? ?break
? ? ?? ??? ?else:
? ? ?? ??? ??? ?print('庫中已有此人!')
? ? ?? ?student = Student(name,gender,tel)
? ? ?? ?self.student_list.append(student) ? # 注意:這里加入到列表中的是一個實例對象,打印只會得到一個內存地址
? ? # 定義功能函數:刪除學員
? ? def student_del(self):
? ? ?? ?name = input('請輸入刪除學員的姓名:')
? ? ?? ?for i in self.student_list:
? ? ?? ??? ?if i.name == name:
? ? ?? ??? ??? ?del i
? ? ?? ??? ?else:
? ? ?? ??? ??? ?print('查無此人!')
? ? # 定義功能函數:修改信息
? ? def student_change(self):
? ? ?? ?name = input('請輸入姓名:')
? ? ?? ?for i in self.student_list:
? ? ?? ??? ?if i.name == name:
? ? ?? ??? ??? ?i.gender = input('請輸入性別:')
? ? ?? ??? ??? ?i.tel = input('請輸入電話號:')
? ? ?? ??? ??? ?break
? ? ?? ??? ?else:
? ? ?? ??? ??? ?print('查無此人!')
? ? # 定義功能函數:查詢功能信息
? ? def student_search(self):
? ? ?? ?name = input('請輸入姓名:')
? ? ?? ?for i in student_list:
? ? ?? ??? ?if i.name == name:
? ? ?? ??? ??? ?print(f'{i.name}的性別{i.gender}電話號是{i.tel}')
? ? ?? ??? ??? ?break
? ? ?? ??? ?else:
? ? ?? ??? ??? ?print('查無此人!')
? ? # 定義功能函數:顯示所有信息
? ? def student_show_all(self):
? ? ?? ?for i in student_list:
? ? ?? ??? ?print(f'{i.name}的性別是{i.gender}電話號是{i.tel}')
? ? # 定義功能函數:保存學員信息
? ? def student_save(self):
? ? ?? ?print('保存信息成功!')
? ? # 定義功能函數:退出系統
? ? def student_exit(self):
? ? ?? ?print('退出成功!')
?? ?“”“
?? ?定義主運行程序
?? ?”“”
?? ?def run(self):
?? ??? ?# 定義一個變量,用以跳出循環
?? ??? ?i = 0
?? ??? ?while i == 0:
?? ??? ??? ?srlf.show_menu()
?? ??? ??? ?func_sum = input('請輸入功能序號:')
?? ??? ??? ?if func_sum == '1':
?? ??? ??? ??? ?self.student_add() ? ? ? ? # 添加學員
?? ??? ??? ?elif func_sum == '2':
?? ??? ??? ??? ?self.student_del()?? ? ? ? ? # 刪除學員
?? ??? ??? ?elif func_sun == '3':
?? ??? ??? ??? ?self.student_change()?? ? ? # 修改學員信息
?? ??? ??? ?elif func_sum == '4':
?? ??? ??? ??? ?self.student_search()?? ? ? # 查詢學員信息
?? ??? ??? ?elif func_sum == '5':
?? ??? ??? ??? ?self.student_show_all()?? ? ? # 顯示所有信息
?? ??? ??? ?elif func_sum == '6':
?? ??? ??? ??? ?self.studnet_save() ? ? ? ?# 保存信息
?? ??? ??? ?else:
?? ??? ??? ??? ?i += 1 ? ? ? ? ? ? ? ? ? ? # 當i不等于0時,跳出循環
?? ??? ??? ??? ?self.student_exit() ? ? ? ?# 退出程序
main.py
管理學員系統的執行文件
from managerSystem import *
if __name__ == '__main__':
?? ?Mangersystem = managerSystem()
?? ?Mangersystem.run()
最后,這三個文件要在同一個目錄下,最好先在pycharm中創建一個項目后,再創建者三個文件。
原文鏈接:https://blog.csdn.net/weixin_50184720/article/details/115036157
相關推薦
- 2022-06-09 FreeRTOS實時操作系統的任務創建與任務切換_操作系統
- 2023-07-18 Spring 中的 Service 有多個實現類如何注入
- 2022-02-24 Kubernetes究竟是個容器應用程序還是集群操作系統,它這么復雜的原因出在哪?
- 2022-02-24 Oracle中decode函數用法_oracle
- 2022-06-04 如何通過一篇文章了解Python中的生成器_python
- 2022-11-17 解讀Python中字典的key都可以是什么_python
- 2023-02-07 Pytorch中torch.argmax()函數使用及說明_python
- 2022-07-03 k8s之client-go的工作邏輯
- 最近更新
-
- window11 系統安裝 yarn
- 超詳細win安裝深度學習環境2025年最新版(
- Linux 中運行的top命令 怎么退出?
- MySQL 中decimal 的用法? 存儲小
- get 、set 、toString 方法的使
- @Resource和 @Autowired注解
- Java基礎操作-- 運算符,流程控制 Flo
- 1. Int 和Integer 的區別,Jav
- spring @retryable不生效的一種
- Spring Security之認證信息的處理
- Spring Security之認證過濾器
- Spring Security概述快速入門
- Spring Security之配置體系
- 【SpringBoot】SpringCache
- Spring Security之基于方法配置權
- redisson分布式鎖中waittime的設
- maven:解決release錯誤:Artif
- restTemplate使用總結
- Spring Security之安全異常處理
- MybatisPlus優雅實現加密?
- Spring ioc容器與Bean的生命周期。
- 【探索SpringCloud】服務發現-Nac
- Spring Security之基于HttpR
- Redis 底層數據結構-簡單動態字符串(SD
- arthas操作spring被代理目標對象命令
- Spring中的單例模式應用詳解
- 聊聊消息隊列,發送消息的4種方式
- bootspring第三方資源配置管理
- GIT同步修改后的遠程分支