# 选课系统项目中涉及到诸多数据与功能,要求引入面向对象的思想对其进行高度整合
# 1、学校数据与功能整合
# 2、课程数据与功能进行整合
# 3、学生数据与功能进行整合
# 4、讲师数据与功能进行整合
# 5、班级数据与功能进行整合
# ps:不会写的同学,可以先用普通的方式,先把数据与功能都给写好,再考虑基于面向对象的思想进行整合
#
# 数据部分:
# 校区的名字:如"老男孩上海校区"
# 校区的地址:如"上海虹桥"
#
# 班级名字
# 班级所在校区
#
# 学生的学校
# 学生的姓名
# 学生的年龄
# 学号
# 学生的性别
#
# 课程名字
# 课程周期
# 课程价格
#
# 老师的名字
# 老师的年龄
# 老师的薪资
# 老师的等级
#
# 功能部分:
# 校区创建完毕后,可以为每个校区创建班级
# 班级创建完毕后,可以为每个班级创建课程
# 学生创建完毕后,学生可以选择班级
# 老师创建完毕后,可以为学生打分
class School:
def __init__(self,name,site): # 校区名字 校区地址
self.name = name
self.site = site
class ClassName:
def __init__(self,name,school_name): # 班级名字 班级所在学校名字
self.name = name
def create_class(self):
self.class_name = input('请输入要创建的班级名').strip()
self.class_address = input('请输入创建的班级所属校区').strip()
class Student:
def __init__(self,name,school_name,age,male,student_number):# 学生名字 所在学校名字 年龄 性别 学号
self.name = name
self.school_name = school_name
self.age = age
self.male = male
self.student_number = student_number
def choose_class(self):
self.choose_class = input('请输入要选择的班级').strip()
class Lesson:
def __init__(self,name,period,price):# 课程名字周期价格
self.name = name
self.period = period
self.price = price
class Teacher:
def __init__(self,name,age,salary,grade): # 老师名字 年龄 薪资 等级
self.name = name
self.age = age
self.salary = salary
self.grade = grade
def give_mark(self):
self.mark = input('给学生打分:').strip()
self.student_name = input('请输入要打分的学生的名字').strip()
beijing = School('老男孩北京校区', '北京昌平')
shanghai = School('老男孩上海校区', '上海虹桥')
shenzhen = School('老男孩深圳校区', '深圳大学城')
class12 = ClassName('12期',shanghai.name)
class29 = ClassName('29期',beijing.name)
class07 = ClassName('07期',shenzhen.name)
python = Lesson('python', 2, '6个月')
c = Lesson('c', 1.6, '4个月',)
go = Lesson('go', 0.3, '1个月')
linux = Lesson('linux', 2, '个月')
java = Lesson('java', 1.8, '个月')
student1 = Student('yu',beijing,18,'男',15)
Student.choose_class(student1)
print(student1.name,student1.choose_class)
ClassName.create_class(ClassName)
print(ClassName.class_name)
print(ClassName.class_address)
Teacher.give_mark(Teacher)
print(Teacher.mark)
print(Teacher.student_name)