iis服务器助手广告广告
返回顶部
首页 > 资讯 > 后端开发 > Python >面向对象作业——校园管理系统
  • 829
分享到

面向对象作业——校园管理系统

管理系统作业面向对象 2023-01-30 21:01:59 829人浏览 八月长安

Python 官方文档:入门教程 => 点击学习

摘要

角色:管理员、老师、学生要求:1. 创建北京、上海 2 所学校2. 创建linux , python , go 3个课程 ,linux\py 在北京开,go 在上海开3. 课程包含,周期,价格,学校4. 班级关联课程、讲师5. 创建学员时,

角色:

管理员、老师、学生


要求:

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

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

3. 课程包含,周期,价格,学校

4. 班级关联课程、讲师

5. 创建学员时,关联课程和班级

6. 创建讲师角色时要关联课程

7. 提供三个角色视图

  6.1 学员视图:查看自己的课程、班级

  6.2 讲师视图:讲师可查看自己教学的班级、课程。

          进阶需求:可管理自己的班级(查看班级学员列表,修改所管理的学员的成绩)

  6.3 管理视图:创建讲师,创建班级,创建课程,创建学生,创建学校


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

9. 按照软件开发规范来写代码

10. 登录成功失败、管理员的创建操作,老师的修改操作,都要记录日志


下面开始具体分析题意:

先明确,要创建哪些类?每个类有哪些属性

我定义的类和属性如下:

CheckFiles  # 检测配置文件中的文本文件是否存在,不存在时,自动创建

Classes  # 班级

Course  # 课程

Login  # 登录

Main  # 主程序

Manager  # 管理员

Personal  # 人类

Prompt  # 专门用来显示提示信息,带7种颜色,颜色任选

School  # 学校

Student  # 学生

Teacher  # 老师


主要的类的属性如下:

老师的属性分别为: 姓名,性别,年龄,课程。字典为:

{'name': name, 'sex': sex, 'age': age, 'course': course}

学生的属性分别为: 姓名,性别,年龄,课程,成绩,班级。字典为:

{'name': name, 'sex': sex, 'age': age, 'course': course, 'score': 0, 'classes': classes}

班级的属性分别为: 名字,课程,老师。字典为:

{'name': classes, 'course': course, 'teacher': teacher}

课程的属性分别为: 名字,周期,价格,城市。字典为:

{'name': course, 'cycle': cycle, 'price': price, 'city': city}

学校的属性分别为: 名字。字典为:

{'name': name}

字典对应的value,需要自己去填充


1.首先必须有北京和上海2所学校

2.linux,python在北京,go在上海(强制规定)。

3.课程包含,周期,价格,学校


既然有强制规定,那么就应该在程序运行时,就创建好3门课程,同时保证课程对应学校,字典如下:

course_default = [
    {'name': 'linux', 'cycle': 3, 'price': 7000, 'city': '北京'},
    {'name': 'python', 'cycle': 5, 'price': 20000, 'city': '北京'},
    {'name': 'Go', 'cycle': 7, 'price': 22000, 'city': '上海'},
]

字典的key分别表示名字,周期,价格,城市


4.班级关联课程、讲师

创建班级时要关联课程,由于默认就有3个课程,可以任选一个。

关联讲师,默认没有讲师,那么就需要先讲师。

在创建班级时,如果对应的课程没有老师,直接提示要先创建老师,并返回程序开始的地方。


5.创建学员时,关联课程和班级

课程默认是有的,任选一个。

如果对应的课程没有班级,提示创建班级,并返回程序开始的地方。


6.创建讲师角色时要关联课程

课程默认是有的,任选一个。


7. 提供三个角色视图

  6.1 学员视图:查看自己的课程、班级

  6.2 讲师视图:讲师可查看自己教学的班级、课程。

          进阶需求:可管理自己的班级(查看班级学员列表,修改所管理的学员的成绩)

  6.3 管理视图:创建讲师,创建班级,创建课程,创建学生,创建学校。以及查看前面创建的项。


这里有2个做法:

1. 先选择角色,再登录,登录成功之后,跳转到后台页面

2 直接登录,根据角色的不同,跳转到后台页面


第一种方法,有点low。我选用的是第2种方案。

那么就需要一个用户认证文件,只要3个字段: 用户名,密码,角色。字典如下:

{'username': 'xiao','passWord':'123', 'role': 'Manager'}

密码不能明文存在,必须得加密一下。而且这个字典,需要使用pickle序列化保存到文件里

角色名和类名是对应的,那么登录的时候,直接反射角色名,就可以跳转到对应的类里面。


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

需要有6个txt文件,分别是登录认证,老师,学生,班级,课程,学校

还要有1个log文件,用来记录日志


9. 按照软件开发规范来写代码

我创建的目录和文件结构如下:

school_management
├── bin
│   └── start.py
├── conf
│   └── settings.py
├── core
│   ├── CheckFiles.py
│   ├── Classes.py
│   ├── Course.py
│   ├── Login.py
│   ├── Main.py
│   ├── Manager.py
│   ├── Personal.py
│   ├── Prompt.py
│   ├── School.py
│   ├── Student.py
│   └── Teacher.py
├── db
│   ├── classes_info.txt
│   ├── course_info.txt
│   ├── school_info.txt
│   ├── student_info.txt
│   ├── teacher_info.txt
│   └── user_info.txt
├── lib
│   ├── mylogger.py
│   └── mypickle.py
├── log
│   └── test.log
├── 关联关系.png
├── 项目流程.png
└── readme


10. 登录成功失败、管理员的创建操作,老师的修改操作,都要记录日志

记录的日志都在test.log文件中


流程图如下:

项目流程.png

关联关系如下:

关联关系.png


完整代码我上传到GitHub.com中

地址为:

https://github.com/py3study/school_management


登录成功之后,菜单列表展示为隔行换色

已经创建好了老师,班级,学生。效果如下:

ad.gif

--结束END--

本文标题: 面向对象作业——校园管理系统

本文链接: https://www.lsjlt.com/news/179058.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作