python 选课系统

couser.py:
import sys,os
BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
sys.path.append(BASE_DIR) from core import main if __name__ == '__main__': #__main__就是导入的模块,main,__name__是系统变量
a = main.Run() #实例化类
a.interactive() #调用类的方法 uid.py:
import hashlib
import time def create_md():
m = hashlib.md5()
m.update(bytes(str(time.time()),encoding='utf-8')) #hash的数值
return m.hexdigest() #16进制的hash值 main.py:
import sys,os
import json
import pickle BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
sys.path.append(BASE_DIR)
from core import uid
#数据库文件路径
db_DIR = BASE_DIR + r"\db"
db_school = db_DIR + r"\school"
db_teacher = db_DIR + r"\student"
db_classes = db_DIR + r"\classes"
db_course = db_DIR + "r\course"
db_admin = db_DIR + r"\admin"
db_class_record = db_DIR + r"\class_record"
db_class_grade = db_DIR + r"\class_grade" class Baseclass(object):
def __init__(self):
pass
def save(self,type,dict):
"""
school是一个字典格式,这个函数是对创建的学校进行存档
:param type:type输入的其实是db中的文件夹
:param dict:
:return:
"""
filename = uid.create_md()
dict['uid'] = filename #
file_path = "%s\%s"%(db_DIR,type) #type就是文件夹的名称
ab_file = "%s\%s"%(file_path,filename) #文件夹下的文件名称,filename是hash的id值
with open(ab_file,"wb") as f:
# dumps 将数据通过特殊的形式转换为只有python语言认识的字符串
f.write(pickle.dumps(dict))
print("-------",type,"创建成功","-------")
for key in dict:
print(key,":\t",dict[key]) def seek_list(self,type,list):
"""
此方法是将班级中的学生,学校的老师等列表进行存储
:param type: 学生,学校,班级中学生登记,班级等类别
:param list: 每种课程中的学生信息
:return:
"""
filename = uid.create_md()
file_path = "%s\%s" %(db_DIR,type)
ab_file = "%s\%s" %(file_path,filename)
with open(ab_file,"wb") as f: #二进制读入,二进制打开,最好的方式
f.write(pickle.dumps(list))
print("-------",type,"创建成功","--------")
for i in list: #i就是相关学生,老师的选课信息的字典
for key in i:
print(key,i[key])
print('\n')
return True def open(self,type):
"""
此方法是将相关数据中的进行还原
:param type:数据类型
:return: 返回一个列表
"""
all_data = []
db_path = "%s\%s" %(db_DIR,type) #相对应的文件夹
for i in os.listdir(db_path): #直接就将文件显示出来了
if os.path.isfile(os.path.join(db_path,i)):
db_file = os.path.join(db_path,i) #变成绝对路径,os.path.join直接就把路径\合并了
with open(db_file,"rb") as f: #二进制打开
file_dict = pickle.load(f) #还原pickle的数据
all_data.append(file_dict) #可以把字典直接还原,返回的是列表 return all_data class Admin(Baseclass):
def __init__(self):
super(Admin,self).__init__()
def create_school(self):
school_dict = {}
school_name = input("校名:")
school_address = input("地址:")
s1 = School(school_name,school_address)
school_dict["校名"] = s1.school_name
school_dict["地址"] = s1.school_address
Baseclass.save(self,"school",school_dict)
def create_teacher(self):
teacher_dict = {}
teacher_name = input("讲师姓名:")
teacher_salary = input("讲师工资:")
teacher_school = input("所属学校:")
t1 = Teacher(teacher_name,teacher_salary,teacher_school) #这些有点多余,其它也没有关联起来
teacher_dict["姓名"] = t1.teacher_name
teacher_dict["工资"] = t1.teacher_salary
teacher_dict["所属学校"] = t1.teacher_school
print(teacher_dict) #进行测试
Baseclass.save(self,"teacher",teacher_dict)
def create_student(self):
student_dict = {}
student_name = input("学员姓名:")
student_sex = input("学员性别:")
student_school = input("所属学校:")
student_classes = input("学员班级:")
# st1 = Student(student_name,student_sex,student_school,student_classes)
student_dict["姓名"] = student_name
student_dict["性别"] = student_sex
student_dict["学校"] = student_school
student_dict["班级"] = student_classes
Baseclass.save(self,"student",student_dict)
def create_course(self):
course_dict = {}
course_name = input("课程名:")
course_period = input("周期:")
course_prices = input("价格:")
c1 = Course(course_name,course_period,course_prices) #实例化Course类
course_dict["课程名"] = c1.course_name 阐述:
以上的就是pickle的基本使用,对文件目录文件读取写入等,在继承方面,指继承了基类的方法,注册什么的都是没有什么效果,最主要是类的继承比较繁琐,还是可以学习到一点东西。
python 选课系统的更多相关文章
- 一个简单的python选课系统
下面介绍一下自己写的python程序,主要是的知识点为sys.os.json.pickle的模块应用,python程序包的的使用,以及关于类的使用. 下面是我的程序目录: bin是存放一些执行文件co ...
- python选课系统
程序名称: 选课系统 角色:学校.学员.课程.讲师 要求: 1. 创建北京.上海 2 所学校 2. 创建linux , python , go 3个课程 , linux\py 在北京开, go 在上海 ...
- python选课系统作业
# 选课系统# 角色:学校.学员.课程.讲师# 要求:# 1. 创建北京.上海 2 所学校# 2. 创建linux , python , go 3个课程 , linux\py 在北京开, go 在上海 ...
- python选课系统demo的小练习
#简化选课系统代码:先登陆,然后判断身份并实例化,根据身份对应的类,让用户选择 class Manager: operate_dict=[ ('创造学生账号',"creat_student& ...
- python之选课系统详解[功能未完善]
作业需求 思路:1.先写出大体的类,比如学校类,学生类,课程类-- 2.写出类里面大概的方法,比如学校类里面有创建讲师.创建班级-- 3.根据下面写出大致的代码,并实现其功能 遇到的困 ...
- Python开发程序:选课系统-改良版
程序名称: 选课系统 角色:学校.学员.课程.讲师要求:1. 创建北京.上海 2 所学校2. 创建linux , python , go 3个课程 , linux\py 在北京开, go 在上海开3. ...
- python实现学生选课系统 面向对象的应用:
一.要求: 选课系统 管理员: 创建老师:姓名.性别.年龄.资产 创建课程:课程名称.上课时间.课时费.关联老师 使用pickle保存在文件 学生: 学生:用户名.密码.性别.年龄.选课列表[].上课 ...
- Python开发程序:选课系统
本节作业: 选课系统 角色:学校.学员.课程.讲师要求:1. 创建北京.上海 2 所学校2. 创建linux , python , go 3个课程 , linux\py 在北京开, go 在上海开3. ...
- python 面向对象 class 老男孩选课系统
要求:1. 创建北京.上海 2 所学校 class2. 创建linux , python , go 3个课程 , linux\py 在北京开, go 在上海开3. 课程包含,周期,价格,通过学校创建课 ...
随机推荐
- 阿里云各Linux发行版netcore兼容性评估报告---来自大石头的测试
阿里云各Linux发行版netcore兼容性评估报告---来自大石头的测试 结论: 优先选择CentOS/Ubuntu,可选AliyunLinux(CentOS修改版) ...
- ORACLE 根据 sql_id 查询绑定变量的传入值
查询当前查询: select b.NAME,b.POSITION,b.DATATYPE_STRING,b.VALUE_STRING,b.LAST_CAPTUREDfrom v$sql_bind_cap ...
- echarts的地图点击事件
1.echarts的地图展示,有时候展示出的数据,虽然鼠标点击上去某个省份或者某个地方会有数据显示,但是点击一下地图没有任何动态效果,如何添加地图点击效果呢,这里自己也是坐下笔记,方便以后使用. 参考 ...
- MVC4 发布到II7或者IIS7.5遇到NO Find问题
1.出现的错误页面
- sklearn交叉验证3-【老鱼学sklearn】
在上一个博文中,我们用learning_curve函数来确定应该拥有多少的训练集能够达到效果,就像一个人进行学习时需要做多少题目就能拥有较好的考试成绩了. 本次我们来看下如何调整学习中的参数,类似一个 ...
- Ethereum(1)—— 基本介绍
1 环境安装 安装Ethereum 协议的Go语言的最新实现. git clone https://github.com/ethereum/go-ethereum.git make all cd bu ...
- pandas 必背函数操作
1.五个常用属性 index,columns,shape,values,dtypes2.常用函数:set_index,reset_index,del df['column_name'],pd.read ...
- jvm领域优秀博主
dh5724 不过csdn iteye 博客园信息均被自己删除,只在一些问答中和引用中有部分信息. redcreen 对jvm有深入认知. RednaxelaFX oracle java 编译器开发者 ...
- SQLyog 最新版本12.5-64bit 完美破解,亲测可用!
声明:本文只是提供一个网络上找到的针对12.5版本的注册码使用方式做一个说明,不建议企业用户破解,有条件的还是希望大家购买原版.当然个人学习用的但又不想购买原版的,这里只是提供个途径,请勿用做商业用途 ...
- __http原理__02__HTTP请求方法
一.HTTP请求方法 根据HTTP标准,HTTP请求可以使用多种请求方法. HTTP1.0定义了三种请求方法: GET, POST 和 HEAD方法. HTTP1.1新增了五种请求方法:OPTIONS ...