程序要求:
1.角色:学校,学生,讲师
2.创建北京、上海两所学校(通过学校实例)
3.创建Linux、python、go三个课程,Linux、python在北京开设,go在上海开设
4.课程包括周期、价格,通过学校创建课程
5.通过学校创建班级,班级关联课程、讲师
6.创建学生时,选择学校,关联班级
7.创建讲师角色时要关联学校
8.产生的数据通过pickle序列化保存在文件里
分析
要实现三个角色(学生、老师、学校),那么要有三个视图接口,还要有一个初视图让用户选择要以哪个角色进入
学生视图:
学生进入学生视图,输入要进入的学校,学生姓名,年龄,班级(由于班级与课程绑定,即哪个班级就是学习什么科目已经事先订好了,所以不用输要学习的科目了),之后学生注册成功
教师视图:
教师进入教师视图,先输入教师姓名,之后可以查询自己所带的班级及学生等信息
学校视图:
学校管理人员进入学校视图,先选择管理哪个学校,之后可以创建班级,创建讲师,创建课程
过程
一、目录创建
二、main.py中一共有四个类,分别是初视图与三个视图接口
他们类下的每个方法分别实现我们刚才分析的功能,具体初始化和细节在模块中实现。
源码
start.py
import platform
import os
import sys
if platform.system() == "Windows":
BASE_DIR="\\".join(os.path.abspath(os.path.dirname(__file__)).split("\\")[:-1])
else:
BASE_DIR = "/".join(os.path.abspath(os.path.dirname(__file__)).split("/")[:-1])
sys.path.insert(0,BASE_DIR)#添加环境变量
from core import main
if __name__ == "__main__":
obj= main.Manage_center()
obj.run()
setings.py
import platform
import os
import sys
if platform.system() == "Windows":
BASE_DIR = "\\".join(os.path.abspath(os.path.dirname(__file__)).split("\\")[:-1])
database_path=os.path.join(BASE_DIR,"database") #数据库路径
else:
BASE_DIR = "/".join(os.path.abspath(os.path.dirname(__file__)).split("/")[:-1])
database_path = os.path.join(BASE_DIR, "database")
sys.path.insert(0, BASE_DIR)
school_db_file=os.path.join(database_path,"school")
main.py
"""
主程序
"""
import sys
import os
import shelve
from conf import settings
from modules.school import School
"""初界面"""
class Manage_center(object):
def __init__(self):
pass
def run(self):
while True:
print(
"""
-------------欢迎进入选课系统---------------
1.学生视图
2.教师视图
3.学校视图
e.退出选课系统
"""
)
user_choice=input("\033[34;0m