python选课系统作业_python 实现选课系统

该博客详细介绍了使用Python构建一个选课系统的作业,包括创建学校、课程、班级、讲师和学员的角色,以及他们的相互关系。系统还提供了学员、讲师和管理员的不同视图接口,所有操作的数据通过pickle序列化保存在文件中。此外,博客还涵盖了程序的设计思路、限制条件和程序目录结构。
摘要由CSDN通过智能技术生成

角色:学校、学员、课程、讲师  >作业需求

- [ ] 1.创建北京、上海 2 所学校

- [ ] 2.创建linux , python , go 3个课程 , linux\py 在北京开, go 在上海开

- [ ] 3.课程包含,周期,价格,通过学校创建课程

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

- [ ] 5.创建学员时,选择学校,关联班级

- [ ] 5.创建讲师角色时要关联学校,

- [ ] 6.提供两个角色接口,一个管理接口

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

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

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

- [ ] 7.上面的操作产生的数据都通过pickle序列化保存到文件里

博客地址:

## 1. 程序说明

实现功能如下

- [x] 1.创建北京、上海2所学校

- [x] 2.创建linux,python,go3个课程,linux\py在北京开,go在上海开

- [x] 3.课程包含,周期,价格,通过学校创建课程

- [x] 4.通过学校创建班级,班级关联课程、讲师

- [x] 5.创建学员时,选择学校,关联班级

- [x] 5.创建讲师角色时要关联学校

- [x] 6.提供两个角色接口,一个管理接口

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

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

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

- [x] 7.上面的操作产生的数据都通过pickle序列化保存到文件里

## 2. 思路和程序限制

首先设置限制:

1. 学员有地域限制,不能同时选择北京和上海学校;

2. 为避免课程冲突,学员只能选择一个课程,且不考虑历史选课;

3. 讲师上课时只能选择一个班级;

4. 讲师周一到周日都可选择班级授课,一日一课程,一周最多7个班级;

5. 一个帐号只属性一个人,帐户使用用户名登录,对应唯一ID,即学号;

6. 一个班级可能对应多个讲师;

按帐号区分视图:

1. 学员帐号

属性:学号、班级、学校、课程、成绩、名字;

方法:注册、选课、查看班级信息、修改自己信息;

2. 导师帐号

属性:名字、授课班级、学校、授课课程、授课安排;

方法:查看学员信息、排课、修改自己信息、修改学生成绩;

3. 系统帐号

属性:名字、管理员权限

方法:创建班级、分配学员班级、创建课程、创建讲师、管理员功能

从程序上来设计:

1. 人类:属性有名字、年龄、性别;

2. 城市类:属性有城市名;

3. 学校类:属性有学校名;

4. 班级类:属性有班级名,学员,和学员一对多关系;

5. 学生类:继承基本类人,有其它属性选课、成绩,和班级(一对一);

7. 讲师类:继承基本类人,有其它属性教的课程;

7. 课程类:属性有课程名,价格,;

8. 帐户类:属性有帐号名、密码、状态、角色;(与人一对一)

## 3. 选课系统程序目录结构

.

├── Course_selection_system

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

│   │   ├── __init__.py

│   │   └── course_selection.py  # 程序入口

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

│   │   ├── __init__.py

│   │   ├── __pycache__

│   │   │   ├── __init__.cpython-35.pyc

│   │   │   ├── __init__.cpython-36.pyc

│   │   │   ├── settings.cpython-35.pyc

│   │   │   └── settings.cpython-36.pyc

│   │   └── settings.py  # 配置文件

│   ├── core    # 选课系统主要逻辑程序目录

│   │   ├── __init__.py

│   │   ├── __pycache__

│   │   │   ├── __init__.cpython-35.pyc

│   │   │   ├── __init__.cpython-36.pyc

│   │   │   ├── logger.cpython-35.pyc

│   │   │   ├── logger.cpython-36.pyc

│   │   │   ├── main.cpython-35.pyc

│   │   │   ├── main.cpython-36.pyc

│   │   │   ├── operate.cpython-35.pyc

│   │   │   └── operate.cpython-36.pyc

│   │   ├── logger.py  # 日志记录模块

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

│   │   └── operate.py  # 系统操作功能模块

│   ├── db  # 数据库目录

│   │   ├── __init__.py

│   │   ├── accounts

│   │   │   ├── 10000

│   │   │   ├── 10001

│   │   │   ├── 10002

│   │   │   ├── 10003

│   │   │   ├── 10004

│   │   │   ├── 10005

│   │   │   ├── __init__.py

│   │   │   └── user_names

│   │   ├── base

│   │   │   └── base.db

│   │   └── increment_id

│   ├── lib

│   │   ├── __init__.py

│   │   ├── __pycache__

│   │   │   ├── __init__.cpython-35.pyc

│   │   │   ├── __init__.cpython-36.pyc

│   │   │   ├── account.cpython-35.pyc

│   │   │   ├── account.cpython-36.pyc

│   │   │   ├── banji.cpython-35.pyc

│   │   │   ├── banji.cpython-36.pyc

│   │   │   ├── base.cpython-35.pyc

│   │   │   ├── base.cpython-36.pyc

│   │   │   ├── course.cpython-35.pyc

│   │   │   ├── course.cpython-36.pyc

│   │   │   ├── db.cpython-35.pyc

│   │   │   ├── db.cpython-36.pyc

│   │   │   ├── people.cpython-35.pyc

│   │   │   ├── people.cpython-36.pyc

│   │   │   ├── school.cpython-35.pyc

│   │   │   └── school.cpython-36.pyc

│   │   ├── account.py  # 帐户类

│   │   ├── banji.py  # 班级类

│   │   ├── base.py.  # 数据基础类

│   │   ├── course.py  # 课程类

│   │   ├── db.py  # 数据库连接类

│   │   ├── people.py  # 人、学员、讲师类

│   │   └── school.py  # 学校类

│   └── log # 日志目录

│       ├── __init__.py

│       └── system.log # 系统日志

└── README.md

## 4. 测试帐户说明

系统帐户:

admin/admin

讲师帐户:

hgz/123

学员帐户:

hgz1/123

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值