python小项目——选课系统

本文介绍了一个使用Python构建的选课系统,包括学校、学员、课程和讲师的角色设定。系统中,管理员负责创建讲师、班级和课程,讲师管理班级及学员,学员可以注册、缴费并选择班级。所有数据通过pickle序列化存储于文件。项目结构清晰,包含视图、角色分类和关联关系的定义。
摘要由CSDN通过智能技术生成

角色:学校、学员、课程、讲师
要求:

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

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

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

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

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

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

  7. 提供两个角色接口

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

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

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

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

框架

1、视图:三个视图,管理员视图、讲师视图、学员视图

2、角色分类:学校、课程、班级、讲师、学员

3、课程、班级、讲师、学员都要通过管理员进行创建

4、关联关系:教师关联班级,班级关联课程。创建讲师时,要有关联班级的信息,创建班级时,要关联对应课程

5、视图功能:管理视图:添加查看更新课程、班级、讲师、学员信息

讲师视图:查看自己的学员

学员视图:注册缴费

数据库:使用shelve模块,存储在database

项目目录架构
在这里插入图片描述

代码

bin中start.py

如果你对python感兴趣,我这有个学习Python基地,里面有很多学习资料,感兴趣的+Q群:688244617

 1 #!/usr/bin/env python
 2 #-*- coding:utf-8 -*-
 3 #Author:SiWen
 4 
 5 import os
 6 import sys
 7 import platform
 8 
 9 BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
10 sys.path.insert(0,BASE_DIR)
11 #print(sys.path)
12 
13 from core import main
14 from config import settings
15 
16 if __name__ == '__main__':
17     obj = main.Main()
18     obj.run()

config下setting.py

 1 #!/usr/bin/env python
 2 #-*- coding:utf-8 -*-
 3 #Author:SiWen
 4 
 5 import os
 6 import sys
 7 import platform
 8 
 9 BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
10 database_path = os.path.join(BASE_DIR,"database")
11 
12 school_db_file = os.path.join(database_path,"school")

core中main主函数

  1 #!/usr/bin/env python
  2 #-*- coding:utf-8 -*-
  3 #Author:SiWen
  4 import os
  5 import sys
  6 import shelve
  7 from config import settings
  8 from modules.school import School
  9 
 10 
 11 class Main(object):
 12     def __init__(self):
 13         pass
 14 
 15     def run(self):
 16         while True:
 17             print('''_______欢迎进入选课系统_______
 18                             1.学生视图
 19                             2.讲师视图
 20                             3.学校视图
 21                             q.返回主界面''')
 22             user_choice = input('请输入您的选择:')
 23             if user_choice == '1':
 24                 Manage_student()
 25             if user_choice == '2':
 26                 Manage_teacher()
 27             if user_choice == '3':
 28                 Manage_school()
 29             if user_choice == 'q':
 30                 print('您已退出系统,返回主界面')
 31                 break
 32             else:
 33                 print('请输入正确选项')
 34 
 35 
 36 class Manage_school(object):
 37     # 学校视图
 38     def __init__(self):
 39         if os.path.exists(settings.school_db_file + '.dat'):
 40             self.school_db = shelve.open(settings.school_db_file)  # 打开数据库
 41             self.run_manage()
 42             self.school_db.close()  # 关闭数据库
 43 
 44         else:
 45             print('初始化数据库')
 46             self.initialize_school()
 47             self.run_manage()
 48             self.school_db.close()
 49 
 50     def initialize_school(self):
 51         self.school_db = shelve.open(settings.school_db_file)
 52         self.school_db['北京'] = School('中国*北京', '北京')
 53         self.school_db['上海'] = School('中国*上海', '上海')
 54
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值