一,作业要求

选课系统:

管理员:

创建老师:姓名、性别、年龄、资产

创建课程:课程名称、上课时间、课时费、关联老师

学生:用户名、密码、性别、年龄、选课列表[]、上课记录{课程1:【di,a,】}

  1. 管理员设置课程信息和老师信息
  2. 老师上课获得课时费
  3. 学生上课,学到“上课内容”
  4. 学生可自选课程
  5. 学生可查看已选课程和上课记录
  6. 学生可评价老师,差评老师要扣款
  7. 使用pickle

二,程序文件说明

  • bin目录:程序启动目录

SelectLesson_start.py:程序启动入口文件

  • db目录:存放程序配置文件

config_conf:程序配置文件

  • lib目录:程序公共类文件

common.py:程序公共方法文件

Teachers_model.py:程序教师模型类,用于创建老师对象

Lessons_model.py:程序课程模型类,用于创建课程对象

Students_model.py:程序学生模型类,用于创建学生对象

  • src目录:程序业务逻辑文件

user_business.py:用户业务逻辑文件,执行登陆,注册,选课,上课等业务逻辑

admin_business.py:管理员业务逻辑文件,执行创建老师模型和课程模型等功能

三,程序流程简图

简要说明:

先由管理员创建教师实例对象和课程实例对象;

学生通过注册创建学生实例对象;

学生通过选课和课程实例关联;

学生通过上课执行复杂的修业逻辑判定

四,程序重点部分详解

  • 配置文件图解

  • 教师模型封装字段

  • 课程模型封装字段

  • 学生模型封装字段

五,程序测试样图

  • 欢迎界面

  • 注册界面

  • 选课界面

  • 上课界面

  • 开始修业

  • 管理员界面

  • 创建教师模组

  • 创建课程模组

  • 查看模组配置

从零开始学Python06作业思路:学生选课系统的更多相关文章

  1. 从零开始学Python06作业源码(仅供参考)

    Python Version 2.7x 一,bin目录:程序启动入口 SelectLesson_start.py #!usr/bin/env python # -*- coding:utf-8 -*- ...

  2. 从零开始学Python07作业思路:模拟人生小游戏

    标签(空格分隔): 从零开始学Python 一,作业说明 模拟人生: 1 定义三个人物,屌丝John,美女Liz,高富帅Peter. John和Liz大学时是恋人,毕业工作后,Liz傍上了Peter, ...

  3. 【python之路34】面向对象作业之学生选课系统

    一.需求: 1.可以注册管理员账号,管理员账号可以创建老师和课程 2.学生可以注册和登陆,学生可以从课程列表选课,可以进行上课登记查看 二.代码 1.文件目录 bin 存放可执行文件 config 存 ...

  4. 从零开始学Python08作业思路:开发简单的FTP

    一,作业要求 开发简单的FTP 1,用户登录 2,上传/下载文件 3,不同用户家目录不同 4,查看当前目录下文件 5,充分使用面向对象 二,程序文件清单 Folder目录:用户上传文件家目录 db目录 ...

  5. 从零开始学Python04作业思路:模拟ATM电子银行

    标签(空格分隔):Python 一,程序文件说明 程序分为5个组成部分 bin:放置Python程序的启动接口文件 通过Python命令启动文件夹内文件即正常执行Python程序 例如:ATM_sta ...

  6. 学生选课系统v1.0

    最近两天写了下老师课上留的作业:学生选课系统.感觉自己写的特别麻烦,思路特别不清晰,平常自己总会偷懒,一些太麻烦细节的功能就不去实现了,用简单的功能来替代,直到自己这回写完这个系统(但自己写的比较lo ...

  7. 学生选课系统 c语言

    /********************************* *主题:学生选修课程系统设计 * *设计要求: *1.添加功能:程序能够任意添加课程和学生记录,可提供选择界面供用户选择所需要添加 ...

  8. JAVA | 学生选课系统

    这里使用JAVA语言编写的简易的学生选课系统,展现的都是这个系统核心代码. 其中有不足欢迎批评和指正! 链接数据库的代码 package connection;//连接数据库student impor ...

  9. python开发项目:学生选课系统

    程序要求:1.创建北京.上海两所学校(分析:通过学校类实例化两个学校实例) 2.创建Linux.python.go三个课程,Linux\go在北京开,Linux在上海开(创建Linux.python. ...

随机推荐

  1. 分享一个css3写的气泡对话框,适合于即时通讯和留言本的动态内容

    效果预览: css code .message_content{width:100%;margin-top:10px;clear:both;float:left;} .face{float:left; ...

  2. 浅谈ThinkPHP3.2的子域名部署和路由优化(一)

    前言:建立一个网站系统,往往包含多个子网站,例如PC官网,移动端官网,后台管理,数据源自一个相同的数据库,整个架构上,从ThinkPHP来看,可以大体理解为Model(M)是一样的,Controlle ...

  3. VS2013常用快捷键你敢不会?

    F1 帮助文档 F5 运行 F12 跳转到定义 F11 单步调试 Shift+F5 停止调试 Ctrl+滚轮 放大缩小当前视图 Ctrl+L 删除当前行 Ctrl+K,Ctrl+C 注释选中代码 Ct ...

  4. Qt with OpenCascade

    Qt with OpenCascade 摘要Abstract:详细介绍了如何在Qt中使用OpenCascade. 关键字Key Words:Qt.OpenCascade 一.引言 Introducti ...

  5. Android NDK开发初识

    神秘的Android NDK开发往往众多程序员感到兴奋,但又不知它为何物,由于近期开发应用时,为了是开发的.apk文件不被他人解读(反编译),查阅了很多资料,其中有提到使用NDK开发,怀着好奇的心理, ...

  6. 准备 LVM Volume Provider - 每天5分钟玩转 OpenStack(49)

    Cinder 真正负责 Volume 管理的组件是 volume provider. Cinder 支持多种 volume provider,LVM 是默认的 volume provider.Devs ...

  7. Web前端框架与类库的思考

    说起前端框架,我也是醉了.现在去面试或者和同行聊天,动不动就这个框架碉堡了,那个框架好犀利. 当然不是贬低框架,只是有一种杀鸡焉用牛刀的感觉.网站技术是为业务而存在的,除此毫无意义,框架也是一样.在技 ...

  8. WinForm最小化到托盘以及托盘右键菜单

    首先,先拖一个NotifyIcon到主窗体,然后设置NotifyIcon的图标,不然等下最小化后,都找不到那个程序了,还有那个Text也是,不写名字,就默认是NotifyIcon了..如下图: 然后双 ...

  9. iOS开发之调用系统打电话发短信接口以及程序内发短信

    在本篇博客开头呢,先说一下写本篇的博客的原因吧.目前在做一个小项目,要用到在本应用程序内发验证码给其他用户,怎么在应用内发送短信的具体细节想不大起来了,于是就百度了一下,发现也有关于这方面的博客,点进 ...

  10. EntityFramework 分页问题探讨之 OrderBy

    应用场景 最近被应用程序中页面加载慢的问题所折磨,看似容易的问题,其实并不容易(已经持续两天时间了),经过"侦查",发现了两个"嫌疑犯": EntityFram ...