zoukankan      html  css  js  c++  java
  • 选课系统

    选课系统

    目录

    选课系统

    功能分析及使用

    选课系统总复习:
       -  用户视图层
            与用户交互
            - 管理员
            - 学生
            - 老师
    
       - 接口层
            处理业务逻辑
            - admin_interface
            - student_interface
            - teacher_interface
            - common_interface
    
       - 数据层
            - models
                存放一个个的类
    
            - db_handler
                - pickle
                    通过pickle存取对象
    
    功能分类
    
        注意: 为所有登录、注册意外的功能添加装饰器,用作用户认证
    
        - 管理员功能
            1.注册
                - 让用户输入用户名与密码,传给注册接口
                - 注册接口接收到用户名与密码
                - 调用models的类的select方法获取对象
                - 判断对象是否存在,若存在,则返回用户已存在
                - 若用户不存在,则调用models的类的save方法保存对象
                注意: 密码md5加密
    
            2.登录
                - 让用户输入用户名与密码,传给登录接口
                - 登录接口接收到用户名与密码
                - 调用models的类的select方法获取对象
                - 判断对象是否存在,若不存在,则返回用户不存在
                - 若用户存在,则判断用户输入的密码是否与对象中的密码一样
                - 若一样则返回登录成功,否则返回密码错误。
                - 用户视图层,记录当前用户登录状态
    
            3.创建学校
                - 让用户输入学校名称与学校地址
                - 把学校名称与学校地址发送给接口层
                - 再接口层调用调用models的类的select方法获取学校对象
                - 判断学校是否存在,若存在,返回学校已存在,退出
                - 若学校不存在,则获取管理员对象,让管理员调用创建学校功能
                - 管理员的创建学校方法中,调用School类触发__init__,self.save()保存对象
    
            4.创建课程
                - 调用获取所有学校接口获取所有学校,若没有退出功能
                - 若有,则打印所有学校名称与编号, 让用户选择学校编号
                - 对用户输入的选择数据进行限制
                - 获取学校名称,输入需要创建的课程名称
                - 调用接口,把学校名称、创建的课程传给创建课程接口
                - 先获取学校对象,查看当前输入的课程是否存在学校对象的course_list中
                - 若存在,则返回,课程已存在,重新输入课程名称
                - 若不存在,则让管理员对象创建课程,得先获取管理员对象
                - 通过管理员对象调用创建课程方法,把课程名称与学校传给该方法
                - 调用Course课程类,触发__init__创建课程对象,并保存文件
                - 让课程对象去添加学校,课程对象.school = 学校名绑定学校
                - 获取学校对象,学校对象调用add_course方法,并把该课程添加到学校course_list中
                - 再保存即可
    
            5.创建老师
                - 让用户输入老师名称,调用创建老师接口
                - 先获取老师对象,判断老师是否存在
                - 若存在,则返回
                - 若不存在则创建老师,把管理员对现象获取出来
                - 让管理员对象来调用创建老师方法
                - 调用Teacher老师类,触发__init__,调用save方法保存老师对象。
                注意: 密码md5加密
    
        - 学生功能
            1.学生注册
                与管理员一样
    
            2.学生登录
                与管理员一样
    
            3.选择学校
                - 调用获取学校接口,获取所有学校
    

    一、需求分析

    # 项目需求如下
    '''
    角色:学校、学生、课程、讲师
    要求:
      1. 创建北京、上海 2 所学校
      2. 创建linux , python , go 3个课程 , linuxpy在北京开,go在上海开
      3. 管理员创建学校 ,老师,课程
      4. 学校包含学校名称,地址等属性
      5. 学生注册登录后,可以选择学校,选择课程,查看成绩
      6. 学生只能选择一所学校,从校区中选择一门课程,课程绑定给学生。
      7. 老师登录后,可以查看教授课程,选择想要教授的课程,查看课程下的学生,修改学生成绩等
    
    最终分为以下视图和功能:
    学生视图
            1、注册
            2、登录
            3、选择校区
            4、选择课程
            5、查看成绩
    
    老师视图
            1、登录
            2、查看教授课程
            3、选择教授课程
            4、查看课程下学生
            5、修改学生成绩
    
    管理视图,创建讲师, 创建班级,创建课程
            1、注册
            2、登录
            3、创建学校
            4、创建老师
            5、创建课程
    '''
    

    二、程序的框架设计

    img

    '''
    程序的架构一共分为三层:
    
        - 1.用户视图层
    
        - 2.接口层
    
        - 3.数据层
             - models ---> 用于把数据封装在对象中
             - db_handler ---> 把对象通过pickle的形式进行存储
    '''
    

    三、程序的目录结构

    '''
    conf放置配置信息setting
    core:放置用户层视图
    db:数据操作层py文件和以文件形式保存的数据,通过pickle把数据序列化保存到文件里。
    interface:放置接口相关信息,有管理员接口,老师接口,学校接口,学生接口和公共接口
    lib:放置公共方法
    
    
    用户功能层:src下:
                    src:主视图,
                    admin:管理员视图,
                    student:学生视图
                    teacher:老师视图
    
    接口层:interface下:
                      admin_interface管理员的接口
                      common_interface公共的接口
                      school_interface学校的接口
                      student_interface学生的接口
                      teacher_interface老师的接口
    数据层:db目录下:
                    db_handler,文件操作相关的方法
                    models:各种类及类方法的定义
    
    其它目录:admin,course,school,student,teacher是自动生成的目录,用来存放数据信息
    
    start.py启动文件
    
    总共分三个视图:
        管理员视图:
            def admin_register():
                pass
            def admin_login():
                pass
            def creat_school():
                pass
            def creat_teacher():
                pass
            def creat_course():
                pass
        老师视图:
            def teacher_login():
                pass
            def check_course():
                pass
            def choose_course():
                pass
            def check_student():
                pass
            def modify_score():
                pass
        学生视图:
            def student_register():
                pass
            def student_login():
                pass
            def choose_school():
                pass
            def choose_course():
                pass
            def check_score():
                pass
    '''
    

    img

  • 相关阅读:
    day12 Python操作rabbitmq及pymsql
    day11 队列、线程、进程、协程及Python使用缓存(redis/memcache)
    day10 Python作用域 Python2.7与Python3.x的类继承的区别、异步IO、多进程,多线程简介
    day09 Python socket编程
    day08 面向对象补充及单例模式
    day07 configparser xml subprocess 面向对象
    day06 Python的一些内建变量、反射、hashlib模块、re模块、os模块、sys模块
    day05 Python多层装饰器、模块、序列化、字符串格式化、生成器和迭代器、递归、time、datetime模块、logging模块
    day04 Python一些内置函数及装饰器
    查看旧版jexus命令
  • 原文地址:https://www.cnblogs.com/WQ577098649/p/11950922.html
Copyright © 2011-2022 走看看