选课系统项目中涉及到诸多数据与功能,要求引入面向对象的思想对其进行高度整合
1、学校数据与功能整合
2、课程数据与功能进行整合
3、学生数据与功能进行整合
4、讲师数据与功能进行整合
5、班级数据与功能进行整合
ps:不会写的同学,可以先用普通的方式,先把数据与功能都给写好,再考虑基于面向对象的思想进行整合
数据部分:
校区的名字:如"老男孩上海校区"
校区的地址:如"上海虹桥"
班级名字
班级所在校区
学生的学校
学生的姓名
学生的年龄
学号
学生的性别
课程名字
课程周期
课程价格
老师的名字
老师的年龄
老师的薪资
老师的等级
功能部分:
校区创建完毕后,可以为每个校区创建班级
班级创建完毕后,可以为每个班级创建课程
学生创建完毕后,学生可以选择班级
老师创建完毕后,可以为学生打分
class School():
School_name = 'OLD BOY'
def __init__(self,area_name,address):
self.area_name = area_name
self.address = address
def make_class(self,class_name):
return Class(self.area_name,self.address,class_name)
class Class(School):
def __init__(self,area_name,address,name):
super().__init__(area_name,address)
self.name = name
def show_class_info(self):
print('area_name:{},class_name:{}'.format(self.area_name,self.name))
def make_course(self,course_name,period,price):
return Course(course_name,period,price)
class Course():
def __init__(self,name,period,price):
self.name = name
self.period = period
self.price = price
def show_course_info(self):
print('''
课程名:%s
课程周期:%s
课程价格:%s
'''%(self.name,self.period,self.price)
)
class Student():
def __init__(self,school_name,name,age,sex,num):
self.school_name = school_name
self.name = name
self.age = age
self.sex = sex
self.num = num
def select_class(self):
self.class_name = '老男孩上海校区py脱产14期'
print('你选择成为[%s]中的一员'%self.class_name)
class Teacher():
def __init__(self,name,age,salary,level):
self.name = name
self.age = age
self.salary = salary
self.level = level
def make_score(self,stu_name):
print('[%s]老师给学生[%s]打了100分。'%(self.name,stu_name))
sch1 = School('上海校区','上海虹桥')
class1=sch1.make_class('老男孩上海校区py脱产14期')
sch2 = School('北京校区','北京朝阳')
class2=sch2.make_class('老男孩北京校区py脱产14期')
course1 = class1.make_course('python','6 mons','20000 ¥')
course2 = class1.make_course('java','6 mons','10000 ¥')
course3 = class1.make_course('linux','6 mons','10000 ¥')