系統要求
1.添加學生
2.刪除學生
3.修改學生信息
4.查詢學生
5.查看所有學生信息
6.學生信息數據的存儲與讀取
源碼:student.py
#coding:utf-8 2 #定義學員類 3 class student(object): 4 #初始化實例對象的屬性 5 def __init__(self,name,gender,tel): 6 self.name = name 7 self.sex = gender 8 self.tel = tel 9 10 def __str__(self): 11 return f"學員的名字:{self.name},學員的{self.sex},學 員的電話號碼{self.tel}" 12 13
源碼:maneger.py
#coding:utf-8 2 from student import * 3 class manager(object): 4 def __init__(self): 5 #存儲學生數據的列表 6 self.student_list = [] 7 8 def show_menu(self): 9 print("功能菜單...") 10 print("1.添加學員") 11 print("2.刪除學員") 12 print("3.修改學員信息") 13 print("4.查詢學員信息") 14 print("5.顯示所有學員") 15 print("6.保存學員信息.") 16 print("7.退出系統") 17 #程序入口 18 def run(self): 19 #加載學員信息 20 self.load_student() 21 while True: 22 self.show_menu() 23 #用戶輸入功能序號 24 number = int(input("請輸入功能序號:")) 25 if number == 1: 26 #添加學員 27 self.add_student() 28 if number == 2: 29 #刪除學員 30 self.del_student() 31 if number == 3: 32 #修改學生信息 33 self.change_student_info() 34 if number == 4: 35 #查詢學生信息 36 self.seach_student() 37 if number == 5: 38 #顯示所有學生信息 39 self.display_all_student() 40 if number == 6: 41 #保存學生信息 42 self.save_student_info() 43 if number == 7: 44 #退出系統 45 break 46 #系統功能函數 47 def show_menu(self): 48 print("功能菜單...") 49 print("1.添加學員") 50 print("2.刪除學員") 51 print("3.修改學員信息") 52 print("4.查詢學員信息") 53 print("5.顯示所有學員") print("6.保存學員信息.") 55 print("7.退出系統") 56 57 def add_student(self): 58 name = input("請輸入學生姓名:") 59 sex = input("請輸入學生的性別:") 60 tel = input("請輸入學生的電話號碼:") 61 #創建學員對象 62 student1 = student(name,sex,tel) 63 self.student_list.append(student1) 64 print(self.student_list) 65 print(student1) 66 67 def del_student(self): 68 remove_name = input("請輸入需要刪除的學生的姓名:") 69 for i in self.student_list: 70 if i.name == remove_name: 71 #直接移除一個對象 72 self.student_list.remove(i) 73 break 74 else: 75 print("查無此人") 76 print(self.student_list) 77 78 def change_student_info(self): 79 change_name = input("請輸入學生姓名:") 80 for i in self.student_list: 81 if i.name == change_name: 82 i.name = input("新的姓名:") 83 i.sex = input("新的性別:") 84 i.tel = input("新的電話號碼:") 85 print(f"學員信息{i.name},{i.sex},{i.tel}") 86 break 87 else: 88 print("查無此人") 89 90 def seach_student(self): 91 seach_name = input("學生姓名:") 92 for i in self.student_list: 93 if i.name == seach_name: 94 print(f"學員信息{i.name},{i.sex},{i.tel}") 95 break 96 else: 97 print("查無此人") 98 99 def display_all_student(self): 100 print("姓名\t性別\t手機號") 101 for i in self.student_list: print(f"{i.name}\t{i.sex}\t{i.tel}") 103 104 def save_student_info(self): 105 f = open("student.data","w") 106 #文件寫入學員數據 107 #注意:文件寫入的數據不能是學員對象的內存地址,需要 把學員數據轉化成列表字典數據再做存儲 108 new_list = [i.__dict__ for i in self.student_list]# 列表解析 109 #[{"name":},{"sex":},{"tel":}] 110 f.write(str(new_list)) 111 #關閉文件 112 f.close() 113 114 def load_student(self): 115 #進行一個文件的檢測,看文件是否存在 116 try: 117 f = open("student.data","r") 118 except: 119 f = open("student.data","w") 120 else: 121 data = f.read() 122 #文件中讀取的數據都是字符串且字符串內部為字典,故需 要轉換數據類型在轉換字典為對象后從存儲到學員列表 123 new_list = eval(data) 124 #字典轉化為對象,類似與c語言中的類型強轉 125 self.student_list = [student(i["name"],i["sex"] ,i["tel"]) for i in new_list]#列表解析 126 finally: 127 f.close()
源碼:main.py
#conding:utf-8 2 #導入模塊 3 from maneger import * 4 5 #程序入口 6 #保證當前文件運行才創建對象 7 if __name__ == "__main__": 8 student_manager = manager() 9 student_manager.run() 10
#運行截圖 功能菜單... 1.添加學員 2.刪除學員 3.修改學員信息 4.查詢學員信息 5.顯示所有學員 6.保存學員信息. 7.退出系統 請輸入功能序號:
代碼還有許多可以優化的地方,比如在添加學員時進行名字是否重復的掃描等等。大家可以嘗試着去完善代碼。