博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Python练习【4】【学生管理系统】
阅读量:6038 次
发布时间:2019-06-20

本文共 5411 字,大约阅读时间需要 18 分钟。

Python练习【4】【学生管理系统】


代码:

## 定义界面列表stu_interface=['学生管理系统','1.管理员登录','2.学生登录']admin_login=['管理员操作界面','1.管理员密码修改','2.添加学生的信息','3.删除学生的信息','4.修改学生的信息','5.查询学生的信息','6.列出学生的信息','7.退出系统']stu_login=['学生操作界面','1.查询个人信息','2.修改信息']stu_chInfo=['修改个人信息','1.修改年龄','2.修改密码'] flag=0  ## 标志位,用于确定当前界面位置 info_admin={'admin':'admin'}  ## 管理员信息## 示例学生信息info_st_ex={    '000000':        {            'name':'tom',            'sex':'man',            'age':18,            'class':'Class1 Grade2',            'birthday':'2000-1-1',            'num':'000000',            'password':'tom'        }}info={}  ##定义空列表用于存放信息info.update(info_st_ex)  ##将示例信息加入存放数据中方便测试## 函数:根据数组信息转化为界面def make_interface(li):    for i in range(len(li)):        if i == 0:            print(li[i].center(44,'*'))            print((' '*48).center(50,'*'))        else:            p=len([j for j in li[i].replace('.','0')if not j.isnumeric()])            print(li[i].center(48-p,' ').center(50-p,'*'))    if flag!=0:        print('输入q返回上一层'.center(41,' ').center(43,'*'))    print((' '*48).center(50,'*')+'\n'+'*'*50)## 函数:限制输入指令在正确范围内,不在则返回Truedef outofrange(li,cmd):    if cmd!='q':        if cmd not in [str(i) for i in range(1,len(li))]:            input('请输入正确的指令,按下Enter键返回')            return True## 函数:利用flag标识返回对应的界面列表def flag_turn():    if flag==0:        return stu_interface    elif flag==1:        return admin_login    elif flag==2:        return stu_login    elif flag==3:        return stu_chInfo## 函数:用户登入函数def login(cmd):    global flag    name_in=input('管理员账户:'if cmd=='1' else '学生账户:')    passwd_in=input('密码:')    if cmd=='1' and name_in=='admin'and passwd_in==info_admin['admin']:        flag=1    elif cmd=='2' and name_in in info and passwd_in==info[name_in]['password']:        flag=2        global stu_in        stu_in=name_in    else:        print('登入失败,请检查您的用户名和密码是否正确')        flag=0## 管理员界面操作函数def admin(cmd):    global flag    if cmd== '1':        passwd_in=input('请输入当前管理员密码:')        if passwd_in==info_admin['admin']:            info_admin['admin']=input('请输入新密码:')            print('修改成功')        else:            print('与当前密码不符,请确认后重试')    elif cmd== '2':        print('添加学生信息:'.center(50,'*'))        info['buf']=copy.copy(info_st_ex['000000'])        for i in info['buf']:            if i=='class':                li=input(i+'(例:2,1表示 Class1 Grade2):').split(',')                info['buf'][i]='Class'+li[0]+' Grade'+li[1]            else:                info['buf'][i]=input(i+':')        else:            info[info['buf']['num']]=info['buf']            info.pop('buf')            print('添加成功')    elif cmd== '3':        print('删除学生信息:'.center(50,'*')+'\n已存在的学生信息:')        for i in info:            print('学号:'+i+'\t姓名:'+info[i]['name'])        pop_in=input('输入学号删除指定信息:')        if pop_in in info:            info.pop(pop_in)            print('删除成功')        else:            print('请输入已存在的学生信息(学号):')    elif cmd== '4':        print('删除学生信息:'.center(50,'*')+'\n已存在的学生信息:')        for i in info:            print('学号:'+i+'\t姓名:'+info[i]['name'])        mod_in=input('输入学号确定修改对象:')        if mod_in in info:            for i,v in info[mod_in].items():                print(i+':'+v)            while True:                mod_info=input('输入要修改的信息选项:输入q退出')                if mod_info in info[mod_in]:                    info[mod_in][mod_info]=input('原始信息:'+info[mod_in][mod_info]+'\n输入新信息:')                    print('修改成功')                elif mod_info=='q':                    break                else:                    print('信息选项不存在')        else:            print('不存在该学生信息')    elif cmd== '5':        print('查看学生信息:'.center(50,'*')+'\n已存在的学生信息:')        for i in info:            print('学号:'+i+'\t姓名:'+info[i]['name'])        while True:            find_in=input('输入学号查看完整信息:输入q退出')            if find_in in info:                for i,v in info[find_in].items():                    print(i+':'+str(v))            elif find_in=='q':                break            else:                print('该学号不存在')    elif cmd== '6':        print('所有学生信息:'.center(50,'*'))        for i in info:            for j,k in info[i].items():                print(j+':'+str(k))            print('*'*50)    elif cmd== '7':        print('欢迎下次登入管理员系统'.center(50,'~'))        exit()    if cmd=='q':        flag=0## 学生界面操作函数def stu(cmd):    global flag    if cmd!='q':        cmd=int(cmd)    else:        flag=0    if cmd==1:        print('查询个人信息'.center(50,'*'))        for i,v in info[stu_in].items():            print(i+':'+str(v))    if cmd==2:        flag=3## 学生修改信息函数def modify_stu(cmd):   if cmd=='1':       input('当前年龄:'+str(info[stu_in]['age'])+'\n新年龄:')   elif cmd=='2':       if input('请输入当前密码:')==info[stu_in]['password']:           info[stu_in]['password']=input('请输入新密码:')           print('修改成功')       else:           print('密码错误,请核对后重试')   elif cmd=='q':       global flag       flag=0   else:       print('请输入正确的指令')## 指令输入函数def cmd_input():    cmd=input()    if outofrange(flag_turn(),cmd):        return     if flag==0:        login(cmd)    elif flag==1:        admin(cmd)    elif flag==2:        stu(cmd)    elif flag==3:        modify_stu(cmd)## 主函数while True:    try:        make_interface(flag_turn())        cmd_input()    except Exception as error:        print('程序异常')    finally:        if input('Enter键继续 输入q退出程序')=='q':            print('欢迎下次使用'.center(50,'~'))            exit()

部分测试结果:

Python练习【4】【学生管理系统】

![](
Python练习【4】【学生管理系统】
Python练习【4】【学生管理系统】
Python练习【4】【学生管理系统】
Python练习【4】【学生管理系统】

转载于:https://blog.51cto.com/13992211/2326200

你可能感兴趣的文章
HTML 表格
查看>>
VMware 虚拟化编程(7) — VixDiskLib 虚拟磁盘库详解之三
查看>>
php 未实例化类调用方法的问题
查看>>
我对读计算机软件专业硕士的几点看法
查看>>
用JS写CSS
查看>>
TOJ4537: n阶行列式
查看>>
算法刷题笔记-stack-四则运算
查看>>
3.16
查看>>
Linux下arp用法
查看>>
表单文件上传与文件下载
查看>>
jquery 中prop()的使用方法
查看>>
下午考
查看>>
创建字符设备的三种方法
查看>>
走在网页游戏开发的路上(六)
查看>>
nginx 配置的server_name参数(转)
查看>>
Uva592 Island of Logic
查看>>
C++基础代码--20余种数据结构和算法的实现
查看>>
footer固定在页面底部的实现方法总结
查看>>
nginx上传文件大小
查看>>
数字通信原理笔记(一)---概述
查看>>