python面向对象式的学生”画像“系统实列
时间: 2023-10-09 11:08:57 浏览: 40
好的,我可以为您提供一个简单的Python面向对象式的学生“画像”系统实例。请注意,这只是一个示例,您需要根据实际情况进行修改和完善。
```python
# 定义学生类
class Student:
def __init__(self, name, age, gender, grade, score, hobbies):
self.name = name
self.age = age
self.gender = gender
self.grade = grade
self.score = score
self.hobbies = hobbies
def show_info(self):
print('姓名:', self.name)
print('年龄:', self.age)
print('性别:', self.gender)
print('班级:', self.grade)
print('成绩:', self.score)
print('兴趣爱好:', self.hobbies)
# 定义学科类
class Subject:
def __init__(self, name, credit, teacher):
self.name = name
self.credit = credit
self.teacher = teacher
def show_info(self):
print('学科名称:', self.name)
print('学分:', self.credit)
print('授课教师:', self.teacher)
# 定义教师类
class Teacher:
def __init__(self, name, age, gender, experience, subject):
self.name = name
self.age = age
self.gender = gender
self.experience = experience
self.subject = subject
def show_info(self):
print('教师姓名:', self.name)
print('年龄:', self.age)
print('性别:', self.gender)
print('教龄:', self.experience)
print('授课学科:', self.subject)
# 定义学生画像系统类
class StudentPortraitSystem:
def __init__(self, students, subjects, teachers):
self.students = students
self.subjects = subjects
self.teachers = teachers
def search_student_by_name(self, name):
for student in self.students:
if student.name == name:
return student
print('未找到该学生!')
def search_student_by_grade(self, grade):
grade_students = []
for student in self.students:
if student.grade == grade:
grade_students.append(student)
return grade_students
def search_teacher_by_subject(self, subject_name):
for teacher in self.teachers:
if teacher.subject.name == subject_name:
return teacher
print('未找到该学科的教师!')
# 创建学生对象
student1 = Student('张三', 16, '男', '高一1班', 90, ['游泳', '篮球'])
student2 = Student('李四', 15, '女', '高一2班', 85, ['唱歌', '跳舞'])
student3 = Student('王五', 16, '男', '高一1班', 92, ['阅读', '写作'])
student4 = Student('赵六', 15, '女', '高一2班', 88, ['画画', '音乐'])
# 创建学科对象
subject1 = Subject('数学', 5, Teacher('张老师', 35, '女', 10, subject1))
subject2 = Subject('语文', 4, Teacher('李老师', 40, '男', 15, subject2))
subject3 = Subject('英语', 3, Teacher('王老师', 30, '女', 5, subject3))
# 创建教师对象
teacher1 = Teacher('张老师', 35, '女', 10, subject1)
teacher2 = Teacher('李老师', 40, '男', 15, subject2)
teacher3 = Teacher('王老师', 30, '女', 5, subject3)
# 创建学生画像系统对象
students = [student1, student2, student3, student4]
subjects = [subject1, subject2, subject3]
teachers = [teacher1, teacher2, teacher3]
system = StudentPortraitSystem(students, subjects, teachers)
# 根据学生姓名查询学生信息
print('根据姓名查询学生:')
student = system.search_student_by_name('张三')
student.show_info()
# 根据班级查询学生信息
print('根据班级查询学生:')
grade_students = system.search_student_by_grade('高一2班')
for student in grade_students:
student.show_info()
# 根据学科查询教师信息
print('根据学科查询教师:')
teacher = system.search_teacher_by_subject('数学')
teacher.show_info()
```
请注意,上述代码只是一个示例,您需要根据实际情况进行修改和完善,比如添加更多的属性和方法,以及对输入参数进行有效性检查等。