# 选课系统项目中涉及到诸多数据与功能,要求引入面向对象的思想对其进行高度整合
# 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)