main.py(程序主入口)
#1.導入管理系統模塊
from mangerSystem import *
#2.啟動管理系統
#保證是當前文件運行才啟動管理系統:if -- 創建對象并調用run()方法
if __name__=="__main__":
??? student_manager=StudentManager()
??? student_manager.run()
student.Py
class Student(object):
??? def __init__(self,name,gender,tel):
??????? #姓名,性別,手機號
??????? self.name=name
??????? self.gender=gender
??????? self.tel=tel
??? def __str__(self):
??????? return f'{self.name},{self.gender},{self.tel}'
# aa=Student("aa","女",111)
# print(aa)
mangerSystem
from? student import *
class StudentManager(object):
??? def __init__(self):
??????? #存儲學員數據 -- 列表
??????? self.student__list=[]
??? #一.程序入口函數
??? def run(self):
??????? #1.加載文件里的學員數據
??????? # self.load_student()
??????? while True:
???? ???????#2.顯示功能菜單
??????????? self.showmenu()
??????????? #3.用戶輸入目標功能序號
??????????? menu_num=int(input("請輸入你需要的功能序號:"))
??????? #4.根據用戶輸入的序號執行不同的功能 -- 如果用戶輸入1,執行添加
??????????? if menu_num==1:
??????????????? #添加學員
??????????????? self.add_student()
??????????? elif menu_num==2:
??????????????? #刪除學員
??????????????? self.del_student()
??????????? elif menu_num==3:
??????????????? #修改學員信息
??????????????? self.modif_student()
??????????? elif menu_num==4:
??????????????? #查詢學員信息
??????????????? self.search_student()
??????????? elif menu_num==5:
??????????????? #顯示所有學員信息
??????????????? self.show_student()
??????????? elif menu_num==6:
??????????????? #保存學員信息
??????????????? self.save_student()
??????????? elif menu_num==7:
??????????????? #退出系統--退出循環
? ??????????????# break
??????????????? self.load_student()
??????????? elif menu_num == 8:
??????????????? # 退出系統--退出循環
??????????????? # break
??????????????? # 程序想要結束,退出終止while True -- break
??????????????? exit_flag = input("確定要退出嗎?yes or no")
???????? ???????if exit_flag == 'yes':
??????????????????? print("退出系統")
??????????????????? break
??????????? else:
??????????????? print("輸入的功能序號有誤!")
??? #二.系統功能函數
??? #2.1顯示功能菜單 -- 打印序號功能對應關系--靜態
??? @staticmethod
??? def showmenu():
??????? print("請選擇如下功能:")
??????? print("1:添加學員")
??????? print("2:刪除學員")
??????? print("3:修改學員信息")
??????? print("4:查詢學員信息")
??????? print("5:顯示所有學員信息")
??????? print("6:保存學員信息")
??????? print("7:加載學員信息")
??????? print("8:退出系統")
??? # 2.2添加學員
??? def add_student(self):
?????? ?# print("添加學員")
??????? #1.用戶輸入姓名,性別,手機號
??????? name=input("請輸入你的姓名:")
??????? gender=input("請輸入你的性別:")
??????? tel=input("請輸入你的手機號:")
?#2.創建學員對象--類,類在student文件里面 先導入student模塊,在創建對象
??????? student=Student(name,gender,tel)
??????? #3.將該對象添加到學員列表
??????? self.student__list.append(student)
??????? # print(123)
??????? # print(self.student__list)
??????? print(student)
??? # 2.3刪除學員
??? def del_student(self):
??????? # print("刪除學員")
??????? #1.用戶輸入目標學員姓名
??????? del_name=input("請輸入要刪除的學員姓名:")
?? ?????#2.遍歷學員列表,如果用戶輸入的學員存在,則刪除學員對象。否則提示學員不存在
??????? for i in self.student__list:
??????????? if del_name==i.name:
??????????????? #刪除學員對象
??????????????? # self.student__list.remove(i)
??????????????? break
??????? else:
??????????? #循環正常結束執行代碼:循環結束都沒有刪除任何一個對象,所以說明用戶輸入的目標學員不存在。
??????????? print("查無此人!")
??????? print(self.student__list)
??? # 2.4修改學員信息
??? def modif_student(self):
??????? #print("修改學員信息")
??????? # 1.用戶輸入目標學員姓名
??????? modify_name=input("請輸入要修改的學員姓名:")
??????? #2遍歷列表數據,如果學員存在,修改姓名,性別,手機號。否則提示學員不存在
??????? for i in self.student__list:
??????????? if modify_name==i.name:
??????????????? i.name=input("姓名:")
??????????????? i.gender=input("性別:")
??????????????? i.tel=input("手機號:")
??????????????? print(f"修改學員信息成功,姓名:{i.name},性別:{i.gender},手機號:{i.tel}")
??????????????? break
??????? else:
??????????? print("查無此人!")
??? # 2.5查詢學員信息
??? def search_student(self):
??????? # print("查詢學員信息")
??????? #1.用戶輸入目標學員姓名
??????? search_name=input("請輸入你要搜索的學員姓名:")
??????? #2.遍歷列表。如果學員存在打印學員信息,否則提示學員不存在
??????? for i in self.student__list:
??????????? if search_name==i.name:
??????????????? print(f"姓名是:{i.name},性別是:{i.gender},手機號是:{i.tel}")
??????????????? break
??????? else:
??????????? print("查無此人!")
??? # 2.6顯示所有學員信息
??? def show_student(self):
??????? # print("顯示所有學員信息")
??????? #1.打印表頭
??????? print("姓名\t性別\t手機號")
??????? #2.打印學員數據
??????? for i in self.student__list:
??????????? print(f"{i.name}\t{i.gender}\t{i.tel}")
??? # 2.7保存學員信息
??? def save_student(self):
? ??????# print("保存學員信息")
??????? #1.打印文件
??????? f=open("student.data","a")
??????? #2.文件寫入數據
??????? #2.1[學員對象]轉換成[字典]
??????? new_list=[i.__dict__ for i in self.student__list]
??????? #2.2文件寫入 字符串數據
??????? f.write(str(new_list))
??????? #3.關閉文件
??????? f.close()
??? # 2.8加載學員信息
??? def load_student(self):
??? #???? print("加載學員信息")
??????? with open("student.data","r") as file:
??????????? showAll=file.read()
??????????? print(showAll,"\n")