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