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)

## 函数:限制输入指令在正确范围内,不在则返回True
def 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()

部分测试结果:


![](http://i2.51cto.com/images/blog/201812/04/0f4f5924f4b33eaaebd18fad38b2dc92.jpg?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk



原文地址:http://blog.51cto.com/13992211/2326200

时间: 2024-11-06 21:47:17

Python练习【4】【学生管理系统】的相关文章

python开发的学生管理系统

python开发的学生管理系统(基础版) #定义一个函数,显示可以使用的功能列表给用户 def showInfo(): print("-"*30) print(" 学生管理系统 ") print(" 1.添加学生的信息") print(" 2.删除学生的信息") print(" 3.修改学生的信息") print(" 4.查询学生的信息") print(" 5.遍历所有学生的信

用python实现简易学生管理系统

以前用C++和Java写过学生管理系统,也想用Python试试,果然"人生苦短,我用Python".用Python写的更加简洁,实现雏形也就不到100行代码. 下面上代码 1 #!/usr/bin/python3 2 #coding=utf-8 3 #__author__='jeavenwong' 4 5 6 7 8 #实现switch-case语句用 9 class switch(object): 10 def __init__(self, value): 11 self.value

python简单实现学生管理系统

#!/usr/bin/env python # -*- coding: UTF-8 -*- # Author:Du Fei import os #学号,姓名,年龄,性别,身高 allStudentsList=[] #从文件中读取数据 def readFromFile(fileName): if not os.path.exists(fileName):# 如果文件不存在,则新增一个空文件 f = open(fileName,"w") f.close() with open(fileNa

Python学生管理系统示例

import os stus = [] # 学生信息列表(每个学生的信息以字段存储) def add_stu():sid = input('输入学生学号:')sname = input('输入学生姓名:')sage = input('输入学生年龄:')dict_stu = {'id': sid.strip(), 'name': sname.strip(), 'age': int(sage.strip())}stus.append(dict_stu) def remove_stu(name):it

Django_学生管理系统

一. Django简易学生管理系统 1.在pycharm中创建工程student_manage_system,添加app:student_manage 2.配置静态文件:在工程项目目录下新建目录static,并在settings.py中追加代码 STATICFILES_DIRS=(os.path.join(BASE_DIR,'static'),) 3.设计学生管理系统所需数据库 在studnet_manage/models.py创建班级管理表.学生管理表.老师管理表 from django.db

Python 程序:学员管理系统

Python 程序:学员管理系统 1.需求 2.表结构 3.readme 4.目录结构 5.代码 6.测试样图 一.需求 需求: 角色,讲师\学员, 用户登陆后根据角色不同,能做的事情不同,分别如下 讲师视图: 管理班级,可创建班级,根据学员qq号把学员加入班级 可创建指定班级的上课纪录,注意一节上课纪录对应多条学员的上课纪录, 即每节课都有整班学员上, 为了纪录每位学员的学习成绩,需在创建每节上课纪录是,同时为这个班的每位学员创建一条上课纪录 为学员批改成绩, 一条一条的手动修改成绩 学员视图

DJANGO 学生管理系统项目创建流程 -- 单表管理

p.p1 { margin: 0.0px 0.0px 0.0px 0.0px; font: 17.0px ".PingFang SC"; color: #454545 } p.p2 { margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px "Helvetica Neue"; color: #454545; min-height: 14.0px } p.p3 { margin: 0.0px 0.0px 0.0px 0.0px; f

学生管理系统(用中间件)-------基于FORM组件

x学生管理系统(用中间件)-------基于FORM组件 目的:实现学生,老师,课程的增删改查 models.py from django.db import models # Create your models here. class UserInfo(models.Model): """ 用户表:既有班主任也有老师 """ username = models.CharField(max_length=32) password = model

学生管理系统(jsp+mysql)

1.实验目的 通过使用 Java Web 技术设计一个简单的数据库管理系统,了解前台页面和后 台编辑页面的区别,掌握 Web 服务器与 MySQL 数据库的连接和数据库操作的方 法,掌握使用 JSP 编写后台代码的方法. 2.实验内容和要求 开发一个学生管理系统,完成学生信息的查看.增加.删除和修改等功能. 对于客户端增加和修改信息页面,要使用 javascript 进行必要的数据的非空验证. 自行添加一些 css,使得页面和字体更加美观. 3.实验步骤及实验结果 (1)打开 MySQL,新建一