python面向对象——模拟学生选课系统

模拟学生选课系统

面向对象练习,模拟学生选课系统,尚有诸多不完善之处,仍需完善。

需求分析:

利用规范化目录完成一个学生选课系统
角色:学生/管理员

功能分析:
用户登陆之后就可以直接判断用户身份(是学生还是管理员)
学生登陆之后有以下几个功能:
1,察看所有课程
2,选择课程
3,查看所选课程
4,退出程序
管理员登陆之后有以下几个功能:
1,创建课程
2,创建学生账号
3,察看所有课程
4,察看所有学生
5,察看所有学生的选课情况

必须包含的属性如下
课程属性:课程名,价格,周期,老师
学生属性:姓名,所选课程
管理员属性:姓名

目录设置:

规范化目录展示

blog                        # 项目名称
├─ README.md
 ─ bin                      # 存放启动文件
     ─ start.py                 # 启动文件
─ conf                      # 存放配置文件
    — settings.py               #配置文件
─ core                      # 存放主逻辑
    — src.py                    # 主逻辑
─ lib                       # 存放公共组件
    — common.py                 # 公共组件
─ db                        # 存放数据
    ─ userinfo                  # 账号密码
—log                        # 存放日志
    —alex_log                   #日志
    — meet_log                  #日志

settings.py: 配置文件,放置一些项目中需要的静态参数,比如文件路径,数据库配置,软件的默认设置等。

common.py: 公共组件文件,放置一些常用的公共组件函数,并不是我们核心逻辑的函数,而是服务于整个程序中的公用的插件,程序中需要即调用。比如装饰器,有些函数是需要这个装饰器认证的,还有密码加密功能,序列化功能,日志功能等。

src.py: 这个文件主要存放的就是核心逻辑功能。

start.py: 项目启动文件,相当于开关,启动整个项目。

log文件:存储log日志的文件,日志主要是供开发人员使用,开发人员对服务器做的一些操作都会记录到日志中,以便开发者浏览查询。

代码划分

start.py

import sys
import os
BATH_DIR = os.path.dirname(os.path.dirname(__file__))    # 获取本文件的绝对路径
sys.path.append(BATH_DIR)                                # 添加文件路径
from 选课系统.core.src import func
if __name__ == '__main__':
    func()    # 启动文件,调用核心逻辑中的func()函数

settings.py

from 选课系统.db import *     # 从数据目录中导入文件
Manager_Info_Path = r'E:\S-27\选课系统\db\manager_info'
Student_Info_Path = r'E:\S-27\选课系统\db\student_info'
Courses_Path = r'E:\S-27\选课系统\db\courses.txt'
Student_Courses_Path = r'E:\S-27\选课系统\db\student_courses'

src.py

from 选课系统.conf import settings
# 从配置文件导入存储信息文件的路径
Courses_Path = settings.Courses_Path
Student_Courses_Path = settings.Student_Courses_Path
Student_Info_Path = settings.Student_Info_Path
Manager_Info_Path = settings.Manager_Info_Path
# 把代码中的文件名替换为文件路径


class Student:
    def __init__(self,name):
        self.name = name
        self.courses = []
    def show_courses(self):  #查看所有课程
        with open(Courses_Path,'r',encoding='utf-8') as f:
            num = 1
            for i in f:
                print(num,i.strip())
                num +=1
    def select_course(self)
  • 7
    点赞
  • 46
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值