python實(shí)現(xiàn)學(xué)生信息管理系統(tǒng)(面向?qū)ο?
本文實(shí)例為大家分享了python實(shí)現(xiàn)學(xué)生信息管理系統(tǒng)的具體代碼,供大家參考,具體內(nèi)容如下
1.主要內(nèi)容
python種的.py文件如圖所示
第一個(gè)文件是用來(lái)管理文件中包中各個(gè)模塊的關(guān)系的文件
第二個(gè)文件是主函數(shù)文件,就是在主函數(shù)文件調(diào)用其余文件和模塊
第三個(gè)模塊式學(xué)生信息管理的模塊
第四個(gè)文件是用來(lái)存放學(xué)生數(shù)據(jù)的文件
第五個(gè)文件是學(xué)生信息的定義和顯示模塊

2.實(shí)現(xiàn)代碼
1)第一個(gè)文件是包中的管理文件自動(dòng)生成且不需要修改
2)main.py文件
from managerSystem import *#導(dǎo)入模塊managerSystem,可以使用其中的功能 if __name__=='__main__':#定義只能在運(yùn)行main.py文件中運(yùn)行,才執(zhí)行的代碼 ? ? student_manager=StudentManager() ? ? student_manager.run()
3)學(xué)生信息管理模塊
from student import *
class StudentManager(object):
? ? def __init__(self):
? ? ? ? self.student_list = []
? ? def run(self):
? ? ? ? self.load_student()
? ? ? ? while True:
? ? ? ? ? ? self.show_menu()
? ? ? ? ? ? ret = int(input('請(qǐng)輸入數(shù)字1——7:'))
? ? ? ? ? ? if ret == 1:
? ? ? ? ? ? ? ? self.add_student()
? ? ? ? ? ? elif ret == 2:
? ? ? ? ? ? ? ? self.del_student()
? ? ? ? ? ? elif ret == 3:
? ? ? ? ? ? ? ? self.modify_student()
? ? ? ? ? ? elif ret == 4:
? ? ? ? ? ? ? ? self.search_student()
? ? ? ? ? ? elif ret == 5:
? ? ? ? ? ? ? ? self.show_student()
? ? ? ? ? ? elif ret == 6:
? ? ? ? ? ? ? ? self.save_student()
? ? ? ? ? ? elif ret == 7:
? ? ? ? ? ? ? ? break
? ? @staticmethod#此方法在執(zhí)行時(shí),不需要傳入任何參數(shù)
? ? def show_menu():
? ? ? ? print('請(qǐng)選擇如下序號(hào):')
? ? ? ? print('1.添加學(xué)員')
? ? ? ? print('2.刪除學(xué)員')
? ? ? ? print('3.修改學(xué)員信息')
? ? ? ? print('4.查找學(xué)員')
? ? ? ? print('5.顯示學(xué)員信息')
? ? ? ? print('6.保存學(xué)員信息')
? ? ? ? print('7.退出系統(tǒng)')
? ? def add_student(self):
? ? ? ? name = input('請(qǐng)輸入學(xué)員姓名:')
? ? ? ? gender = input('請(qǐng)輸入學(xué)員性別:')
? ? ? ? tel = input('請(qǐng)輸入電話號(hào)碼:')
? ? ? ? student = Student(name, gender, tel)
? ? ? ? self.student_list.append(student)
? ? ? ? # print(self.student_list)
? ? ? ? # print(student)
? ? def del_student(self):
? ? ? ? del_name = input('請(qǐng)輸入需要?jiǎng)h除的學(xué)員姓名:')
? ? ? ? for i in self.student_list:
? ? ? ? ? ? if i.name == del_name:
? ? ? ? ? ? ? ? self.student_list.remove(i)
? ? ? ? ? ? ? ? break
? ? ? ? else:
? ? ? ? ? ? print('查無(wú)此人')
? ? ? ? # print(self.student_list)
? ? def modify_student(self):
? ? ? ? modify_name = input('請(qǐng)輸入需要修改的學(xué)員姓名:')
? ? ? ? for i in self.student_list:
? ? ? ? ? ? if i.name == modify_name:
? ? ? ? ? ? ? ? i.name = input('親輸入需要修改的學(xué)員姓名:')
? ? ? ? ? ? ? ? i.gender = input('請(qǐng)輸入需要修過(guò)的學(xué)員性別:')
? ? ? ? ? ? ? ? i.tel = input('請(qǐng)輸入需要修改的學(xué)員手機(jī)號(hào):')
? ? ? ? ? ? ? ? print(f'修改的信息為{i.name},{i.gender},{i.tel}')
? ? ? ? ? ? ? ? break
? ? ? ? else:
? ? ? ? ? ? print('需要修改的學(xué)員不存在')
? ? def search_student(self):
? ? ? ? searce_name = input('請(qǐng)輸入需要查詢(xún)的學(xué)員姓名:')
? ? ? ? for i in self.student_list:
? ? ? ? ? ? if i.name == searce_name:
? ? ? ? ? ? ? ? print(f'姓名:{i.name},性別:{i.gender},手機(jī)號(hào):{i.tel}')
? ? ? ? ? ? ? ? break
? ? ? ? else:
? ? ? ? ? ? print('查無(wú)此人')
? ? def show_student(self):
? ? ? ? print('姓名:\t性別:\t手機(jī)號(hào):')
? ? ? ? for i in self.student_list:
? ? ? ? ? ? print(f'{i.name}\t{i.gender}\t{i.tel}')
? ? def save_student(self):
? ? ? ? f = open('student.data', 'w')
? ? ? ? new_list = [i.__dict__ for i in self.student_list]
? ? ? ? print(new_list)
? ? ? ? f.write(str(new_list))
? ? ? ? f.close()
? ? def load_student(self):
? ? ? ? # 1. 打開(kāi)文件:嘗試r打開(kāi),如果有異常w
? ? ? ? try:
? ? ? ? ? ? f = open('student.data', 'r')
? ? ? ? except:
? ? ? ? ? ? f = open('student.data', 'w')
? ? ? ? else:
? ? ? ? ? ? # 2. 讀取數(shù)據(jù):文件讀取出的數(shù)據(jù)是字符串還原列表類(lèi)型;[{}] 轉(zhuǎn)換 [學(xué)員對(duì)象]
? ? ? ? ? ? data = f.read() ?# 字符串
? ? ? ? ? ? if data != '': ?# 此時(shí)需要添加判斷文件是否為空,否則會(huì)發(fā)生報(bào)錯(cuò)
? ? ? ? ? ? ? ? new_list = eval(data)
? ? ? ? ? ? ? ? self.student_list = [Student(i['name'], i['gender'], i['tel']) for i in new_list]
? ? ? ? finally:
? ? ? ? ? ? # 3. 關(guān)閉文件
? ? ? ? ? ? f.close()4)存儲(chǔ)數(shù)據(jù)的文件不需要編輯
5)student.py文件主要是用來(lái)存放學(xué)生的主要信息的模塊,以及可以查看學(xué)生信息的方法
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}'以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
- python學(xué)生信息管理系統(tǒng)(完整版)
- Python實(shí)現(xiàn)GUI學(xué)生信息管理系統(tǒng)
- python實(shí)現(xiàn)學(xué)生信息管理系統(tǒng)
- python實(shí)現(xiàn)簡(jiǎn)易學(xué)生信息管理系統(tǒng)
- python實(shí)現(xiàn)外賣(mài)信息管理系統(tǒng)
- python學(xué)生信息管理系統(tǒng)
- python學(xué)生信息管理系統(tǒng)實(shí)現(xiàn)代碼
- python實(shí)現(xiàn)簡(jiǎn)單學(xué)生信息管理系統(tǒng)
- python學(xué)生信息管理系統(tǒng)(初級(jí)版)
- 使用python實(shí)現(xiàn)學(xué)生信息管理系統(tǒng)
相關(guān)文章
使用Python3中的gettext模塊翻譯Python源碼以支持多語(yǔ)言
這篇文章主要介紹了使用Python3中的gettext模塊翻譯Python源碼以支持多語(yǔ)言,其中翻譯Python源碼只是作為示例以展示gettext的功能和用法,需要的朋友可以參考下2015-03-03
wxPython中l(wèi)istbox用法實(shí)例詳解
這篇文章主要介紹了wxPython中l(wèi)istbox用法,以實(shí)例形式較為詳細(xì)的分析了Python使用wxPython中l(wèi)istbox的相關(guān)技巧,需要的朋友可以參考下2015-06-06
Python讀取Excel批量寫(xiě)入到PPT并生成詞卡
這篇文章主要為大家詳細(xì)介紹了如何使用Python實(shí)現(xiàn)讀取Excel并批量寫(xiě)入到PPT生成詞卡,文中的示例代碼講解詳細(xì),有需要的小伙伴可以參考一下2024-12-12

