學生成績管理系統(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() #從主函數開始




 


 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM