1. 程式人生 > >大家一起學python-day4-大四課程結束作業-寫一個學生成績管理系統

大家一起學python-day4-大四課程結束作業-寫一個學生成績管理系統

#幸好老師給了個函式框架,挺好用,用了幾個小時寫的,基本不會出現語法錯誤,有些小邏輯不對(如功能用完返回到那個函式介面等),無大礙!不改了,頭髮已經掉光。

# 放在外面,用來儲存學生賬號,學號,學生姓名和成績等
# 學生端:用於儲存學生的賬號和密碼,只有匹配正確才能進入學生端
xueshengzhanghao = ['12345']
xueshengmima = ['12345']
c = ['陳思宇']  # 用於儲存學生資訊
d = ['100']  # 用處儲存學生成績

# 教師端:用於儲存教師的賬號和密碼,只有匹配正確才能進入教師端
jiaoshizhanghao = ['12345']
jiaoshimima = ['12345']

chengji = []  # 成績有誤陣列
# 當學生髮現成績有誤,則可告訴老師成績有誤,老師會定期檢視
# 學生端
def student():
    while True:
        print('----------------------')
        print("歡迎進入學生成績管理系統")
        print("退出請輸出一個空格按回車")
        print('----------------------')
        zh = input("請輸入賬號: ")
        if zh == ' ':
            main()
        if zh not in xueshengzhanghao:
            print("請輸入您的密碼:")
            print("賬號錯誤,請重新輸入!")
            continue
        p = xueshengzhanghao.index(zh)  # p是賬號
        powerword = input("請輸入您的密碼:")
        if powerword == xueshengmima[p]:
            print("登陸成功")
            print('----------------------------------------')
            print("學生端功能有:")
            print("1.可檢視自己的各項成績(只可檢視自己的成績)")
            print("2.若成績有錯誤,可上報老師")
            print("退出請輸出一個空格按回車")
            print('---------------------------------------')
            print("檢視成績選擇1,退到上一級按任意鍵")
            l = input("請選擇:")
            if l == '1':
                name = input("請輸入您的姓名")
                if name in c:
                    if c.index(name) == xueshengzhanghao.index(zh):
                        b = c.index(name)  # 索引計數
                        print("您的成績為:", d[b])
                        print("有異議按1,無異議按任意鍵")
                        h = input("您是否對您的成績有異議?")
                        if h =='1':
                            c.append(name)
                            print("已上報給老師")
                            print("退出程式!")
                        else:
                            pass

                    else:
                        print("您的許可權不足!無權檢視")
                else:
                    print("您的成績還未更新,或沒有考試(無成績)")
            else:
                print("正在退出...返回主選單")
                main()
# 教師端
def teacher():
    while True:
        print('----------------------')
        print("歡迎進入教師成績管理系統")
        print("退出請輸出一個空格按回車")
        print('----------------------')
        zh = input("請輸入賬號: ")
        if zh == ' ':
            main()
        if zh not in jiaoshizhanghao:
            print("請輸入您的密碼:")
            print("賬號錯誤,請重新輸入!")
            continue
        p = jiaoshizhanghao.index(zh)  # p是賬號
        laoshipowerword = input("請輸入您的密碼:")
        if laoshipowerword == jiaoshimima[p]:
            print("登陸成功....")
            print("教師端功能有:")
            print("1.可新增學生資訊和成績")
            print("2.可檢視學生成績")
            print('3.可修改學生資訊')
            print("4.可刪除學生成績")
            print("5.檢視對成績有異議的學生")
            print("退出程式按任意鍵")
            e = input("請選擇您的選項:")
            if e == '1':
                xinzeng()
            elif e == '2':
                chaxun()
            elif e == '3':
                xiugai()
            elif e == '4':
                shanchu()
            elif e == '5':
                yiyi()
        else:
            print("輸入錯誤!請重新輸入")
            continue
# 教師端新增學生資訊和成績
def xinzeng():
    while True:
        print('---------')
        name = input('請輸入學生的姓名:')
        num = input("請輸入學生的成績:")
        c.append(name)
        d.append(num)
        print("成績已經儲存成功")
        # 儲存成績後,可再次儲存
        x = input("繼續儲存請按1,退出按任意鍵!")
        if x == '1':
            continue
        else:
            teacher()
# 教師端查詢學生成績
def chaxun():
    while True:
        print('---------')
        name = input("請輸入需要查詢的學生姓名:")
        if name in c:
            b = c.index(name)
            print("您所查詢的學生成績是:", d[b])
        else:
            print("暫無資訊(未更新或者無)")
        x = input("繼續檢視請按1,退出按任意鍵!")
        if x == '1':
            continue
        else:
            teacher()
# 教師端刪除
def shanchu():
    while True:
        a = input("請輸入學生姓名")
        if a in c:
            e = c.index(a)  # e是學生表中的索引值
            d[e] = '0(成績已被刪除)'
            teacher()
        else:
            print('沒有可以查詢的資訊')
            main()
# 教師端修改
def xiugai():
    while True:
        a = input("請輸入學生姓名")
        j = input("請輸入需要修改的成績")
        if a in c:
            e = c.index(a)  # e是學生表中的索引值
            d[e] = j
            break
        else:
            print('沒有可以查詢的資訊')
            main()

#檢視對成績有異議的學生
def yiyi():
    print("歡迎進入成績檢視系統")
    print("以下是對成績有異議的學生名單")
    print("-------------------------")
    print(chengji)
    teacher()
# 選單端
def menu():
    print("----------------------")
    print("歡迎進入學生成績管理系統")
    print("教師登陸請按1")
    print("學生登陸請按2")
    print("退出請按任意鍵")
    print("----------------------")
# 主函式
def main():
    while True:
        menu()
        a = input("請選擇您需要登陸的類別:")
        if a == '1':
            teacher()
        elif a == '2':
            student()
        else:
            print('退出系統')
            break
main()