當前位置:成語大全網 - 新華字典 - 用python寫的學生成績管理系統

用python寫的學生成績管理系統

# -*-編碼:cp936 -*-

StuInfo類:

def __init__(self):

Self.stu = [{"SnO": "1 "," sname ":"姓名","語文成績":64,"數學成績":34,"英語成績":94,"計算機成績":83},

{"Sno":"2 "," Sname ":"姓名","語文成績":44,"數學成績":24,"英語成績":44,"計算機成績":71},

{"Sno":"3 "," Sname ":"姓名","語文成績":74,"數學成績":35,"英語成績":74,"計算機成績":93},

{"Sno":"4 "," Sname ":"姓名","語文成績":94,"數學成績":54,"英語成績":24,"計算機成績":73}]

Self.attribute={"Sno ":"學號",

“Sname”:“name”,

《中國分數》:“中國分數”,

「MathsScore」:「數學成績」,

“英語成績”:“英語成績”,

“計算機分數”:“計算機分數”

}

def _add(自身):

''添加'''

singleInfo={}

對於自我中的我.屬性:

如果“得分”在I:

single info[I]= int(raw _ input(self . attribute[I]+" \ n "))

否則:

single info[I]= raw _ input(self . attribute[I]+" \ n ")。條狀()

自我。Stu.append(singleInfo)

打印“添加成功確定”

對於singleInfo中的I:

打印I," = ",singleInfo[i]

def _del(self):

" ""刪除學號為Sno的記錄" " "

Sno=raw_input("學生編號:\n ")

自我。Stu.remove(自我。__getInfo(Sno))

打印“刪除成功確定”

定義_更新(自身):

" ""更新數據" " "

Sno=raw_input("學號\n ")。條狀()

Prefix= "修改"

update operate = { " 1 ":" Chinese score ",

" 2":"MathsScore ",

“3”:“English score”,

" 4":"ComputerScore"}

對於更新操作中的I:

印刷體I,"->,prefix+self . attribute[update operate[I]]

GetOperateNum=raw_input("選擇操作:\n ")

如果getOperateNum:

GetNewValue=int(raw_input("輸入新值:\n "))

記錄=自我。__getInfo(Sno)

record[update operate[getOperateNum]]= get new value

print " modify "+str(update operate[getoperatenum])+" score = ",獲取新值," \ n訪問成功"

def _getInfo(self):

" ""查詢數據" " "

雖然正確:

打印“1->;學號查詢2-& gt;條件查詢3->;退出”

GetNum=raw_input("選擇:\n ")

if getNum=="1 ":

Sno=raw_input("學生編號:\n ")

打印過濾器(lambda record:record[" Sno "]= = Sno,self。斯圖)[0]

elif getNum=="2 ":

打印“中文樂譜”,“MathsScore數學成績;”“英語分數英語分數”,“ComputerScore電腦評分;”

打印“等於=,小於,大於或等於> =,小於或等於

Print "輸入查詢條件,如以下格式如:ChineseScore & gt=60 "

Expr=raw_input ("condition: \n ")

Infos=self。__getInfo(expr=expr)

如果信息:

打印" * * * * % d條記錄" %len(Infos )"

對於信息中的I:

打印I

否則:

打印“記錄為空”

elif getNum=="3 ":

破裂

否則:

及格

def __getInfo(self,Sno=None,expr= " "):

" " "查詢數據

根據學號_ getinfo(" 111111 ")

根據score _ getInfo(" English sorce & gt;80")"""

如果Sno:

返回過濾器(lambda record:record[" Sno "]= = Sno,self。斯圖)[0]

用於在[" >中操作;= "," >," & lt= "," & lt,"==","!="]:

如果在expr中操作:

gradeName,value=expr.split(operate)

返回過濾器(lambda record:eval(repr(record[grade name . strip()])+operate+value . strip()),self。斯圖)

返回{}

def _showAll(self):

" ""顯示所有記錄" " "

因為我在自我中。斯圖:

打印I

@靜態方法

定義測試():

" ""測試" " "

_StuInfo=StuInfo()

雖然正確:

打印“1->;輸入數據2->;修改數據3->刪除數據4->;查詢數據5->;查看數據6->;退出”

T=raw_input("選擇:\n ")

如果t=="1 ":

打印“輸入數據”

_StuInfo。_添加()

elif t=="2 ":

打印“修改數據”

_StuInfo。_更新()

elif t=="3 ":

打印“刪除數據”

_StuInfo。_del()

elif t=="4 ":

打印“查詢數據”

_StuInfo。_getInfo()

elif t=="5 ":

打印“顯示所有記錄”

_StuInfo。_showAll()

elif t=="6 ":

破裂

否則:

及格

if __name__=="__main__ ":

StuInfo.test()