Python学员管理系统进阶版
生活随笔
收集整理的這篇文章主要介紹了
Python学员管理系统进阶版
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
Python學員管理系統(tǒng)進階版
整合基礎,使用面向對象的方式做學員管理系統(tǒng)
文章目錄
- Python學員管理系統(tǒng)進階版
- 前言
- 一、系統(tǒng)需求
- 1.創(chuàng)建程序文件
- 2.書寫程序
- 3.管理系統(tǒng)框架
- 二、功能函數(shù)
- 1.添加學員
- 2.刪除學員
- 3.修改學員信息
- 4.查詢學員信息
- 5.顯示所有學員信息
- 6.保存學員信息
- 7.加載學員信息
- 三.需求總結
- 我的代碼實現(xiàn){僅供參考}
- 1.Student類:
- 2.managerSystem類:
- 3.main方法:
- 四.本章小結
前言
一、系統(tǒng)需求
使用面向對象編程思想完成學員管理系統(tǒng)的開發(fā),具體如下:
1.系統(tǒng)要求:學員數(shù)據(jù)存儲在文件中
2.系統(tǒng)功能:添加學員、刪除學員、修改學員信息、查詢學員信息、顯示所有學員信息、保存學員信息及退出系統(tǒng)等功能。
1.創(chuàng)建程序文件
創(chuàng)建程序文件創(chuàng)建項目目錄,例如: StudentManagerSystem 程序文件如下: 程序入口文件:main.py 學員文件:student.py 管理系統(tǒng)文件:managerSystem.py2.書寫程序
書寫程序
student.py
需求:
學員信息包含:姓名、性別、?機號;
添加 str 魔法方法,方便查看學員對象信息
3.管理系統(tǒng)框架
需求:系統(tǒng)功能循環(huán)使用,用戶輸入不同的功能序號執(zhí)行不同的功能。 步驟 定義程序入口函數(shù) 1.加載數(shù)據(jù) 2.顯示功能菜單 3.用戶輸入功能序號 4.根據(jù)用戶輸入的功能序號執(zhí)行不同的功能 5.定義系統(tǒng)功能函數(shù),添加、刪除學員等二、功能函數(shù)
1.添加學員
添加功能 需求:用戶輸入學員姓名、性別、?機號,將學員添加到系統(tǒng)。 步驟 用戶輸入姓名、性別、?機號 創(chuàng)建該學員對象 將該學員對象添加到列表2.刪除學員
需求:用戶輸入目標學員姓名,如果學員存在則刪除該學員。 步驟 用戶輸入目標學員姓名 遍歷學員數(shù)據(jù)列表,如果用戶輸入的學員姓名存在則刪除,否則則提示該學員不存在。3.修改學員信息
需求:用戶輸入目標學員姓名,如果學員存在則修改該學員信息。 步驟 用戶輸入目標學員姓名; 遍歷學員數(shù)據(jù)列表,如果用戶輸入的學員姓名存在則修改學員的姓名、性別、?機號數(shù)據(jù),否則則提示該學員不存在。4.查詢學員信息
需求:用戶輸入目標學員姓名,如果學員存在則打印該學員信息 步驟 用戶輸入目標學員姓名 遍歷學員數(shù)據(jù)列表,如果用戶輸入的學員姓名存在則打印學員信息,否則提示該學員不存在。5.顯示所有學員信息
打印所有學員信息 步驟 遍歷學員數(shù)據(jù)列表,打印所有學員信息6.保存學員信息
需求:將修改后的學員數(shù)據(jù)保存到存儲數(shù)據(jù)的文件。 步驟 打開文件 文件寫入數(shù)據(jù) 關閉文件 思考 1. 文件寫入的數(shù)據(jù)是學員對象的內存地址嗎? 2. 文件內數(shù)據(jù)要求的數(shù)據(jù)類型是什么7.加載學員信息
需求:每次進入系統(tǒng)后,修改的數(shù)據(jù)是文件?面的數(shù)據(jù) 步驟 嘗試以 "r" 模式打開學員數(shù)據(jù)文件,如果文件不存在則以 "w" 模式打開文件 如果文件存在則讀取數(shù)據(jù)并存儲數(shù)據(jù) 讀取數(shù)據(jù) 轉換數(shù)據(jù)類型為列表并轉換列表內的字典為對象 存儲學員數(shù)據(jù)到學員列表 關閉文件三.需求總結
函數(shù):
1.定義和調用
2.參數(shù)的使用
?向對象:
1.定義類
2.創(chuàng)建對象
3.定義和調用實例屬性
4.定義和調用實例方法
數(shù)據(jù)類型:
1.列表
2.增加刪除數(shù)據(jù)
3.列表推導式
4.字典
5.字符串
文件操作:
1.打開文件
2.讀取或寫入
3.關閉文件
我的代碼實現(xiàn){僅供參考}
1.Student類:
class Students():def __init__(self, name,sex, tel):self.__name = nameself.__sex = sexself.__tel = teldef __str__(self):return f'學員姓名:{self.__name},學員性別:{self.__sex},學員電話:{self.__tel}'def getName(self):return self.__namedef getSex(self):return self.__sexdef getTel(self):return self.__tel2.managerSystem類:
from Student import Studentsclass Manage(Students):def __init__(self):self.StuList = []# 保存數(shù)據(jù)def save(self):try:f = open('Student.data', 'w')except():print('出錯了!!')else:lis = []for i in self.StuList:dic = {'name': i.getName(), 'sex': i.getSex(), 'tel': i.getTel()}lis.append(dic)f.write(str(lis))print('保存成功!')finally:f.close()# 加載數(shù)據(jù)def login(self):try:f = open('Student.data', 'r')except():print('出錯了!!')else:lis=eval(f.read())for i in lis:self.StuList.append(Students(i['name'],i['sex'],i['tel']))print('加載成功!')finally:f.close()# 靜態(tài)菜單@staticmethoddef menu():print('1.刪除學員')print('2.修改學員')print('3.查詢學員信息')print('4.顯示所有學員信息')print('5.保存系統(tǒng)')print('6.退出系統(tǒng)')print('7.添加學員')# 刪除學員def delStu(self):name = input('請輸入要刪除的學生姓名:')for i in self.StuList:if i.getName() == name:self.StuList.remove(i)print('刪除成功!')breakelse:print('查無此人!')# 修改學員def updStu(self):print('修改學員')uname = input('請輸入學員姓名:')for i in self.StuList:if uname == i.getName():newName = input('請輸入新的姓名:')newSex = input('請輸入新的性別:')newtel = input('請輸入新的電話:')op=self.StuList.index(i)st=Students(newName,newSex,newtel)self.StuList[op]=stprint('修改成功')breakelse:print('查無此人')# 添加學員def addStu(self):name = input('請輸入學員姓名:')for i in self.StuList:if name == i.getName():print('此人已存在!')breakelse:sex = input('請輸入性別:')tel = input('請輸入電話:')st=Students(name,sex,tel)self.StuList.append(st)print('新增成功!')# 根據(jù)姓名查詢def selectStu(self):name = input('請輸入要查詢的姓名:')for i in self.StuList:if i.getName() == name:print(i.__str__())breakelse:print('查無此人!!')# 查詢所有def select(self):for i in self.StuList:print(i.__str__())# 主方法def main(self):self.login()while True:self.menu()user = int(input('請選擇功能序號:'))if user == 1:self.delStu()elif user == 2:self.updStu()elif user == 3:self.selectStu()elif user == 4:self.select()elif user == 5:self.save()elif user == 6:breakelif user == 7:self.addStu()else:print('輸入錯誤!')3.main方法:
import managerSystem if __name__ == '__main__':Stu = managerSystem.Manage()Stu.main()四.本章小結
到這里,面向對象版學員管理系統(tǒng)就OK了,實現(xiàn)方法有很多種,我這只是其中一種,萬變不離其宗,各位小伙伴可以自行探索做法.
有哪里不足或者有更好的建議,歡迎留言吐槽,有哪里不懂的小伙伴可以私信我,我會一一答復,感謝認可,感謝支持!
總結
以上是生活随笔為你收集整理的Python学员管理系统进阶版的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Aspnet Mvc 前后端分离项目手记
- 下一篇: 操作系统|时间片轮转调度算法(RR)