python2.面向对象.学生管理
main.py(程序主入口)
#1.導(dǎo)入管理系統(tǒng)模塊
from mangerSystem import *
#2.啟動(dòng)管理系統(tǒng)
#保證是當(dāng)前文件運(yùn)行才啟動(dòng)管理系統(tǒng):if -- 創(chuàng)建對(duì)象并調(diào)用run()方法
if __name__=="__main__":
??? student_manager=StudentManager()
??? student_manager.run()
student.Py
class Student(object):
??? def __init__(self,name,gender,tel):
??????? #姓名,性別,手機(jī)號(hào)
??????? 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):
??????? #存儲(chǔ)學(xué)員數(shù)據(jù) -- 列表
??????? self.student__list=[]
??? #一.程序入口函數(shù)
??? def run(self):
??????? #1.加載文件里的學(xué)員數(shù)據(jù)
??????? # self.load_student()
??????? while True:
???? ???????#2.顯示功能菜單
??????????? self.showmenu()
??????????? #3.用戶輸入目標(biāo)功能序號(hào)
??????????? menu_num=int(input("請(qǐng)輸入你需要的功能序號(hào):"))
??????? #4.根據(jù)用戶輸入的序號(hào)執(zhí)行不同的功能 -- 如果用戶輸入1,執(zhí)行添加
??????????? if menu_num==1:
??????????????? #添加學(xué)員
??????????????? self.add_student()
??????????? elif menu_num==2:
??????????????? #刪除學(xué)員
??????????????? self.del_student()
??????????? elif menu_num==3:
??????????????? #修改學(xué)員信息
??????????????? self.modif_student()
??????????? elif menu_num==4:
??????????????? #查詢學(xué)員信息
??????????????? self.search_student()
??????????? elif menu_num==5:
??????????????? #顯示所有學(xué)員信息
??????????????? self.show_student()
??????????? elif menu_num==6:
??????????????? #保存學(xué)員信息
??????????????? self.save_student()
??????????? elif menu_num==7:
??????????????? #退出系統(tǒng)--退出循環(huán)
? ??????????????# break
??????????????? self.load_student()
??????????? elif menu_num == 8:
??????????????? # 退出系統(tǒng)--退出循環(huán)
??????????????? # break
??????????????? # 程序想要結(jié)束,退出終止while True -- break
??????????????? exit_flag = input("確定要退出嗎?yes or no")
???????? ???????if exit_flag == 'yes':
??????????????????? print("退出系統(tǒng)")
??????????????????? break
??????????? else:
??????????????? print("輸入的功能序號(hào)有誤!")
??? #二.系統(tǒng)功能函數(shù)
??? #2.1顯示功能菜單 -- 打印序號(hào)功能對(duì)應(yīng)關(guān)系--靜態(tài)
??? @staticmethod
??? def showmenu():
??????? print("請(qǐng)選擇如下功能:")
??????? print("1:添加學(xué)員")
??????? print("2:刪除學(xué)員")
??????? print("3:修改學(xué)員信息")
??????? print("4:查詢學(xué)員信息")
??????? print("5:顯示所有學(xué)員信息")
??????? print("6:保存學(xué)員信息")
??????? print("7:加載學(xué)員信息")
??????? print("8:退出系統(tǒng)")
??? # 2.2添加學(xué)員
??? def add_student(self):
?????? ?# print("添加學(xué)員")
??????? #1.用戶輸入姓名,性別,手機(jī)號(hào)
??????? name=input("請(qǐng)輸入你的姓名:")
??????? gender=input("請(qǐng)輸入你的性別:")
??????? tel=input("請(qǐng)輸入你的手機(jī)號(hào):")
?#2.創(chuàng)建學(xué)員對(duì)象--類,類在student文件里面 先導(dǎo)入student模塊,在創(chuàng)建對(duì)象
??????? student=Student(name,gender,tel)
??????? #3.將該對(duì)象添加到學(xué)員列表
??????? self.student__list.append(student)
??????? # print(123)
??????? # print(self.student__list)
??????? print(student)
??? # 2.3刪除學(xué)員
??? def del_student(self):
??????? # print("刪除學(xué)員")
??????? #1.用戶輸入目標(biāo)學(xué)員姓名
??????? del_name=input("請(qǐng)輸入要?jiǎng)h除的學(xué)員姓名:")
?? ?????#2.遍歷學(xué)員列表,如果用戶輸入的學(xué)員存在,則刪除學(xué)員對(duì)象。否則提示學(xué)員不存在
??????? for i in self.student__list:
??????????? if del_name==i.name:
??????????????? #刪除學(xué)員對(duì)象
??????????????? # self.student__list.remove(i)
??????????????? break
??????? else:
??????????? #循環(huán)正常結(jié)束執(zhí)行代碼:循環(huán)結(jié)束都沒有刪除任何一個(gè)對(duì)象,所以說明用戶輸入的目標(biāo)學(xué)員不存在。
??????????? print("查無此人!")
??????? print(self.student__list)
??? # 2.4修改學(xué)員信息
??? def modif_student(self):
??????? #print("修改學(xué)員信息")
??????? # 1.用戶輸入目標(biāo)學(xué)員姓名
??????? modify_name=input("請(qǐng)輸入要修改的學(xué)員姓名:")
??????? #2遍歷列表數(shù)據(jù),如果學(xué)員存在,修改姓名,性別,手機(jī)號(hào)。否則提示學(xué)員不存在
??????? for i in self.student__list:
??????????? if modify_name==i.name:
??????????????? i.name=input("姓名:")
??????????????? i.gender=input("性別:")
??????????????? i.tel=input("手機(jī)號(hào):")
??????????????? print(f"修改學(xué)員信息成功,姓名:{i.name},性別:{i.gender},手機(jī)號(hào):{i.tel}")
??????????????? break
??????? else:
??????????? print("查無此人!")
??? # 2.5查詢學(xué)員信息
??? def search_student(self):
??????? # print("查詢學(xué)員信息")
??????? #1.用戶輸入目標(biāo)學(xué)員姓名
??????? search_name=input("請(qǐng)輸入你要搜索的學(xué)員姓名:")
??????? #2.遍歷列表。如果學(xué)員存在打印學(xué)員信息,否則提示學(xué)員不存在
??????? for i in self.student__list:
??????????? if search_name==i.name:
??????????????? print(f"姓名是:{i.name},性別是:{i.gender},手機(jī)號(hào)是:{i.tel}")
??????????????? break
??????? else:
??????????? print("查無此人!")
??? # 2.6顯示所有學(xué)員信息
??? def show_student(self):
??????? # print("顯示所有學(xué)員信息")
??????? #1.打印表頭
??????? print("姓名\t性別\t手機(jī)號(hào)")
??????? #2.打印學(xué)員數(shù)據(jù)
??????? for i in self.student__list:
??????????? print(f"{i.name}\t{i.gender}\t{i.tel}")
??? # 2.7保存學(xué)員信息
??? def save_student(self):
? ??????# print("保存學(xué)員信息")
??????? #1.打印文件
??????? f=open("student.data","a")
??????? #2.文件寫入數(shù)據(jù)
??????? #2.1[學(xué)員對(duì)象]轉(zhuǎn)換成[字典]
??????? new_list=[i.__dict__ for i in self.student__list]
??????? #2.2文件寫入 字符串?dāng)?shù)據(jù)
??????? f.write(str(new_list))
??????? #3.關(guān)閉文件
??????? f.close()
??? # 2.8加載學(xué)員信息
??? def load_student(self):
??? #???? print("加載學(xué)員信息")
??????? with open("student.data","r") as file:
??????????? showAll=file.read()
??????????? print(showAll,"\n")
總結(jié)
以上是生活随笔為你收集整理的python2.面向对象.学生管理的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 玩转oracle 11g(22):ora
- 下一篇: 数字图像处理系统组成 及研究内容