选课系统思路罗列
选课系统
1. 需求分析
角色:学校、学员、课程、讲师
要求:
1. 创建北京、上海 2 所学校
2. 创建linux , python , go 3个课程 , linux/py 在北京开, go 在上海开
3. 课程包含,周期,价格,通过学校创建课程
4. 通过学校创建班级, 班级关联课程、讲师5. 创建学员时,选择学校,关联班级
5. 创建讲师角色时要关联学校,
6. 提供三个角色接口
6.1 学员视图, 可以注册, 交学费, 选择班级,
6.2 讲师视图, 讲师可管理自己的班级, 上课时选择班级, 查看班级学员列表 , 修改所管理的学员的成绩
6.3 管理视图,创建讲师, 创建班级,创建课程
7. 上面的操作产生的数据都通过pickle序列化保存到文件里
2. 功能提炼
管理员功能 | 讲师功能 | 学生功能 |
---|---|---|
注册功能 | 登录功能 | 注册功能 |
登录功能 | 选择课程 | 登录功能 |
创建学校 | 查看课程 | 选择学校 |
创建课程 | 查看分数 | 选择课程 |
创建老师 | 修改分数 | 查看分数 |
3.架构设计
4.目录搭建
5.功能搭建
第一步:从start.py开始写
》》》start.py里面的代码是用来启动整个程序,就几行代码
# 1.第一步到模块
"""
os模块负责程序与操作系统的交互,提供了访问操作系统底层的接口;
sys模块负责程序与python解释器的交互,提供了一系列的函数和变量,
用于操控python的运行时环境>>>解决项目的兼容性问题。
"""
import os
import sys
# 2.路径的准备工作
base_dir = os.path.dirname(__file__)
sys.path.append(base_dir)
# 3.启动脚本专属的小判断
if __name__ == '__main':
from core import src
src.run()
第二步:src.py总视图
from core import admin_view, teacher_view, student_view
# 模块字典
module_dict = {
'1': admin_view,
'2': teacher_view,
'3': student_view
}
def run():
while True:
print("""
==========选课系统总视图=========
1.管理员视图
2.讲师视图
3.学生视图
==============================
""")
choice_num = input('请选择视图编号>>>:').strip()
if choice_num in module_dict:
module_name = module_dict.get(choice_num)
module_name.run()
else:
print('暂无该视图编号!')
第三步:三个分视图(写出一个其他两个很简单cv之后改一改就行)
1.导入三个分视图
2.写模块字典
3.写启动函数
功能搭建总结:
1.写五个功能空函数
2.写对应的功能字典
3.最后再写功能函数
ps:三个分视图其实是一样的所以写完完整一个
其他两个也就cv再改一改就行
这样就整个项目框架搭建完了
之后往里面具体填写逻辑代码即可
》》》admin_view.py
def register():
print('管理员注册功能')
def login():
print('管理员登录功能')
def create_school():
print('管理员创建学校')
def create_course():
print('管理员创建课程')
def create_teacher():
print('管理员创建老师')
func_dict = {
'1': register,
'2': login,
'3': create_school,
'4': create_course,
'5': create_teacher
}
def run():
while True:
print("""
+++++++管理员视图+++++++
1.管理员注册功能
2.管理员登录功能
3.管理员创建学校
4.管理员创建课程
5.管理员创建老师
+++++++++++++++++++++++
""")
choice_num = input('请输入您想要执行的管理员功能编号>>>:').strip()
if choice_num == 'q':
return
if choice_num in func_dict:
func_name = func_dict.get(choice_num)
func_name()
else:
print('暂无此项功能编号!')
》》》teacher_view.py
def login():
print('讲师登录功能')
def check_course():
print('讲师查看分数')
def choice_course():
print('讲师选择课程')
def check_score():
print('讲师查看分数')
def update_score():
print('讲师修改分数')
func_dict = {
'1': login,
'2': check_course,
'3': choice_course,
'4': check_score,
'5': update_score
}
def run():
while True:
print("""
+++++++讲师视图+++++++
1.讲师登录功能
2.讲师查看分数
3.讲师选择课程
4.讲师查看分数
5.讲师修改分数
""")
choice_num = input('请输入您想要执行的讲师功能编号>>>:').strip()
if choice_num == 'q':
return
if choice_num in func_dict:
func_name = func_dict.get(choice_num)
func_name()
else:
print('暂无此项功能编号!')
》》》student_view.py
def register():
print('学生登录功能')
def login():
print('学生查看分数')
def choice_school():
print('学生选择课程')
def choice_course():
print('学生查看分数')
def check_score():
print('学生修改分数')
func_dict = {
'1': register,
'2': login,
'3': choice_school,
'4': choice_course,
'5': check_score
}
def run():
while True:
print("""
+++++++学生视图+++++++
1.学生注册功能
2.学生登录功能
3.学生选择学校
4.学生选择课程
5.学生查看分数
++++++++++++++++++++++
""")
choice_num = input('请输入您想要执行的学生功能编号>>>:').strip()
if choice_num == 'q':
return
if choice_num in func_dict:
func_name = func_dict.get(choice_num)
func_name()
else:
print('暂无此项功能编号!')