作业 —— day27

选课系统项目中涉及到诸多数据与功能,要求引入面向对象的思想对其进行高度整合

1.学校数据与功能整合

2.课程数据与功能进行整合

3.学生数据与功能进行整合

4.讲师数据与功能进行整合

5.班级数据与功能进行整合

ps:不会写的同学,可以先用普通的方式,先把数据与功能都给写好,再考虑基于面向对象的思想进行整合

数据部分:

校区的名字:如"老男孩上海校区"

校区的地址:如"上海虹桥"

class School:
    def __init__(self, name, address):
        self.name = name
        self.address = address
        self.class_list = []

    def add_new_class(self):
        inp_class = input('请输入添加的班级名:'.strip())
        self.class_list.append(inp_class)

    def show_school_info(self):
        print(f'学校信息 ==> 校区名称:{self.name}  校区地址:{self.address}  班级列表:{self.class_list}')

班级名字、班级所在校区

class Class:
    def __init__(self, name, school):
        self.name = name
        self.school = school
        self.course_list = []

    def add_new_course(self):
        inp_course = input('请输入添加的课程名:'.strip())
        self.course_list.append(inp_course)

    def show_class_info(self):
        print(f'班级信息 ==> 班级名称:{self.name}  所在校区:{self.school}  课程列表:{self.course_list}')

学生的学校、学生的姓名、学生的年龄、学号、学生的性别

class Student:
    def __init__(self, school, name, age, stu_id, gender):
        self.school = school
        self.name = name
        self.age = age
        self.stu_id = stu_id
        self.gender = gender
        self.its_class = []
        self.its_course = []

    def choose_class(self):
        inp_class = input('请输入选择的班级:'.strip())
        self.its_class.append(inp_class)

    def show_student_info(self):
        print(
            f'学生信息 ==> 所在学校:{self.name}  姓名:{self.name}  年龄:{self.age}  学号:{self.stu_id}  \
            性别:{self.gender}  已选班级:{self.its_class}  已选课程:{self.its_course}')

课程名字、课程周期、课程价格

class Course:
    def __init__(self, name, period, price):
        self.name = name
        self.period = period
        self.price = price

    def show_course_info(self):
        print(f'课程信息 ==> 名称:{self.name}  周期:{self.period}  价格:{self.price}')

老师的名字、老师的年龄、老师的薪资、老师的等级

class Teacher:
    def __init__(self, name, age, salary, level):
        self.name = name
        self.age = age
        self.salary = salary
        self.level = level
        self.its_class = []

    def choose_class(self, classes):
        self.its_class.append(classes)

    def show_teacher_info(self):
        print(
            f'老师信息 ==> 姓名:{self.name}  年龄:{self.age}  薪资:{self.salary}  等级:{self.level}  已选班级:{self.its_class}')

功能部分:

# 校区创建完毕后,可以为每个校区创建班级
school1 = School('老男孩教育 - 上海校区', '上海市青浦区')
print(school1.show_school_info())
school1.add_new_class()
print(school1.show_school_info())

# 班级创建完毕后,可以为每个班级创建课程
class1 = Class('Python脱产11期', '老男孩教育 - 上海校区')
print(class1.show_class_info())

# 学生创建完毕后,学生可以选择班级
student1 = Student('老男孩教育 - 上海校区', 'xxq', 18, 20200407, 'male')
print(student1.show_student_info())
student1.choose_class()

# 老师创建完毕后,可以为学生打分
teacher1 = Teacher('eogn', 78, 998, '初级')
print(teacher1.show_teacher_info())

猜你喜欢

转载自www.cnblogs.com/xuexianqi/p/12656696.html