详细要求:

1、创建北京、上海 2 所学校

2、创建linux , python , go 3个课程 , linux\py 在北京开, go 在上海开

3、课程包含,周期,价格,通过学校创建课程

4、通过学校创建班级, 班级关联课程、讲师

5、创建学员时,选择学校,关联班级

6、创建讲师角色时要关联学校

7、提供两个角色接口:

8、为学员、讲师、管理员分别提供用户界面,并提供对应功能:

1) 学员视图,可以注册,交学费,选择班级,

2) 讲师视图,讲师可管理自己的班级,上课时选择班级,查看班级学员列表,修改所管理的学员的成绩

3) 管理视图,创建讲师,创建班级,创建课程

注1:上面的操作产生的数据都通过pickle序列化保存到文件里 注2:此作业必须画流程图,

图中标注好不同类或对象之间的调用关系

一、选课系统用例

## 用例名称

选课系统

## 场景

who :学生,老师,管理员

where:oldboy

when: anytime

## 用例描述

1、管理员创建学校:北京和上海两个校区

2、管理员创建课程: python、linux、go (python,linux在北京校区,go在上海校区)

3、管理员创建班级:python周末18期,python脱产7期,linux架构35期

4、管理员创建学员:erleng,bode,wenjie

5、管理员创建讲师:alex(python),egon(),wupeiqi

6、讲师创建上课记录:python周末班18期day7

7、讲师为day7这节课所有学生批改作业,为每个学生打分

8、学员wenjie查看自己的课程信息:所在学校、报名课程、所在班级

9、学员wenjie在python18期day7提交了作业

10、学员wenjie查看自己在day7的成绩列表

二、找名词

管理员、学校、课程、班级、学员、讲师、上课记录、作业、分数、学员详细信息、成绩列表

三、加属性

名词 属性 方法

管理员 None 创建(学校、课程、班级、讲师、学员)

学校 学校名、地址、课程列表、班级列表 None

课程 课程名、周期、价钱、大纲 None

班级 班级名、所属学校、课程 None

学员 学员名、课程 选课、查看课程信息、提交作业、查看成绩列表

讲师 讲师名、课程 创建上课记录、打分

上课记录 课程名、时间

作业 课程名

学员信息 姓名、班级、课程

成绩列表 姓名、课程、成绩

1、创建课程、班级需选定学校,并将课程、班级信息加入学校

四、数据存储方式(pickle序列化后存储)

管理员信息: {"username":"admin","password":"123"}

学校信息:{"luffycity_beiing":{"address":"北京沙河","courses":[],"classes":[]},

"luffycity_shanghai":{"address":"上海虹桥","courses":[],"classes"}:[]}

课程信息:{"python":{"school":"luffycity_beiing","course_time":"6mons","course_price":"8000","course_info":"python全栈开发"},

"linux":{"school":"luffycity_beiing","course_time":"8mons","course_price":"8000","course_info":"Linux高级架构"},

"go":{"school":"luffycity_shanghai","course_time":"7mons","course_price":"10000","course_info":"go高级开发"}}

班级信息:{"python":{"school_name":"Luffycity_beijing","class_name":"python_online班","teachers":[],"students":[]},

学生信息:{"wenjie":{"age":18,"sex":"male","password":"123","school_name":"Luffycity_beijing","classes":[],"course":[]}}

讲师信息:{"alex":{"age":25,"sex":"male","password":"123","course":"python","class_name":"python全栈"}}

课程记录:{"python_mod1":{"time":xxx,"task":"用户登录接口程序","submission_list":[]}}

学习记录:{"wenjie":{"course"}:"python","already_learned"[]}

成绩记录:{"wenjie":{"task":"0"}}

五、目录结构

.

├── Course_selection_system # 选课系统

││

│  ├── bin # 可执行程序入口目录

│  │   ├── __init__.py

│  │   └── start.py # 启动入口

│ ├── conf # 配置文件目录

│  │   ├── __init__.py

││└── settints.py # 配置文件目录

│├── core# 主程序目录(三个主要视图)

││├── __init__.py

││├──main.py# 主程序

││├── manager.py# manager 类

││├── student.py# student 类

││└──teacher.py# teacher 类

│├── database# 数据结构目录

││├── Crouse_record# 上课记录目录

│││├── go.pkl# go上课记录数据

│││├── linux.pkl# linux上课记录数据

│││└── python.pkl# python上课记录数据

││├── Learn_record# 学习记录目录

│││├──go_learned.pkl# go学习记录数据

│││├──linux_learned.pkl# linux学习记录数据

│││└── python_learned.pkl# python学习记录数据

││├── Score_record# 成绩目录

│││├──go_score.pkl# go 成绩数据

│││├──linux_score.pkl# linux 成绩数据

│││└── python_score.pkl# python 成绩数据

││├── classes.pkl# 班级数据

││├── courses.pkl# 课程数据

││├──manager.pkl# 管理员用户数据

││├── schools.pkl# 学校数据

││├── students.pkl# 学员用户数据

││└── teachers.pkl# 讲师用户数据

│└── modules # 共用模块目录

│├── __init__.py

│└── public_mod.py# 密码加密、用户登录验证、pickle序列化

└── README

六、主要模块介绍

1、Manager 类

包含 创建学校(打印学校)、创建课程(打印课程)、创建班级(打印班级)、创建学员(打印学员)、创建讲师(打印讲师)

其中创建学员方法在学员验证登录中注册功能时会再次调用;

2、Student 类

# 对象私有参数 (name)

#方法:打印当前学员信息、选课(购买课程)、学习管理(按照模块学习、提交作业)、提交作业、查看成绩

3、Teacher 类

# 对象私有参数 (name)

#方法:班级管理、创建上课记录(打印课程记录)、批改作业

4、DataPickle 类

# 对象私有参数(path)

# 方法:dump、load

七、测试账户

1、管理员: admin : 123

2、学 员: wenjie : 123 erleng :123 bode : 123

3、讲 师: alex : 123 egon : 123 peiqi ;123

八、代码:

云盘:后续更新

python online course_python-选课系统相关推荐

  1. python最简单选课系统作业_python之路——作业:学生选课系统

    一.作业要求: 选课系统: 角色:学校.学员.课程.讲师 要求: 1. 创建北京.上海 2 所学校 2. 创建linux , python , go 3个课程 , linux\py 在北京开, go ...

  2. [ python ] 作业:选课系统

    功能代码实现源地址:https://www.cnblogs.com/lianzhilei/p/5832691.html    如有侵权,立即删除 本文主要是分析 选课系统 实现思路及上面代码的实现过程 ...

  3. python编写学生选课系统程序_python面向对象编程小程序- 选课系统

    选课系统 花了一晚上写的,可能还存在不足 1.程序框架 2.文件夹建立D:/选课系统 |___api | |___common_api.py |___bil | |___common.py |___c ...

  4. python实现复旦大学选课系统自动抢课神器抢课软件Courcegoblin抢课软件ver 1.0

    朋友最近遇上选课困难,手速慢,总是抢不到心仪的课程,我目前正好找不到爬虫项目练手,于是写了个面向复旦选课系统的抢课小软件帮助朋友抢课 首先需要这些模块: import requests import ...

  5. 计算机毕业设计django基于python的学生选课系统-高校教务管理系统(源码+系统+mysql数据库+Lw文档)

    项目介绍 本论文主要论述了如何使用Python技术开发一个高校教务管理系统,本系统将严格按照软件开发流程进行各个阶段的工作,采用B/S架构,面向对象编程思想进行项目开发.在引言中,作者将论述高校教务管 ...

  6. python编写学生选课系统程序卸载器_Python 简易版选课系统

    一.创建学生类 ## 创建学生类 importrandomclassStudent:def __init__(self,num,name,address,course_lst=None): self. ...

  7. python选课管理系统_Python开发程序:选课系统

    程序名称: 选课系统 角色:学校.学员.课程.讲师 要求: 1. 创建北京.上海 2 所学校 2. 创建linux , python , go 3个课程 , linux\py 在北京开, go 在上海 ...

  8. python毕业设计作品基于django框架校园排课选课系统毕设成品(3)后台管理功能

    整个项目包含了:开题报告 + 开题报告PPT + 任务书 + 中期报告 + 论文模板 + 答辩PPT等 + 项目源码 主要安介绍了系统在开发过程中所应用到的一些关键的技术 主要python技术介绍:框 ...

  9. Python开发【项目】:选课系统

    程序名称: 选课系统 角色:学校.学员.课程.讲师 要求: 1. 创建北京.上海 2 所学校 2. 创建linux , python , go 3个课程 , linux\py 在北京开, go 在上海 ...

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

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

最新文章

  1. java 做登录跳转404_springboot 访问路径错误跳转到404(实现方法一)
  2. poj 3090 amp;amp; poj 2478(法雷级数,欧拉函数)
  3. .NET Core开发日志——WCF Client
  4. [js] js操作节点的方法有哪些?
  5. 第九十二期:多少程序员注意到了「中台」的背面?
  6. cuSPARSE库:(四)不同矩阵格式在内存中的存储方式
  7. 哪里有高中教师教学计算机能力培训,04060406_王世红_高中教师信息技术能力的培训.doc...
  8. IPv4和IPv6有什么不同
  9. 在Kibana上查看tomcat日志
  10. mysql shrink_MySQL Group Replication内存使用分析和优化-1
  11. 网易评论真搞笑~~~呵呵
  12. 「docker实战篇」python的docker爬虫技术-python脚本app抓取(13)
  13. 虚拟机的服务器显示全屏,虚拟机怎么实现全屏显示
  14. ctfshow 做题 MISC入门 模块 11-20
  15. 还在用git commit -m 吗?Git 提交规范和自动产生changelog手摸手教程。
  16. 封闭解(Closed-form solution)、解析解(Analytical solution)、数值解(Numerical solution) 释义
  17. 电商平台后台管理系统--->系统详细设计(订单管理模块)
  18. C#制作自己的打包工具
  19. Theos(六):官方文档
  20. 游戏社区App (三):客户端与服务端的加密处理 和 登录

热门文章

  1. IETF:QUIC Version 1 (RFC 9000) 作为标准化版本现已发布
  2. LiveVideoStackCon 2021上海站 售票通道关闭倒计时24h
  3. 使用WebRTC开发Android Messenger:第3部分
  4. 疫情伤了谁?反正不是这8大直播行业
  5. CDN调试—Debug Headers
  6. 混沌工程将成标配?落地腾讯游戏后带来了哪些惊喜?丨Gdevops峰会
  7. CentOS详解top命令各个数据的含义
  8. TensorFlow, PyTorch, Caffe2的比较
  9. WebStorm使用ES6
  10. Sublime Text 的下载巨慢的问题,安装问题,html页面代码生成问题,代码提示问题 全都解决了【最完美的解决方案】