根据源程序进行改写:
原程序地址:http://www.cnblogs.com/lianzhilei/p/5985333.html 如有侵权立即删除。
感谢原作者将完整的代码提供参考。
原作者的代码是通过 shelve 模块实现的,非常完美。具体参考上面的链接地址;以下我改写代码是通过 pickle 模块来实现。主要做为练习:
README
class_system-pickle 选课系统根目录 ├── bin │ ├── __init__.py │ └── start.py 程序入口 ├── conf │ ├── __init__.py │ └── settings.py 配置文件 - 主要存储数据库文件目录 ├── core │ ├── __init__.py │ ├── manage_center.py 主菜单入口 │ ├── school_center.py 学校中心功能点实现 │ ├── student_center.py 学生中心功能点实现 │ └── teacher_center.py 讲师中心功能点实现 ├── db │ ├── __init__.py │ └── school_dict 数据库文件(运行程序自动初始化生成) └── modules ├── course.py 课程类 ├── grade.py 班级类 ├── __init__.py ├── school.py 学校类 ├── student.py 学生类 ├── teacher.py 讲师类 └── tools.py 工具包 - 对数据库文件读写操作 5 directories, 18 files 代码实现逻辑请阅读原作者链接。
基于 pickle 序列化的代码如下:
bin
#!/usr/bin/python3 # -*- coding: utf-8 -*- # Author: hkey from conf.settings import school_db_file from core.manage_center import Manage_center if __name__ == '__main__': obj = Manage_center() obj.run()
conf
#!/usr/bin/python3 # -*- coding: utf-8 -*- # Author: hkey import os BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__))) school_db_file = os.path.join(BASE_DIR, 'db', 'school_dict') teacher_db_file = os.path.join(BASE_DIR, 'db', 'school_dict')
db
(不需要手动创建文件,启动程序自动生成数据文件)
core
#!/usr/bin/python3 # -*- coding: utf-8 -*- # Author: hkey from core.school_center import School_center from core.student_center import Student_center from core.teacher_center import Teacher_center class Manage_center(object): def __init__(self): pass def run(self): while True: print('1. 学校中心 ' '2. 讲师中心 ' '3. 学生中心 ' '4. 退出') choice = input('>>>').strip() if choice == '1': School_center() elif choice == '2': Teacher_center() elif choice == '3': Student_center() elif choice == '4': break else: print('