基于python實(shí)現(xiàn)學(xué)生信息管理系統(tǒng)
學(xué)生信息管理系統(tǒng)負(fù)責(zé)編輯學(xué)生信息,適時(shí)地更新學(xué)生的資料。下面通過(guò)python實(shí)現(xiàn)一個(gè)簡(jiǎn)單的學(xué)生信息管理系統(tǒng)
stuInfo=[]
def main():
while True:
printMenu() #打印菜單
key=int(input('請(qǐng)輸入功能對(duì)應(yīng)的數(shù)字:'))
if key==1:
addInfo() #添加學(xué)生信息
elif key==2:
delInfo() #刪除學(xué)生信息
elif key==3:
modifystuInfo() #修改學(xué)生信息
elif key==4:
showstuInfo() #查看學(xué)生所有信息
elif key==5: #退出系統(tǒng)
quitConfirm=input('真的要退出嗎?(Yes or No):')
if quitConfirm=='Yes':
break #結(jié)束循環(huán)
else:
print('輸入有誤,請(qǐng)重新輸入')
#打印功能提示
def printMenu():
print('='*30)
print('學(xué)生信息管理系統(tǒng)V1.0')
print('1.添加學(xué)生信息')
print('2.刪除學(xué)生信息')
print('3.修改學(xué)生信息')
print('4.顯示所有學(xué)生信息')
print('5.退出系統(tǒng)')
print('='*30)
#添加學(xué)生信息
def addInfo():
newname=input('輸入新學(xué)生的名字:')
newsex=input('輸入新學(xué)生的性別:')
newphone=input('輸入新學(xué)生的號(hào)碼:')
newInfo={}
newInfo['name']=newname
newInfo['sex']=newsex
newInfo['phone']=newphone
stuInfo.append(newInfo)
#刪除學(xué)生信息
def delInfo():
delNum=int(input('請(qǐng)輸入要?jiǎng)h除的序號(hào):'))-1
del stuInfo[delNum]
#修改學(xué)生信息
def modifystuInfo():
stuId=int(input('請(qǐng)輸入要修改的學(xué)生序號(hào):'))-1
newname=input('輸入修改后學(xué)生的名字:')
newsex=input('輸入修改后學(xué)生的性別:')
newphone=input('輸入修改后學(xué)生的號(hào)碼:')
stuInfo[stuId]['name']=newname
stuInfo[stuId]['sex']=newsex
stuInfo[stuId]['phone']=newphone
#顯示所有學(xué)生信息
def showstuInfo():
print('='*30)
print('學(xué)生信息如下:')
print('='*30)
i=1
for tempInfo in stuInfo:
print('%d %s %s %s'%(i,tempInfo['name'],tempInfo['sex'],tempInfo['phone']))
i+=1
調(diào)用main()函數(shù)即可:

雖然以上代碼可以完成上述功能,但是每次調(diào)用程序里面的數(shù)據(jù)全部清除掉了,所以為了更好的模擬現(xiàn)實(shí)的學(xué)生信息管理系統(tǒng),我們還需要將上次操作過(guò)后的數(shù)據(jù)保存下來(lái),所以在上面的基礎(chǔ)上加上數(shù)據(jù)存儲(chǔ)的代碼。
stuInfo=[]
def main():
recoverData()
while True:
printMenu() #打印菜單
key=int(input('請(qǐng)輸入功能對(duì)應(yīng)的數(shù)字:'))
if key==1:
addInfo() #添加學(xué)生信息
elif key==2:
delInfo() #刪除學(xué)生信息
elif key==3:
modifystuInfo() #修改學(xué)生信息
elif key==4:
showstuInfo() #查看學(xué)生所有信息
elif key==5:
saveToFile()
elif key==0: #退出系統(tǒng)
quitConfirm=input('真的要退出嗎?(Yes or No):')
if quitConfirm=='Yes':
break #結(jié)束循環(huán)
else:
print('輸入有誤,請(qǐng)重新輸入')
#打印功能提示
def printMenu():
print('='*30)
print('學(xué)生信息管理系統(tǒng)V1.0')
print('1.添加學(xué)生信息')
print('2.刪除學(xué)生信息')
print('3.修改學(xué)生信息')
print('4.顯示所有學(xué)生信息')
print('5.保存數(shù)據(jù)')
print('0.退出系統(tǒng)')
print('='*30)
#添加學(xué)生信息
def addInfo():
newname=input('輸入新學(xué)生的名字:')
newsex=input('輸入新學(xué)生的性別:')
newphone=input('輸入新學(xué)生的號(hào)碼:')
newInfo={}
newInfo['name']=newname
newInfo['sex']=newsex
newInfo['phone']=newphone
stuInfo.append(newInfo)
#刪除學(xué)生信息
def delInfo():
delNum=int(input('請(qǐng)輸入要?jiǎng)h除的序號(hào):'))-1
del stuInfo[delNum]
#修改學(xué)生信息
def modifystuInfo():
stuId=int(input('請(qǐng)輸入要修改的學(xué)生序號(hào):'))-1
newname=input('輸入修改后學(xué)生的名字:')
newsex=input('輸入修改后學(xué)生的性別:')
newphone=input('輸入修改后學(xué)生的號(hào)碼:')
stuInfo[stuId]['name']=newname
stuInfo[stuId]['sex']=newsex
stuInfo[stuId]['phone']=newphone
#顯示所有學(xué)生信息
def showstuInfo():
print('='*30)
print('學(xué)生信息如下:')
print('='*30)
i=1
for tempInfo in stuInfo:
print('%d %s %s %s'%(i,tempInfo['name'],tempInfo['sex'],tempInfo['phone']))
i+=1
#保存學(xué)生信息
def saveToFile():
f=open('backup.data','w')
f.write(str(stuInfo))
f.close()
#恢復(fù)數(shù)據(jù)
def recoverData():
global stuInfo
f=open('backup.data')
content=f.read()
stuInfo=eval(content)
f.close()

從結(jié)果可以看出,選擇操作4后可以顯示上次保留下來(lái)的學(xué)生信息。
更多學(xué)習(xí)資料請(qǐng)關(guān)注專題《管理系統(tǒng)開(kāi)發(fā)》。
以上就是本文的全部?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學(xué)生信息管理系統(tǒng)
- python學(xué)生信息管理系統(tǒng)實(shí)現(xiàn)代碼
- python實(shí)現(xiàn)簡(jiǎn)單學(xué)生信息管理系統(tǒng)
- python學(xué)生信息管理系統(tǒng)(初級(jí)版)
- 學(xué)生信息管理系統(tǒng)Python面向?qū)ο蟀?/a>
- python代碼實(shí)現(xiàn)學(xué)生信息管理系統(tǒng)
相關(guān)文章
Python內(nèi)置函數(shù)locals和globals對(duì)比
這篇文章主要介紹了Python內(nèi)置函數(shù)locals和globals對(duì)比,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-04-04
Python導(dǎo)入模塊的3種方式超級(jí)詳細(xì)講解
這篇文章主要給大家介紹了關(guān)于Python導(dǎo)入模塊的3種方式,本文介紹了在Python中使用模塊的概念和不同的導(dǎo)入方式,文中通過(guò)代碼介紹的非常詳細(xì),需要的朋友可以參考下2023-12-12
使用Python實(shí)現(xiàn)屏幕錄制與鍵盤監(jiān)聽(tīng)功能
在Python中,我們可以借助多個(gè)強(qiáng)大的庫(kù)來(lái)實(shí)現(xiàn)豐富的功能,比如屏幕錄制和鍵盤監(jiān)聽(tīng),今天,我們將通過(guò)結(jié)合PIL、OpenCV、pynput以及threading等庫(kù),來(lái)實(shí)現(xiàn)一個(gè)簡(jiǎn)單的屏幕錄制工具,該工具能夠通過(guò)監(jiān)聽(tīng)鍵盤事件來(lái)控制錄制的開(kāi)始與結(jié)束,需要的朋友可以參考下2024-12-12
教你用一行Python代碼實(shí)現(xiàn)GUI圖形界面
這篇文章主要介紹了教你用一行Python代碼實(shí)現(xiàn)GUI圖形界面,通過(guò)使用PySimpleGUI的popup_get_folder()方法,一行代碼就能實(shí)現(xiàn)選擇文件夾的操作,本文結(jié)合示例代碼給大家介紹的非常詳細(xì),需要的朋友可以參考下2023-01-01
Python任務(wù)自動(dòng)化工具tox使用教程
這篇文章主要介紹了Python任務(wù)自動(dòng)化工具tox使用教程,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-03-03
Python根據(jù)給定模型計(jì)算權(quán)值
在機(jī)器學(xué)習(xí)和深度學(xué)習(xí)中,模型的權(quán)值(或參數(shù))通常是通過(guò)訓(xùn)練過(guò)程(如梯度下降)來(lái)學(xué)習(xí)和調(diào)整的,本文將使用TensorFlow和PyTorch根據(jù)給定模型計(jì)算權(quán)值,感興趣的可以了解下2024-11-11
Python實(shí)現(xiàn)抓取網(wǎng)頁(yè)生成Excel文件的方法示例
這篇文章主要介紹了Python實(shí)現(xiàn)抓取網(wǎng)頁(yè)生成Excel文件的方法,涉及PyQuery模塊的使用及Excel文件相關(guān)操作技巧,需要的朋友可以參考下2017-08-08
pyCharm中python對(duì)象的自動(dòng)提示方式
這篇文章主要介紹了pyCharm中python對(duì)象的自動(dòng)提示方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-09-09
pandas如何解決excel科學(xué)計(jì)數(shù)法問(wèn)題
這篇文章主要介紹了pandas如何解決excel科學(xué)計(jì)數(shù)法問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-11-11

