Python基礎知識詳解(十)小結,用python實現教師信息管理系統

Python基礎知識詳解(十)小結,用python實現教師信息管理系統

其他python學習筆記集合

Python基礎知識詳解 從入門到精通 全集索引篇

這個系統其實是本人之前完成的c語言課程設計的實驗報告,用了600多行c語言實現,有興趣可以看本人的另一篇拙作

原文鏈接:c語言設計 教師信息管理系統 含源碼及說明

現學python基礎知識後,爲檢驗學習效果,用python改寫這個教師信息管理系統(略有改動),共用了300多行代碼,排版有一些亂的地方未改正,但是本人測試功能基本沒問題,若有問題或者其他疑問歡迎評論

持續更新arduino 樹莓派 python Linux c語言等等
接到有幫助的話 求點贊👍 求關注❤️ 求分享👥
有問題可以評論
點關注,不迷路
如果有任何錯誤,如何建議,請批評指教,不勝感激 !

源代碼

源代碼如下,說明請看本人的c語言版本

'''
學習python結束了基礎知識的學習
現在用python改寫之前用c語言設計的教師信息管理系統
檢驗學習成果 

'''
import math 
import pickle
import os
xinxi = []  #  存放每個教師的信息,一個元素爲一個教師 
xinxi1 = {'教師號':'0','姓名':'0','性別':'0','年齡':0,'電話':0,'工資':0,'職稱':'0','課程名稱':'0','班級數':0}   
#存放單個教師的全部信息{'姓名':'林白','性別':'男''年齡':23,'電話':12345678,'工資':3456,'職稱2':'教授','課程名稱':'物聯網工程','班級數':6}
anquanxuanxian = [0,0,0,0,0,0,0,0,0]
mima = 88888888
def hello():
    os.system("cls")                                                                                                            #h歡迎界面
    print ("\t                         ☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆\n\n\n")
    print ('''\t                              ┃                                       ┃
    \t                              ┃                                       ┃
    \t                              ┃                                       ┃
    \t                              ┃       歡迎訪問教師信息管理系統!       ┃
    \t                              ┃                                       ┃
    \t                              ┃           ---------------             ┃
    \t                              ┃                                       ┃
    \n\t                                                             請按回車鍵進入系統……\n''')
    input()
    os.system("cls")  
def bye(): 
    os.system("cls")                                                                                                             #結束界面
    print('''\n\n\n\n\t
                                      
                                       ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★\n\n
    \t                             ┃                                               ┃
    \t                             ┃                                               ┃
    \t                             ┃     感謝訪問教師信息管理系統!歡迎下次再來!    ┃
    \t                             ┃                                               ┃
    \t                             ┃                                               ┃
    \t                             ┃                                               ┃
    \t                             ┃                                               ┃
    \n\n\n    ''')
def zhucaidan():                                                                                                         #主菜單
    print('''\n\n\n  	            ★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆
      	            ☆********************************************************************★
               	    ★                          教師信息管理系統                          ☆
            	    ☆                                                                    ★
      	            ★          1.錄入教師信息               5.統計信息                   ☆
            	    ☆                                                                    ★
      	            ★          2.瀏覽所有教師信息           6. 按條件排序                ☆
      	            ☆                                                                    ★
      	            ★          3.按條件查詢信息             7.信息安全及權限管理         ☆
       	            ☆                                                                    ★
       	            ★          4.修改教師信息               8.文件保存與讀取             ☆
      	            ☆                                                                    ★
      	            ★********************************************************************☆
      	            ☆                          輸入9退出系統                            ★
                    ★          ----------------------------------------------            ☆
                        ''')
def luru ():
    print('*****************************錄入教師信息***************************************')                                                                                           #錄入信息函數
    i = int (input('請輸入需要輸入的人數:'))
    for i in range(i) :
        print('-------------------------------------------------------------------------------')
        print('\n開始錄入第%d位教師信息\n\n'%(int(len(xinxi))+1))
        xinxi1['教師號'] = input('請輸入教師號:')
        xinxi1['姓名'] = input('請輸入姓名:')
        xinxi1['性別'] = input('請輸入性別:')
        xinxi1['年齡'] = input('請輸入年齡:')
        xinxi1['電話'] = input('請輸入電話:')
        xinxi1['工資'] = input('請輸入工資:')
        xinxi1['職稱'] = input('請輸入職稱:')
        xinxi1['課程名稱'] = input('請輸入課程名稱:')
        xinxi1['班級數'] = input('請輸入班級數:')
        xinxi.append(dict(xinxi1))   
    else :
        print ('********************************輸入結束***************************************')
def cakan():                                                                                          #查看信息函數
    print("\n所有信息如下")
    for i in range(len(xinxi)):
        print("第%d位教師信息"%(i+1),xinxi[i],'\n')

def xiugai():                                                                                      # 修改信息函數
    while True :
        t = input('請輸入需要修改的教師的教師號(輸入000結束脩改):')
        if int(t) == 000 :
            break
        for i in range(len(xinxi)):
            if t == xinxi[i]['教師號'] :
                xinxi1.update(xinxi[i])
                while True :
                    j = int(input('請選擇需要修改的信息編號(1:姓名,2:性別,3:年齡,4:電話,5:工資,6:職稱,7:課程名稱,8:班級數,輸入9結束脩改):'))
                    if j== 1 :
                        xinxi1['姓名'] = input('請輸入姓名:')
                    elif j ==2 :
                        xinxi1['性別'] = input('請輸入性別:')
                    elif j ==3 :
                        xinxi1['年齡'] = input('請輸入年齡:')
                    elif j ==4 :
                        xinxi1['電話'] = input('請輸入電話:')
                    elif j ==5 :
                        xinxi1['工資'] = input('請輸入工資:')
                    elif j ==6 :
                        xinxi1['職稱'] = input('請輸入職稱:')
                    elif j ==7 :
                        xinxi1['課程名稱'] = input('請輸入課程名稱:')
                    elif j ==8 :
                        xinxi1['班級數'] = input('請輸入班級數:')
                    else :
                        break
                xinxi[i] = dict(xinxi1)
        else :
            print('教師號不存在')
def chaxuncaidan() :
    os.system("cls")                                                                              #查詢菜單
    print('''\n\n                                           ★按條件查詢選項★                             \n
	                ★          -------------------------------------------                 ☆
            	    ☆                                                                      ★
      	            ★                      1.按教師號查詢                                  ☆
            	    ☆                      2.按姓名查詢                                    ★
      	            ★                      3.按職稱查詢                                    ☆
      	            ☆                      4.返回主菜單                                    ★
      	            ★                                                                      ☆
       	            ☆                                                                      ★
	                ★         -------------------------------------------                  ☆
    ''')
def chaxungongnen():
    chaxuncaidan()
    while True :
        x = int (input('請選擇查詢方式:'))
        if x == 4 :
            break
        else :
            y = input('\n請輸入用於查詢的信息:')
            for i in range(len(xinxi)):
                if x == 1 :
                    if  y == xinxi[i]['教師號'] :
                        print ('查找的教師信息如下',xinxi[i],sep = '\n')
                elif x == 2 :
                    if  y == xinxi[i]['姓名'] :
                        print ('查找的教師信息如下',xinxi[i],sep = '\n')
                elif x ==3 :
                    if  y == xinxi[i]['職稱'] :
                        print ('查找的教師信息如下',xinxi[i],sep = '\n')
        print('\n查找結束\n')
def tongjicaidan():   
    os.system("cls")                                                                          #統計函數菜單
    print('''\n\n\n                                                  ★統計信息選項★                                   \n 
	                    ★              -------------------------------------------               ☆
            	    ☆                                                                        ★
      	            ★                      1.統計工資的平均值、最大最小值                    ☆
            	    ☆                                                                        ★
      	            ★                      2.統計年齡的平均值、最大最小值                    ☆
      	            ☆                                                                        ★
      	            ★                      3.返回主菜單                                      ☆
       	            ☆                                                                        ★
	                    ★              -------------------------------------------               ☆
    ''')
def tongji():                                                 #統計功能函數
    tongjicaidan()
    linshi = []
    he = 0
    while True :
        t = int (input('                                         請選擇功能:'))
        if t == 1 :
            for i in range (len(xinxi)):
                linshi.append(xinxi[i]['工資'])
                he += int (xinxi[i]['工資'])
            print("教師的工資的平均值:%7.1f  最大值:%d   最小值:%d\n\n"%(he/len(xinxi),int(max(linshi)),int(min(linshi))))
        elif t == 2 :
            for i in range (len(xinxi)):
                linshi.append(xinxi[i]['年齡'])
                he += int (xinxi[i]['年齡'])
            print("教師的年齡的平均值:%7.1f  最大值:%d   最小值:%d\n\n"%(he/len(xinxi),int(max(linshi)),int(min(linshi))))
        else :
            break
def paixucaidan ():  
    os.system("cls")                                      #排序功能菜單
    print('''\n\n\n                                            ★按條件排序選項★                                   \n 
	                    ★          -------------------------------------------                   ☆
            	    ☆                                                                        ★
      	            ★                      1.按教師號排序                                    ☆
            	    ☆                      2.按年齡排序                                      ★
      	            ★                      3.按工資排序                                      ☆
      	            ☆                      4.返回主菜單                                      ★
      	            ★                                                                        ☆
       	            ☆                                                                        ★
	                    ★          -------------------------------------------                   ☆
    ''')
def paixu():                                            #排序功能函數
    paixucaidan ()
    while True :
        t = int (input('                          請選擇功能:'))
        if t == 1 :
            def mysort1(x) :
                return int (x['教師號'])
            xinxi.sort(key = mysort1)
            print('排序成功')
        elif t == 2 :
            def mysort2(x) :
                return int (x['年齡'])
            xinxi.sort(key = mysort2)
            print('排序成功')
        elif t == 3 :
            def mysort3(x) :
                return int (x['工資'])
            xinxi.sort(key = mysort3)
            print('排序成功')
        else :
            break
def wenjiancaidan():                  
    os.system("cls")                    #文件功能菜單
    print('''\n\n\b                                          ★文件保存與讀取★                                    
	                    ★          -------------------------------------------                 ☆
            	    ☆                                                                      ★
      	            ★                      1.文件保存到磁盤                                ☆
            	    ☆                                                                      ★
      	            ★                      2.從磁盤讀取文件                                ☆
      	            ☆                                                                      ★
      	            ★                      3.返回主菜單                                    ☆
       	            ☆                                                                      ★
	                    ★          -------------------------------------------                 ☆
    ''')
def wenjian():                                                               #文件功能
    wenjiancaidan()
    global xinxi
    while True :
        t = int (input('                                          請選擇功能:'))
        if t == 1 :
            try :
                f = open('jiaoshixinxi.txt','wb')
                pickle.dump(xinxi,f)
            except :
                print ('文件保存失敗')
            else :
                print ('保存成功')
        elif t == 2 :
            try :
                f = open('jiaoshixinxi.txt','rb')
                xinxi = pickle.load(f)
            except :
                print ('文件讀取失敗')
            else :
                print ('讀取成功')
        else :
            break
def anquancaidan():
    os.system("cls")                                               #信息安全菜單
    print('''\n\n\b                                          ★信息安全及權限管理★                                   
	                    ★          -------------------------------------------                 ☆ 
            	    ☆                                                                      ★
      	            ★                      1.功能權限設置                                  ☆
            	    ☆                                                                      ★
      	            ★                      2.修改密碼(初始密碼爲88888888)                   ☆
      	            ☆                                                                      ★
      	            ★                       3.說明                                         ☆
                    ☆                                                                      ★
       	            ☆                      4.返回主菜單                                      ★
	                    ★          -------------------------------------------                 ☆  
    ''')
def anquan_1_caidan():                         #功能權限菜單
    print('''"\n\n
	     |  1.錄入教師信息               5.統計信息              |
	     |  2.瀏覽所有教師信息           6. 按條件排序           |
	     |  3.按條件查詢信息             7.信息安全及權限管理    |
	     |  4.修改教師信息               8.文件保存與讀取        |
                             ☆ 輸入9返回上一級  ☆                                     
    ''')
def anquan():                                    #信息安全
    anquancaidan()
    global anquanxuanxian
    while True :
        print('*******************************************************************************')
        t = int (input('                                               請選擇功能:'))
        if t == 1 :
            anquan_1_caidan()
            tt = int (input('                             請選擇需要修改權限的功能編號:'))
            anquanxuanxian[tt] = int(input('                       請選擇權限,輸入0爲普通權限,輸入1爲管理員權限:'))
        elif t == 2 :
            global mima
            while True :
                yinshi = int (input('請輸入新密碼'))
                yinshi2= int (input('再次輸入密碼'))
                if yinshi == yinshi2 :
                    mima = yinshi
                    print('修改成功')
                    break
                else :
                    print ('密碼不一致,重新輸入')
        elif t == 3 :
            print('普通用戶不需要密碼可以使用功能,管理員用戶需要密碼才能使用該功能,\
                可以自行選擇需要管理員權限的功能')
        else :
            break
def mimagongnen(x) :                        #實現密碼操作
    if anquanxuanxian[x] == 0 :
        if x == 1 :
            luru()
        elif x == 2 :
            cakan()
        elif x == 3 :
            chaxungongnen()
        elif x == 4 :
            xiugai()
        elif x == 5 :
            tongji()
        elif x == 6 :
            paixu()
        elif x == 7 :
            anquan()
        elif x ==8 :
            wenjian()
        else :
            pass
    else :
        t = int (input('請輸入密碼:'))
        if t == mima :
            if x == 1 :
                luru()
            elif x == 2 :
                cakan()
            elif x == 3 :
                chaxungongnen()
            elif x == 4 :
                xiugai()
            elif x == 5 :
                tongji()
            elif x == 6 :
                paixu()
            elif x == 7 :
                anquan()
            elif x ==8 :
                wenjian()
            else :
                pass
        else :
                    print ('密碼錯誤')

def main():                                                                                        #主函數
    hello()
    zhucaidan()
    while True :
        xuanze = int (input('                                           請選擇功能:'))
        if xuanze == 9 :
            break
        else :
            mimagongnen(xuanze)
        zhucaidan()
    bye()
main()                                                                              #開始



發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章