溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

Python如何實現(xiàn)信息管理系統(tǒng)

發(fā)布時間:2022-06-06 09:35:20 來源:億速云 閱讀:149 作者:zzz 欄目:開發(fā)技術(shù)

本文小編為大家詳細(xì)介紹“Python如何實現(xiàn)信息管理系統(tǒng)”,內(nèi)容詳細(xì),步驟清晰,細(xì)節(jié)處理妥當(dāng),希望這篇“Python如何實現(xiàn)信息管理系統(tǒng)”文章能幫助大家解決疑惑,下面跟著小編的思路慢慢深入,一起來學(xué)習(xí)新知識吧。

具體代碼如下

"""
項目名稱 = 'python'
文件名= '學(xué)生信息管理系統(tǒng)'
作者 = '向日葵'
"""

import time

# 管理員登錄
gly_zm = ("admin",["1234"])

# 學(xué)員登錄
st_dict = dict()
# 課程數(shù)據(jù)
kc_dict = dict()
# 選課數(shù)據(jù)
xk_dict = dict()

# 記錄當(dāng)前登錄的用戶
jl_yh = None

# 登錄菜單頁面選項
cd_ym = {"1":"gly()",        # 管理員登錄
         "2":"xs()",         # 學(xué)生登錄
         "3":"xs_zc()",      # 學(xué)生注冊
         "4":"tc()"}         # 退出

# 管理員首頁選擇
gly_ym = {"1":"gly_zjkc()",       # 增加課程
          "2":"gly_ckkc()",       # 查看課程
          "3":"gly_cksy()",       # 查看學(xué)員
          "4":"dl_cdjm()",        # 返回登錄頁面
          "5":"tc()"}             # 退出

# 管理員選課選項
gly_xk = {"1":"gly_zjkc()",        # 增加課程
          "2":"gly_sckc()",        # 刪除課程
          "3":"gly_xgkc()",        # 修改課程
          "4":"gly_sy()"}          # 返回管理員首頁

# 管理員查看學(xué)員
gly_ckxy = {"1":"gly_zjxy()",      # 查看指定學(xué)生
            "2":"gly_sy()"}        # 返回管理員首頁

# 學(xué)生首頁選擇
xs_ym = {"1":"xs_grzl()",          # 個人資料
         "2":"xs_xgmm()",          # 修改密碼
         "3":"xs_ckkc()",          # 查看所有課程
         "4":"xs_yxkc()",          # 查看已選課程
         "5":"dl_cdjm()",          # 返回登錄頁面
         "6":"tc()"}               # 退出

# 完善資料選擇
xs_ws_zl = {"1":"xs_wszl()",       # 完善資料
            "2":"xs_sy()"}         # 學(xué)生首頁

# 學(xué)生選課
xs_xk = {"1":"ks_xk()",           # 開始選課
         "2":"xs_sy()"}           # 學(xué)生首頁


#                                         登錄菜單
#####################################################################################


# 登錄菜單頁面
def dl_cdjm():
    print("               學(xué)生管理系統(tǒng)")
    print("*******************************************")
    print("                1、管理員登錄")
    print("                2、學(xué)生登錄")
    print("                3、學(xué)生注冊")
    print("                4、安全退出")
    print("*******************************************")
    choice = input("輸入你的選項")
    options = cd_ym.get(choice,"dl_cdjm()")
    return eval(options)


# 管理員登錄
def gly():
    username = input("請輸入你的賬號")
    password = input("請輸入你的密碼")
    # 判斷賬號密碼
    if username == gly_zm[0] and password ==  gly_zm[1][0]:
        # 登錄成功
        return gly_sy()
    else:
        input("賬號或密碼錯誤,按任意鍵返回")
        return dl_cdjm()


# 學(xué)生登錄
def xs():
    global jl_yh
    username = input("請輸入你的賬號")
    password = input("請輸入你的密碼")
    # 判斷賬號
    if username in st_dict:
        # 判斷密碼
        if password == st_dict.get(username).get("password"):
            # 登錄成功,記錄學(xué)員
            jl_yh = st_dict.get(username)
            return xs_sy()
        else:
            input("賬號或密碼輸入有誤,按任意鍵返回登錄菜單")
            return dl_cdjm()
    else:
        input("賬號不存在,按任意鍵返回登錄菜單")
        return dl_cdjm()


# 學(xué)生注冊
def xs_zc():
    # 判斷賬號
    username = input("請輸入你的賬號")
    if username in st_dict:
        input("賬號已存在,請重新輸入")
        return xs_zc()

    # 判斷密碼
    password = input("請輸入你的密碼")
    confirm = input("請確認(rèn)密碼:")
    if password != confirm:
        input("兩次密碼不同,請重新輸入")
        return xs_zc()

    # 創(chuàng)建用戶注冊
    user = {"username": username, "password": password,
            "email": None, "phone": None, "address": None,
            "reg_no": None, "gender": None, "age": None}
    # 添加
    st_dict[username] = user
    input("注冊成功,按任意鍵返回主菜單")
    return dl_cdjm()


# 安全退出
def tc():
    """退出系統(tǒng)"""
    input("即將退出,按任意鍵繼續(xù)")
    for i in range(3):
        print(f"系統(tǒng)將在{3-i}s退出")
        time.sleep(1)
    exit(1)

#                                          管理員菜單
#######################################################################################


def gly_sy():
    """管理員首頁"""
    print("          學(xué)員管理系統(tǒng)-管理員首頁")
    print("~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~")
    print("             1. 增加課程")
    print("             2. 查看課程")
    print("             3. 查看學(xué)員")
    print("             4. 返回登錄菜單")
    print("             5. 安全退出")
    print("~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~")
    choice = input("請輸入選項:")
    options = gly_ym.get(choice,"gly_sy()")
    return eval(options)


# 增加課程
def gly_zjkc():
    name = input("請輸入課程")
    if name in kc_dict:
        res = input("課程已存在,請錄入其他課程。按任意鍵繼續(xù)(Q返回首頁)").strip()
        if res.upper() == "Q":
            return gly_sy()

    teacher = input("請輸入課程講師:").strip()
    score = input("請輸入課程學(xué)分:").strip()
    count = input("請輸入學(xué)習(xí)人數(shù)上限:").strip()
    times = input("請輸入課程學(xué)時:").strip()
    desc = input("請輸入課程描述:").strip()

    clazz = {"name": name, "score": score, "count": count, 'selected': 0,
             "times": times, "desc": desc, "teacher": teacher}
    # 注冊課程
    kc_dict[name] = clazz
    input("錄入完成,按任意鍵繼續(xù)")
    return gly_sy()


# 查看課程
def gly_ckkc():
    print("課程名稱\t課程學(xué)時\t課程學(xué)分\t課程講師\t課程描述")
    for clazz in kc_dict.values():
        print(f"{clazz['name']}\t{clazz['times']}\t{clazz['score']}\
                        \t{clazz['teacher']}\t{clazz['desc']}")

    chonic = input("\n共有上述課程、請選擇(1、增加課程 2、刪除課程 3、修改課程 4、返回首頁):")
    return eval(gly_xk.get(chonic, "gly_ckkc()"))


# 刪除課程
def gly_sckc():
    name = input("請選擇你要刪除的課程名稱")
    if name in kc_dict:
        res = input("請確認(rèn)是否刪除課程(Y確認(rèn))")
        if res.lower() == "y":
            kc_dict.pop(name)
            input("刪除完成")

        return gly_ckkc()
    else:
        res = input("沒有這門課,按任意鍵重新輸入(Q返回課程列表")
        if res.lower() == "q":
            return gly_ckkc()
        return gly_sckc()


# 修改課程
def gly_xgkc():
    name = input("請輸入你要修改的課程名稱")
    choice = input("請輸入要修改的課程數(shù)據(jù)(score|count|times|desc)")
    if choice == "score":
        score = input("請輸入新的學(xué)分")
        kc_dict[name]["score"] = score
    elif choice == "count":
        count = input("請輸入新的人數(shù)上限")
        kc_dict[name]["count"] = count
    elif choice == "times":
        times = input("請輸入新的課程課時")
        kc_dict[name]["times"] = times
    elif choice == "desc":
        desc = input("請輸入新的課程描述")
        kc_dict[name]["desc"] = desc

    input("修改完成,按任意鍵返回查看課程頁面")
    return gly_ckkc()


# 查看學(xué)員
def gly_cksy():
    print("會員賬號\t聯(lián)系郵箱\t聯(lián)系電話\t性別")
    for student in st_dict.values():
        print(f"{student['username']}\t{student.get('email', '待完善')}\
        \t{student.get('phone', '待完善')}\t{student.get('gender', '待完善')}\t")

    choice = input("\n所有學(xué)員信息展示完成,(1-查看指定學(xué)員詳細(xì)信息,輸入2-返回管理員首頁)")
    return eval(gly_ckxy.get(choice,"gly_sy()"))


def gly_zjxy():
    """查看某個指定會員"""
    username = input("請輸入學(xué)員賬號:")
    if username in st_dict:
        student = st_dict[username]
        # 展示學(xué)員信息
        print("***************************************")
        print(f"    學(xué)員賬號:{student.get('username')}")
        print(f"    學(xué)員手機(jī):{student.get('phone')}")
        print(f"    學(xué)員學(xué)分:{student.get('score')}")
        print(f"    學(xué)員學(xué)時:{student.get('times')}")
        print(f"    學(xué)員家庭地址:{student.get('address')}")
        print(f"    學(xué)員郵箱:{student.get('email', '待完善')}")
        print("****************************************")
        input("展示完成,按任意鍵返回學(xué)員列表")
        return gly_cksy()
    else:
        res = input("沒有這個學(xué)員,按任意鍵重新輸入(Q返回管理員首頁)")
        if res.upper() == "Q":
            return gly_sy()
        return gly_zjxy()


#                                         會員菜單
##################################################################################


# 學(xué)生首頁
def xs_sy():
    print("          學(xué)員管理系統(tǒng)-學(xué)員首頁")
    print("~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~")
    print("              1. 查看個人資料")
    print("              2. 修改登錄密碼")
    print("              3. 查看所有課程")
    print("              4. 查看已選課程")
    print("              5. 返回登錄菜單")
    print("              6. 安全退出")
    print("~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~")
    choice = input("請輸入您的選項:")
    return eval(xs_ym.get(choice,"xs_sy()"))


# 查看個人資料
def xs_grzl():
    """查看個人資料"""
    print("#####################")
    print(f"   賬號:{jl_yh.get('username')}")
    print(f"   性別:{jl_yh.get('gender', '待完善')}")
    print(f"   年齡:{jl_yh.get('age', '待完善')}")
    print(f"   手機(jī):{jl_yh.get('phone', '待完善')}")
    print(f" 身份證:{jl_yh.get('reg_no', '待完善')}")
    print(f"   郵箱:{jl_yh.get('email', '待完善')}")
    print(f"   地址:{jl_yh.get('address', '待完善')}")
    print("#####################")
    res = input("\n信息展示完成,(1-完善個人資料;2-返回學(xué)員首頁)")
    return eval(xs_ws_zl.get(res,"xs_grzl()"))


# 完善資料
def xs_wszl():
    choic = input("請輸入你要修改的項目(phone|reg_no|email|address)")
    if choic == "phone":
        phone = input("請輸入你的手機(jī)號")
        jl_yh["phone"] = phone
    elif choic == "reg_no":
        reg_no = input("請輸入你的身份證")
        jl_yh["reg_no"] = reg_no
    elif choic == "email":
        email = input("請輸入你的郵箱")
        jl_yh["email"] = email
    elif choic == "address":
        address = input("請輸入你的地址")
        jl_yh["address"] = address
    input("修改完成,按任意鍵查看")
    return xs_grzl()


# 修改登錄密碼
def xs_xgmm():
    input("即將修改,請確認(rèn)周圍安全,按任意鍵繼續(xù)")
    old_password = input("請輸入舊密碼")
    if old_password != jl_yh.get("password"):
        input("密碼錯誤")
        return dl_cdjm()

    new_password = input("請輸入新的密碼")
    new_mima = input("請確認(rèn)密碼")
    if new_password != new_mima:
        input("兩次密碼輸入不一致,請重新修改")
        return xs_sy()

    jl_yh["password"] = new_password
    input("密碼修改成功")
    return dl_cdjm()


# 查看所有課程
def xs_ckkc():
    print("課程名稱\t課程學(xué)時\t課程學(xué)分\t課程講師\t課程描述")
    for clazz in kc_dict.values():
        print(f"{clazz['name']}\t{clazz['times']}\t{clazz['score']}\
                            \t{clazz['teacher']}\t{clazz['desc']}")

    choice = input("\n共有上述課程,請選擇您的操作(1-開始選課;2-返回首頁):")
    return eval(xs_xk.get(choice, "xs_ckkc()"))


# 開始選課
def ks_xk():
    name = input("請輸入要選擇的課程名稱:")
    if name in kc_dict:
        # 開始選課
        if int(kc_dict[name]["selected"]) < int(kc_dict[name]["count"]):
            xk_dict[jl_yh.get("username")][name] = kc_dict[name].copy()
            xk_dict[jl_yh.get("username")][name].update({"studied": 0, "status": "learning"})
            # 更改課程的選課人數(shù)
            kc_dict[name]['selected'] = int(kc_dict[name]['selected']) + 1
            input("選擇結(jié)束,按任意鍵返回首頁")
            return xs_sy()
        else:
            input("課程人數(shù)已滿,請選擇其他課程")
    else:
        res = input("沒有這門課程,按任意鍵重新輸入(Q返回課程列表)")
        if res.lower() == "q":
            return xs_ckkc()
        else:
            return ks_xk()


# 查看已選課程
def xs_yxkc():
    my_classer = xk_dict.get(jl_yh['username'])
    print("課程名稱\t課程學(xué)分\t課程學(xué)時\t已學(xué)課時\t課程狀態(tài)")
    if my_classer != None:
        for clazz in my_classer.vaiues():
            print(f"{clazz['name']}\t"
                  f"{clazz['score']}\t"
                  f"{clazz['times']}\t"
                  f"{clazz['studied']}\t"
                  f"{clazz['status']}")
        res = input("1-學(xué)習(xí)指定課程;2-返回首頁")
        if res == '1':
            reso = input("請輸入你要學(xué)的課程")
            print("正在學(xué)習(xí)中")
            time.sleep(3)
            print('學(xué)習(xí)完成')
            my_classer[reso]['studied'] += 1
        return xs_sy()
    else:
        input("當(dāng)前用戶還沒有選擇任何課程,按任意鍵返回首頁")
        return xs_sy()


# 程序運(yùn)行入口
dl_cdjm()

效果圖

Python如何實現(xiàn)信息管理系統(tǒng)

Python如何實現(xiàn)信息管理系統(tǒng)

Python如何實現(xiàn)信息管理系統(tǒng)

讀到這里,這篇“Python如何實現(xiàn)信息管理系統(tǒng)”文章已經(jīng)介紹完畢,想要掌握這篇文章的知識點還需要大家自己動手實踐使用過才能領(lǐng)會,如果想了解更多相關(guān)內(nèi)容的文章,歡迎關(guān)注億速云行業(yè)資訊頻道。

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI