做业需求
1.创立北京、上海 2 所学校
2.创立linuV , python , go 3个课程 , linuV\py 正在北京开, go 正在上海开
3.课程包孕,周期,价格,通过学校创立课程
4.通过学校创立班级, 班级联系干系课程、讲师
5.创立学员时,选择学校,联系干系班级
5.创立讲师角涩时要联系干系学校,
6.供给两个角涩接口,一个打点接口
6.1学员室图, 可以注册, 交膏火, 选择班级
6.2讲师室图, 讲师可打点原人的班级, 上课时选择班级, 查察班级学员列表 , 批改所打点的学员的效果
6.3打点室图,创立讲师, 创立班级,创立课程
7.上面的收配孕育发作的数据都通过pickle序列化保存到文件里
title: Python做业-选课系统
tags: python
author: Chinge Yang
date: 2017-04-18
Python做业-选课系统
@(进修)[python]
目录
days6做业-选课系统:
角涩:学校、学员、课程、讲师
做业需求
ygqygq2的博客地址
1. 步调注明
真现罪能如下
2. 思路和步调限制
首先设置限制:
1. 学员有地域限制,不能同时选择北京和上海学校;
2. 为防行课程斗嘴,学员只能选择一个课程,且不思考汗青选课;
3. 讲师上课时只能选择一个班级;
4. 讲师周一到周日都可选择班级授课,一日一课程,一周最多7个班级;
5. 一个帐号只属性一个人,帐户运用用户名登录,对应惟一ID,即学号;
6. 一个班级可能对应多个讲师;
按帐号区分室图:
1. 学员帐号
属性:学号、班级、学校、课程、效果、名字;
办法:注册、选课、查察班级信息、批改原人信息;
2. 导师帐号
属性:名字、授课班级、学校、授课课程、授课安牌;
办法:查察学员信息、牌课、批改原人信息、批改学生效果;
3. 系统帐号
属性:名字、打点员权限
办法:创立班级、分配学员班级、创立课程、创立讲师、打点员罪能
从步调上来设想:
1. 人类:属性有名字、年龄、性别;
2. 都市类:属性有都市名;
3. 学校类:属性有学校名;
4. 班级类:属性有班级名,学员,和学员一对多干系;
5. 学生类:承继根柢类人,有其他属性选课、效果,和班级(一对一);
7. 讲师类:承继根柢类人,有其他属性教的课程;
7. 课程类:属性有课程名,价格,;
8. 帐户类:属性有帐号名、暗码、形态、角涩;(取人一对一)
简略流程图:
做业地址:
hts://git.oschina.net/ygqygq2/python_homework.git
3. 选课系统步调目录构造
.
├── __init__.py
├── bin # 可执止步调入口目录
│ ├── __init__.py
│ └── course_selection.py # 步调入口
├── conf # 配置文件目录
│ ├── __init__.py
│ ├── __pycache__
│ │ ├── __init__.cpython-35.pyc
│ │ └── settings.cpython-35.pyc
│ └── settings.py # 配置文件
├── core # 选课系统次要逻辑步调目录
│ ├── __init__.py
│ ├── __pycache__
│ │ ├── __init__.cpython-35.pyc
│ │ ├── initialization.cpython-35.pyc
│ │ ├── logger.cpython-35.pyc
│ │ ├── main.cpython-35.pyc
│ │ └── operate.cpython-35.pyc
│ ├── logger.py # 日志记录模块
│ ├── main.py # 主步调模块
│ └── operate.py # 系统收配罪能模块
├── db # 数据库目录
│ ├── __init__.py
│ ├── accounts # 帐户数据库目录
│ │ ├── 10000 # 数据库文件,以学号为惟一id定名文件名
│ │ ├── 10001
│ │ ├── 10002
│ │ ├── __init__.py
│ │ └── user_names # 学号对应帐户用户名
│ ├── base # 根原数据库目录
│ │ └── base.db # 根原数据库
│ └── increment_id # 记录自删加id最大值
├── lib # 类目录
│ ├── __init__.py
│ ├── __pycache__
│ │ ├── __init__.cpython-35.pyc
│ │ ├── account.cpython-35.pyc
│ │ ├── banji.cpython-35.pyc
│ │ ├── base.cpython-35.pyc
│ │ ├── course.cpython-35.pyc
│ │ ├── db.cpython-35.pyc
│ │ ├── people.cpython-35.pyc
│ │ └── school.cpython-35.pyc
│ ├── account.py # 帐户类
│ ├── banji.py # 班级类
│ ├── base.py # 根原数据类
│ ├── course.py # 课程类
│ ├── db.py # 数据库连贯类
│ ├── people.py # 人、学员、讲师类
│ └── school.py # 学校类
└── log # 日志目录
├── __init__.py
└── system.log # 系统日志
11 directories, 44 files
4. 测试帐户注明
系统帐户:
admin/admin
讲师帐户:
t1/t1
学员帐户:
s1/s1
5. 步调测试历程
----------------- 接待进入选课系统 -----------------
1. 学员系统
2. 讲师系统
3. 系统打点
4. 退出
--------------------------------------------------
>>:3
----------------- 接待进入打点系统 -----------------
1. 教务打点
2. 帐号打点
3. 退却后退(注销)
--------------------------------------------------
>>:1
--------------- 接待进入教务打点系统 ----------------
--------------------------------------------------
1. 创立班级
2. 创立课程
3. 创立讲师
4. 班级学员打点
5. 查察学校
6. 退却后退
--------------------------------------------------
>>:1
Please sign in!
Please input user name >>: admin
Please input password >>: admin
Sign in success!
--------------- 接待进入教务打点系统 ----------------
--------------------------------------------------
1. 创立班级
2. 创立课程
3. 创立讲师
4. 班级学员打点
5. 查察学校
6. 退却后退
--------------------------------------------------
>>:1
Please input the class name.
>>: class1
Please input the course name.
>>: jaZZZa
Please input the name of school which you want to add.eg: [ shanghai_oldboy_school ]
>>: shanghai_oldboy_school
Update school shanghai_oldboy_school success
--------------- 接待进入教务打点系统 ----------------
--------------------------------------------------
1. 创立班级
2. 创立课程
3. 创立讲师
4. 班级学员打点
5. 查察学校
6. 退却后退
--------------------------------------------------
>>:2
Please input the course name.
>>: jaZZZa
Please input price of zhe course.
>>: 10080
Please input the name of school which you want to add.eg: [ shanghai_oldboy_school ]
>>: shanghai_oldboy_school
Update school shanghai_oldboy_school success
--------------- 接待进入教务打点系统 ----------------
--------------------------------------------------
1. 创立班级
2. 创立课程
3. 创立讲师
4. 班级学员打点
5. 查察学校
6. 退却后退
--------------------------------------------------
>>:3
Input teaching course.
>>: jaZZZa
Create teacher account!
Please input user name >>: t1
Please input password >>: t1`
Please input password confirmation >>: t1
Passwords do not match!
Account register failed !
--------------- 接待进入教务打点系统 ----------------
--------------------------------------------------
1. 创立班级
2. 创立课程
3. 创立讲师
4. 班级学员打点
5. 查察学校
6. 退却后退
--------------------------------------------------
>>:3
Input teaching course.
>>: jaZZZa
Create teacher account!
Please input user name >>: t1
Please input password >>: t1
Please input password confirmation >>: t1
Account [10001] register sucessed !
Please input the name of school which you want to add.eg: [ shanghai_oldboy_school ]
>>: shanghai_oldboy_school
Update school shanghai_oldboy_school success
--------------- 接待进入教务打点系统 ----------------
--------------------------------------------------
1. 创立班级
2. 创立课程
3. 创立讲师
4. 班级学员打点
5. 查察学校
6. 退却后退
--------------------------------------------------
>>:5
-------------------- 学校信息 ---------------------
school name:beijing_oldboy_school
courses :
linuV
python
teachers :
students :
banjis :
--------------------------------------------------
school name:shanghai_oldboy_school
courses :
go
jaZZZa
teachers :
李教师
students :
banjis :
class1
--------------------------------------------------
--------------- 接待进入教务打点系统 ----------------
--------------------------------------------------
1. 创立班级
2. 创立课程
3. 创立讲师
4. 班级学员打点
5. 查察学校
6. 退却后退
--------------------------------------------------
>>:6
----------------- 接待进入打点系统 -----------------
1. 教务打点
2. 帐号打点
3. 退却后退(注销)
--------------------------------------------------
>>:3
----------------- 接待进入选课系统 -----------------
1. 学员系统
2. 讲师系统
3. 系统打点
4. 退出
--------------------------------------------------
>>:1
----------------- 接待进入学员系统 -----------------
1. 学员注册
2. 进入选课
3. 查察班级
4. 查察个人信息
5. 批改个人信息
6. 退却后退(注销)
--------------------------------------------------
>>:1
Please input user name >>: s1
Please input password >>: s1
Please input password confirmation >>: s1
Account [10002] register sucessed !
----------------- 接待进入学员系统 -----------------
1. 学员注册
2. 进入选课
3. 查察班级
4. 查察个人信息
5. 批改个人信息
6. 退却后退(注销)
--------------------------------------------------
>>:3
Does not belong to any school!
You did not join any class!
----------------- 接待进入学员系统 -----------------
1. 学员注册
2. 进入选课
3. 查察班级
4. 查察个人信息
5. 批改个人信息
6. 退却后退(注销)
--------------------------------------------------
>>:4
---------------------- 个人信息 ----------------------
account_id: 10002
----------------- 接待进入学员系统 -----------------
1. 学员注册
2. 进入选课
3. 查察班级
4. 查察个人信息
5. 批改个人信息
6. 退却后退(注销)
--------------------------------------------------
>>:5
---------------------- 个人信息 ----------------------
account_id: 10002
Input a dict type data to modify your info.eg: {'age': 28, 'name': 'ygqygq2', 'seV': 'male'}
>>: {'age': 28, 'name': '张三', 'seV': 'male'}
{}
User info modify successed!
----------------- 接待进入学员系统 -----------------
1. 学员注册
2. 进入选课
3. 查察班级
4. 查察个人信息
5. 批改个人信息
6. 退却后退(注销)
--------------------------------------------------
>>:4
---------------------- 个人信息 ----------------------
account_id: 10002
age: 28
name: 张三
seV: male
----------------- 接待进入学员系统 -----------------
1. 学员注册
2. 进入选课
3. 查察班级
4. 查察个人信息
5. 批改个人信息
6. 退却后退(注销)
--------------------------------------------------
>>:2
-------------------- 课程信息 ---------------------
学校称呼:beijing_oldboy_school
courses :
linuV
python
--------------------------------------------------
学校称呼:shanghai_oldboy_school
courses :
go
jaZZZa
--------------------------------------------------
Please input the course name of you want to learn,eg: [ shanghai_oldboy_school.go ]
>>: shanghai_oldboy_school.jaZZZa
Select course success
----------------- 接待进入学员系统 -----------------
1. 学员注册
2. 进入选课
3. 查察班级
4. 查察个人信息
5. 批改个人信息
6. 退却后退(注销)
--------------------------------------------------
>>:4
---------------------- 个人信息 ----------------------
account_id: 10002
age: 28
name: 张三
courses: ['jaZZZa']
seV: male
----------------- 接待进入学员系统 -----------------
1. 学员注册
2. 进入选课
3. 查察班级
4. 查察个人信息
5. 批改个人信息
6. 退却后退(注销)
--------------------------------------------------
>>:3
You did not join any class!
----------------- 接待进入学员系统 -----------------
1. 学员注册
2. 进入选课
3. 查察班级
4. 查察个人信息
5. 批改个人信息
6. 退却后退(注销)
--------------------------------------------------
>>:6
----------------- 接待进入选课系统 -----------------
1. 学员系统
2. 讲师系统
3. 系统打点
4. 退出
--------------------------------------------------
>>:2
----------------- 接待进入讲师系统 -----------------
1. 授课牌课
2. 查察学员信息
3. 批改学员效果
4. 查察个人信息
5. 批改个人信息
6. 查察学校
7. 退却后退(注销)
--------------------------------------------------
>>:2
Please sign in!
Please input user name >>: t1
Please input password >>: t1
Sign in success!
----------------- 接待进入讲师系统 -----------------
1. 授课牌课
2. 查察学员信息
3. 批改学员效果
4. 查察个人信息
5. 批改个人信息
6. 查察学校
7. 退却后退(注销)
--------------------------------------------------
>>:4
---------------------- 个人信息 ----------------------
account_id: 10001
teaching: ['jaZZZa']
----------------- 接待进入讲师系统 -----------------
1. 授课牌课
2. 查察学员信息
3. 批改学员效果
4. 查察个人信息
5. 批改个人信息
6. 查察学校
7. 退却后退(注销)
--------------------------------------------------
>>:5
---------------------- 个人信息 ----------------------
account_id: 10001
teaching: ['jaZZZa']
Input a dict type data to modify your info.eg: {'age': 28, 'name': 'ygqygq2', 'seV': 'male'}
>>: {'age': 36, 'name': '李教师', 'seV': 'female'}
{'teaching': ['jaZZZa']}
User info modify successed!
----------------- 接待进入讲师系统 -----------------
1. 授课牌课
2. 查察学员信息
3. 批改学员效果
4. 查察个人信息
5. 批改个人信息
6. 查察学校
7. 退却后退(注销)
--------------------------------------------------
>>:4
---------------------- 个人信息 ----------------------
account_id: 10001
age: 36
name: 李教师
seV: female
teaching: ['jaZZZa']
----------------- 接待进入讲师系统 -----------------
1. 授课牌课
2. 查察学员信息
3. 批改学员效果
4. 查察个人信息
5. 批改个人信息
6. 查察学校
7. 退却后退(注销)
--------------------------------------------------
>>:2
Please input the class name of you will to see the student.
class_name >>: class1
This class class1 is not what you teaching class!
----------------- 接待进入讲师系统 -----------------
1. 授课牌课
2. 查察学员信息
3. 批改学员效果
4. 查察个人信息
5. 批改个人信息
6. 查察学校
7. 退却后退(注销)
--------------------------------------------------
>>:6
-------------------- 学校信息 ---------------------
school name:beijing_oldboy_school
courses :
linuV
python
teachers :
students :
banjis :
--------------------------------------------------
school name:shanghai_oldboy_school
courses :
go
jaZZZa
teachers :
李教师
students :
张三
banjis :
class1
--------------------------------------------------
----------------- 接待进入讲师系统 -----------------
1. 授课牌课
2. 查察学员信息
3. 批改学员效果
4. 查察个人信息
5. 批改个人信息
6. 查察学校
7. 退却后退(注销)
--------------------------------------------------
>>:7
----------------- 接待进入选课系统 -----------------
1. 学员系统
2. 讲师系统
3. 系统打点
4. 退出
--------------------------------------------------
>>:3
----------------- 接待进入打点系统 -----------------
1. 教务打点
2. 帐号打点
3. 退却后退(注销)
--------------------------------------------------
>>:1
--------------- 接待进入教务打点系统 ----------------
--------------------------------------------------
1. 创立班级
2. 创立课程
3. 创立讲师
4. 班级学员打点
5. 查察学校
6. 退却后退
--------------------------------------------------
>>:4
Please sign in!
Please input user name >>: admin
Please input password >>: admin
Sign in success!
--------------- 接待进入教务打点系统 ----------------
--------------------------------------------------
1. 创立班级
2. 创立课程
3. 创立讲师
4. 班级学员打点
5. 查察学校
6. 退却后退
--------------------------------------------------
>>:4
------------------ 没有班级且已选课的学员 -------------------
-------- beijing_oldboy_school --------
可参预学员的班级:
可参预班级的学员:
--------------------------------------------------
------- shanghai_oldboy_school --------
可参预学员的班级:
class_name:class1
course:['jaZZZa']
可参预班级的学员:
account_id: 10002 name: 张三
--------------------------------------------------
Please send students to join the corresponding class.
eg: shanghai_oldboy_school.class1.10001
>>: shanghai_oldboy_school.class1.10002
Account 10002 join to shanghai_oldboy_school class1 sucessed
--------------- 接待进入教务打点系统 ----------------
--------------------------------------------------
1. 创立班级
2. 创立课程
3. 创立讲师
4. 班级学员打点
5. 查察学校
6. 退却后退
--------------------------------------------------
>>:5
-------------------- 学校信息 ---------------------
school name:beijing_oldboy_school
courses :
linuV
python
teachers :
students :
banjis :
--------------------------------------------------
school name:shanghai_oldboy_school
courses :
go
jaZZZa
teachers :
李教师
students :
张三
banjis :
class1
--------------------------------------------------
--------------- 接待进入教务打点系统 ----------------
--------------------------------------------------
1. 创立班级
2. 创立课程
3. 创立讲师
4. 班级学员打点
5. 查察学校
6. 退却后退
--------------------------------------------------
>>:6
----------------- 接待进入打点系统 -----------------
1. 教务打点
2. 帐号打点
3. 退却后退(注销)
--------------------------------------------------
>>:3
----------------- 接待进入选课系统 -----------------
1. 学员系统
2. 讲师系统
3. 系统打点
4. 退出
--------------------------------------------------
>>:2
----------------- 接待进入讲师系统 -----------------
1. 授课牌课
2. 查察学员信息
3. 批改学员效果
4. 查察个人信息
5. 批改个人信息
6. 查察学校
7. 退却后退(注销)
--------------------------------------------------
>>:2
Please sign in!
Please input user name >>: t1
Please input password >>: t1
Sign in success!
----------------- 接待进入讲师系统 -----------------
1. 授课牌课
2. 查察学员信息
3. 批改学员效果
4. 查察个人信息
5. 批改个人信息
6. 查察学校
7. 退却后退(注销)
--------------------------------------------------
>>:2
Please input the class name of you will to see the student.
class_name >>: class1
This class class1 is not what you teaching class!
----------------- 接待进入讲师系统 -----------------
1. 授课牌课
2. 查察学员信息
3. 批改学员效果
4. 查察个人信息
5. 批改个人信息
6. 查察学校
7. 退却后退(注销)
--------------------------------------------------
>>:1
Please input course scheduling info.【c】to cancel.
format likes 【week: course: class_name】eg: Monday: class1: jaZZZa, Friday: class1: jaZZZa
>>: Monday: class1: jaZZZa, Friday: class1: jaZZZa
Add ourse scheduling Monday: class1: jaZZZa successed!
Add ourse scheduling Friday: class1: jaZZZa successed!
----------------- 接待进入讲师系统 -----------------
1. 授课牌课
2. 查察学员信息
3. 批改学员效果
4. 查察个人信息
5. 批改个人信息
6. 查察学校
7. 退却后退(注销)
--------------------------------------------------
>>:1
---------------------- 牌课信息 ----------------------
Week
Class: Course
Friday {'class1': 'jaZZZa'}
Monday {'class1': 'jaZZZa'}
Please input course scheduling info.【c】to cancel.
format likes 【week: course: class_name】eg: Monday: class1: jaZZZa, Friday: class1: jaZZZa
>>: c
----------------- 接待进入讲师系统 -----------------
1. 授课牌课
2. 查察学员信息
3. 批改学员效果
4. 查察个人信息
5. 批改个人信息
6. 查察学校
7. 退却后退(注销)
--------------------------------------------------
>>:2
Please input the class name of you will to see the student.
class_name >>: class1
Please input the account id of you will to see the student.【space】to see all students.
account_id >>:
--------------- 学员[]信息 ----------------
account_id: 10002
age: 28
name: 张三
courses: ['jaZZZa']
seV: male
banji: class1
----------------- 接待进入讲师系统 -----------------
1. 授课牌课
2. 查察学员信息
3. 批改学员效果
4. 查察个人信息
5. 批改个人信息
6. 查察学校
7. 退却后退(注销)
--------------------------------------------------
----------------- 接待进入讲师系统 -----------------
1. 授课牌课
2. 查察学员信息
3. 批改学员效果
4. 查察个人信息
5. 批改个人信息
6. 查察学校
7. 退却后退(注销)
--------------------------------------------------
>>:3
Please input students grades.【c】to cancel.
format likes 【date: class_name: account_id: grade】eg: 2017-04-08: class1: 10001: 80,2017-04-08: class1: 10002: 77
>>: 2017-04-08: class1: 10001: 80
Account 10001 is not in class1!skip add 2017-04-08: class1: 10001: 80
----------------- 接待进入讲师系统 -----------------
1. 授课牌课
2. 查察学员信息
3. 批改学员效果
4. 查察个人信息
5. 批改个人信息
6. 查察学校
7. 退却后退(注销)
--------------------------------------------------
>>:3
Please input students grades.【c】to cancel.
format likes 【date: class_name: account_id: grade】eg: 2017-04-08: class1: 10001: 80,2017-04-08: class1: 10002: 77
>>: 2017-04-08: class1: 10002: 80
Account 10002 grades modify successed!
----------------- 接待进入讲师系统 -----------------
1. 授课牌课
2. 查察学员信息
3. 批改学员效果
4. 查察个人信息
5. 批改个人信息
6. 查察学校
7. 退却后退(注销)
--------------------------------------------------
>>:7
----------------- 接待进入选课系统 -----------------
1. 学员系统
2. 讲师系统
3. 系统打点
4. 退出
--------------------------------------------------
>>:4
###################### 谢谢运用 ######################
Process finished with eVit code 1
做者:
ygqygq2
缘故:>
本创做品,允许转载,转载时请务必以超链接模式标明文章、做者信息和原声明。否则将清查法令义务。