學生成績管理系統(python)的實現
學生成績管理系統功能:增.刪.改.查.排序.這五個部份組成.均由單獨的函式完成.其中資訊的存取均以字典形式表達.
#student_info.py
#插入學生資訊
def input_student():
infos=[]
while True:
n=input("請輸入學生姓名:")
if not n:
break
a=int(input("請輸入年齡:"))
s=int(input("請輸入成績:"))
d={'name':n,'age':a,'score':s} #d=dict(name=n,age=a,score=s)
infos.append(d) #將字典資料新增到列表中
return infos
#顯示資訊
def output_student(L):
print("+------------+------------+------------+")
print("| 姓名 | 年齡 | 成績 |")
print("+------------+------------+------------+")
for d in L: #繫結字典
n=d['name']
a=d['age']
s=d['score']
n=str(n)
a=str(a) #將整型轉換成字串
s=str(s)
print("|"+n.center(12)+"|"+a.center(12)+"|"+s.center(12)+"|")
print("+------------+------------+------------+")
#刪除資訊
def delete_student(L):
name=input(print("請輸入要刪除的學生姓名:"))
i=0
while i<len(L):
if L[i]['name']==name:
del L[i]
print("學生"+name+"刪除成功")
return True
elif i>=len(L)-1:
print("學生"+name+"不存在")
return False
i+=1
#修改學生成績
def modify_student_score(L):
n=input("請輸入要修改的學生姓名:")
i=0
while i<len(L):
if L[i]['name']==n:
L[i]['score']=input("請輸入新成績:")
print("修改成績OK")
return True
elif i>=len(L)-1:
print(name+"學生不存在,不能修改")
return False
i+=1
#by學生成績排序
def output_student_score_desc(L):
lis=sorted(L,key=lambda d:d['score'],reverse=True)
output_student(lis)
def output_student_score_asc(L):
lis=sorted(L,key=lambda d:d['score'],reverse=False)
output_student(lis)
#by學生年齡排序
def output_student_age_desc(L):
lis=sorted(L,key=lambda d:d['age'],reverse=True)
output_student(lis)
def output_student_age_asc(L):
lis=sorted(L,key=lambda d:d['age'],reverse=False)
output_student(lis)
#解釋說明:
#sorted(iterable,key=None,reverse=False) 函式作用是將原可迭代物件排序,生成新的列表
#單步測試
# l=[]
# l+=input_student()
# output_student(l)
# menu.py
def show_menu():
print("+--------------------------------+")
print("| 1) 新增學生資訊 |")
print("| 2) 檢視學生資訊 |")
print("| 3) 刪除學生資訊 |")
print("| 4) 修改學生成績 |")
print("| 5) 按學生成績高-低顯示學生資訊 |")
print("| 6) 按學生成績低-高顯示學生資訊 |")
print("| 7) 按年齡成績高-低顯示學生資訊 |")
print("| 8) 按年齡成績低-高顯示學生資訊 |")
print("| q) 退出 |")
print("+--------------------------------+")
#main.py
from menu import show_menu
from student_info import *
def main():
infos=[]
while True:
show_menu()
s=input("請選擇:")
if s=='q':
return #退出
elif s == '1':
infos += input_student()
# infos.extend(input_student())
elif s == '2':
output_student(infos)
elif s == '3':
delete_student(infos)
elif s=='4':
modify_student_score(infos)
elif s=='5':
output_student_score_desc(infos)
elif s=='6':
output_student_score_asc(infos)
elif s=='7':
output_student_age_desc(infos)
elif s=='8':
output_student_age_asc(infos)
main() #從主函式開始