import uuid
import pickle
class School:
school_name = "老男孩"
def __init__(self,nickname,address):
self.nickname = nickname
self.address = address
self.classes = []
self.id = uuid.uuid4()
def relate_class(self,class_obj):
self.classes.append(class_obj.id)
def save(self):
with open(f"db\school\\{self.id}.pickle",mode="wb") as f:
pickle.dump(self,f)
def tell_class(self):
print(self.nickname.center(50,"="))
for class_id in self.classes:
with open(f"db\class\\{class_id}.pickle", mode="rb") as f:
class_obj = pickle.load(f)
class_obj.tell_course()
class Class:
def __init__(self,name):
self.name = name
self.course = None
self.student = []
self.id = uuid.uuid4()
self.school = None
def relate_course(self,course_obj):
self.course = course_obj.id
def relate_student(self,student_obj):
self.student.append(student_obj.id)
def save(self):
with open(f"db\class\\{self.id}.pickle",mode="wb") as f:
pickle.dump(self,f)
def tell_course(self):
print("%-10s " %self.name,end=" ")
with open(f"db\course\\{self.course}.pickle",mode="rb") as f:
course = pickle.load(f)
course.tell_info()
class Course:
def __init__(self,name,time,cost):
self.name = name
self.time = time
self.cost = cost
self.id = uuid.uuid4()
def tell_info(self):
print("课程名:%-10s 时长:%s,费用:%s" %(self.name,self.time,self.cost))
def save(self):
with open(f"db\course\\{self.id}.pickle",mode="wb") as f:
pickle.dump(self,f)
class Student:
def __init__(self,name,age,gender,num):
self.name = name
self.age = age
self.gender = gender
self.num = num
self.class_obj = None
self.id = uuid.uuid4()
def tell_info(self):
print("姓名:%-5s 年龄:%s 性别:%s,学号:%-5s"%(self.name,self.age,self.gender,self.num))
def chose_class(self,class_obj):
self.class_obj = class_obj.id
class_obj.student.append(self.id)
def save(self):
with open(f"db\student\\{self.id}.pickle", mode="wb") as f:
pickle.dump(self, f)
def tell_class(self):
print(f"学生【{self.name}】班级信息".center(50,"="))
with open(f"db\class\\{self.class_obj}.pickle",mode="rb") as f:
class_obj = pickle.load(f)
class_obj.tell_course()
# 实例化对象
stu1 =Student("Jil",18,"mal",1118)
s1 = School("猪猪校区","上海徐汇")
c1 = Class("猪猪基础班")
c2 = Class("猪猪进阶班")
course1 = Course("猪的自我修养","6 months",20000)
course2 = Course("鱼丸捕捉十式","5 months",18000)
# 关联
s1.relate_class(c1)
s1.relate_class(c2)
c1.relate_course(course1)
c2.relate_course(course2)
# 学生选班级
stu1.chose_class(c1)
# 存入文件
s1.save()
c1.save()
c2.save()
course1.save()
course2.save()
stu1.save()
# 查看
s1.tell_class()
c1.tell_course()
stu1.tell_class()