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()                                                                              #开始



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