python實(shí)現(xiàn)學(xué)生管理系統(tǒng)源碼
本文實(shí)例為大家分享了python實(shí)現(xiàn)學(xué)生管理系統(tǒng)的具體代碼,供大家參考,具體內(nèi)容如下
一.面向過程版
import os
stu_list = []
def show_menu():
print('1.添加學(xué)生')
print('2.刪除學(xué)生')
print('3.修改學(xué)生信息')
print('4.查詢單個(gè)學(xué)生信息')
print('5.查詢所有學(xué)生信息')
print('6.退出系統(tǒng)')
def insert_student():
name = input('請(qǐng)輸入學(xué)生名字:')
for stu in stu_list:
if stu['name'] == name:
print('.........學(xué)生信息已存在........')
return
age = input('請(qǐng)輸入學(xué)生年齡:')
gender = input('請(qǐng)輸入學(xué)生性別:')
stu_dict = {'name': name, 'age': int(age), 'gender': gender}
stu_list.append(stu_dict)
print("學(xué)生信息添加成功!")
def remove_student():
name = input('請(qǐng)輸入要操作的學(xué)生的名字:')
for stu in stu_list:
if stu['name'] == name:
stu_list.remove(stu)
print('刪除成功!')
break
else:
print('........該學(xué)生信息不存在,無法刪除.........')
def modify_student():
name = input('請(qǐng)輸入要操作的學(xué)生的名字:')
for stu in stu_list:
if stu['name'] == name:
stu['age'] = int(input('請(qǐng)輸入新的年齡:'))
print('修改成功!')
break
else:
print('........該學(xué)生信息不存在,無法修改.........')
def search_student():
name = input('請(qǐng)輸入要操作的學(xué)生的名字:')
for stu in stu_list:
if stu['name'] == name:
print(f'姓名:{stu["name"]},年齡:{stu["age"]},性別:{stu["gender"]}')
break
else:
print('........該學(xué)生信息不存在.......')
def show_all_stu():
if len(stu_list):
for stu in stu_list:
print(f'姓名:{stu["name"]},年齡:{stu["age"]},性別:{stu["gender"]}')
else:
print("目前沒有學(xué)生信息!")
def save():
f = open('student.txt', 'w')
f.write(str(stu_list))
f.close()
def read_file():
global stu_list
if os.path.exists('student.tct'):
f = open('student.txt', 'r', encoding='utf-8')
buf = f.read()
if buf:
stu_list = eval(buf)
f.close()
def main():
read_file()
while True:
show_menu()
opt = input('請(qǐng)輸入用來選擇的編號(hào):')
if opt == '1':
print('1.添加學(xué)生')
insert_student()
elif opt == '2':
print('2.刪除學(xué)生')
remove_student()
elif opt == '3':
print('3.修改單個(gè)學(xué)生信息')
modify_student()
elif opt == '4':
print('查詢單個(gè)學(xué)生信息')
search_student()
elif opt == '5':
print('5.查詢所有學(xué)生信息')
show_all_stu()
elif opt == '6':
print('歡迎下次使用本系統(tǒng)')
save()
break
else:
print('輸入有誤,請(qǐng)重新輸入')
continue
input('........回車鍵繼續(xù)操作........')
main()
二.面向?qū)ο蟀?/h3>
1.工程文件

2.main.py
import student_manage_sysytem as sms
if __name__ == '__main__':
stu_sms = sms.StudenManagerSystem()
stu_sms.start()
3.student.py
class Student():
def __init__(self, stu_id, name, age, gender):
self.sut_id = stu_id
self.name = name
self.age = age
self.gender = gender
def __str__(self):
return f"{self.sut_id},{self.name},{self.age},{self.gender}"
4.student_manage_system.py
import student
class StudenManagerSystem():
def __init__(self):
self.stu_dict = {}
@staticmethod
def __show_menu():
print('1.添加學(xué)生')
print('2.刪除學(xué)生')
print('3.修改學(xué)生信息')
print('4.查詢單個(gè)學(xué)生信息')
print('5.查詢所有學(xué)生信息')
print('6.退出系統(tǒng)')
def __insert_student(self):
stu_id = input('請(qǐng)輸入學(xué)生學(xué)號(hào):')
if stu_id in self.stu_dict:
print('學(xué)生信息已經(jīng)存在,不需要重復(fù)添加')
return
name = input('請(qǐng)輸入學(xué)生名字:')
age = input('請(qǐng)輸入學(xué)生年齡:')
gender = input('請(qǐng)輸入學(xué)生性別:')
stu = student.Student(stu_id, name, age, gender)
self.stu_dict[stu_id] = stu
def __removw_student(self):
stu_id = input('請(qǐng)輸入學(xué)號(hào):')
if stu_id in self.stu_dict:
del self.stu_dict[stu_id]
print('學(xué)生已經(jīng)刪除')
else:
print('學(xué)生信息不存在,無法刪除')
def __modify_student(self):
stu_id = input('請(qǐng)輸入學(xué)號(hào):')
if stu_id in self.stu_dict:
stu = self.stu_dict[stu_id]
stu.age = input('請(qǐng)輸入新的年齡:')
print('信息已經(jīng)修改完畢')
else:
print('學(xué)生信息不存在,無法修改')
def __search_student(self):
stu_id = input('請(qǐng)輸入學(xué)號(hào):')
if stu_id in self.stu_dict:
stu = self.stu_dict[stu_id]
print(stu)
else:
print('學(xué)生信息不存在')
def __save(self):
f = open('student.txt', 'w', encoding='utf-8')
for stu in self.stu_dict.values():
f.write(str(stu) + '\n')
f.close()
def __load_info(self):
try:
f = open('student.txt', 'r', encoding='utf-8')
buf_list = f.readlines()
for buf in buf_list:
buf = buf.strip()
info_list = buf.split(',')
stu = student.Student(*info_list)
stu_id = info_list[0]
self.stu_dict[stu_id] = stu
f.close()
except Exception:
pass
def __show_all_info(self):
for stu in self.stu_dict.values():
print(stu)
def start(self):
self.__load_info()
while True:
self.__show_menu()
opt = input('請(qǐng)輸入用來選擇的編號(hào):')
if opt == '1':
print('1.添加學(xué)生')
self.__insert_student()
elif opt == '2':
print('2.刪除學(xué)生')
self.__removw_student()
elif opt == '3':
print('3.修改單個(gè)學(xué)生信息')
self.__modify_student()
elif opt == '4':
print('查詢單個(gè)學(xué)生信息')
self.__search_student()
elif opt == '5':
print('5.查詢所有學(xué)生信息')
self.__show_all_info()
elif opt == '6':
self.__save()
print('歡迎下次使用本系統(tǒng)')
break
else:
print('輸入有誤,請(qǐng)重新輸入')
continue
input('........回車鍵繼續(xù)操作........')
以上就是本文的全部內(nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
- python版學(xué)生管理系統(tǒng)
- python實(shí)現(xiàn)學(xué)生管理系統(tǒng)
- python學(xué)生管理系統(tǒng)代碼實(shí)現(xiàn)
- 基于python實(shí)現(xiàn)學(xué)生管理系統(tǒng)
- 詳解用python實(shí)現(xiàn)基本的學(xué)生管理系統(tǒng)(文件存儲(chǔ)版)(python3)
- 用python實(shí)現(xiàn)學(xué)生管理系統(tǒng)
- 基于Python實(shí)現(xiàn)簡單學(xué)生管理系統(tǒng)
- Python實(shí)現(xiàn)學(xué)生管理系統(tǒng)的完整代碼(面向?qū)ο?
- Python實(shí)現(xiàn)學(xué)生管理系統(tǒng)(面向?qū)ο蟀?
- 手把手教你做python學(xué)生管理系統(tǒng)
相關(guān)文章
刪除pycharm鼠標(biāo)右鍵快捷鍵打開項(xiàng)目的操作
這篇文章主要介紹了刪除pycharm鼠標(biāo)右鍵快捷鍵打開項(xiàng)目的操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2021-01-01
基于pyinstaller超級(jí)加密操作(加殼和轉(zhuǎn)c)
這篇文章主要介紹了基于pyinstaller超級(jí)加密操作 (加殼和轉(zhuǎn)c),具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2021-03-03
python使用Bokeh庫實(shí)現(xiàn)實(shí)時(shí)數(shù)據(jù)的可視化
Python語言以其豐富的數(shù)據(jù)科學(xué)生態(tài)系統(tǒng)而聞名,其中Bokeh庫作為一種功能強(qiáng)大的可視化工具,為實(shí)時(shí)數(shù)據(jù)的可視化提供了優(yōu)秀的支持,本文將介紹如何使用Bokeh庫實(shí)現(xiàn)實(shí)時(shí)數(shù)據(jù)的可視化,并提供相關(guān)代碼實(shí)例,需要的朋友可以參考下2024-05-05
使用python實(shí)現(xiàn)簡單爬取網(wǎng)頁數(shù)據(jù)并導(dǎo)入MySQL中的數(shù)據(jù)庫
這篇文章主要為大家詳細(xì)介紹了如何使用 python 實(shí)現(xiàn)簡單爬取網(wǎng)頁數(shù)據(jù)并導(dǎo)入 MySQL 中的數(shù)據(jù)庫,對(duì)我們的學(xué)習(xí)或工作有一定的幫助,需要的朋友可以參考下2023-06-06
解決新django中的path不能使用正則表達(dá)式的問題
今天小編就為大家分享一篇解決新django中的path不能使用正則表達(dá)式的問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2018-12-12
Python利用三層神經(jīng)網(wǎng)絡(luò)實(shí)現(xiàn)手寫數(shù)字分類詳解
這篇文章主要介紹了如何設(shè)計(jì)一個(gè)三層神經(jīng)網(wǎng)絡(luò)模型來實(shí)現(xiàn)手寫數(shù)字分類。本文給大家介紹的非常詳細(xì),感興趣的小伙伴快來跟小編一起學(xué)習(xí)一下2021-11-11
Python用imghdr模塊識(shí)別圖片格式實(shí)例解析
這篇文章主要介紹了Python用imghdr模塊識(shí)別圖片格式實(shí)例解析,具有一定借鑒價(jià)值,需要的朋友可以參考下2018-01-01

