写类Person 姓名、性别、年龄、生日 方法:showInfo() 写子类Student ,Person的子类 增加属性:学校、专业、学号 重写showInfo() 写子类(课代表)CourseRep,是Student的子类 增加属性:课程; 增加方法:打印选课名单()---遍历小组成员,输出该同学信息 + “已选该课” 写类(课程)Course 属性:课程名、选课名单(是个学生数组)、课代表; 写测试类 声明并初始化Java课程,8位选课同学,课代表小明,打印选课名单
时间: 2023-06-19 14:02:53 浏览: 148
```python
# 定义类 Person
class Person:
def __init__(self, name, gender, age, birthday):
self.name = name
self.gender = gender
self.age = age
self.birthday = birthday
def showInfo(self):
print("姓名:", self.name)
print("性别:", self.gender)
print("年龄:", self.age)
print("生日:", self.birthday)
# 定义子类 Student
class Student(Person):
def __init__(self, name, gender, age, birthday, school, major, student_id):
super().__init__(name, gender, age, birthday)
self.school = school
self.major = major
self.student_id = student_id
def showInfo(self):
super().showInfo()
print("学校:", self.school)
print("专业:", self.major)
print("学号:", self.student_id)
# 定义子类 CourseRep
class CourseRep(Student):
def __init__(self, name, gender, age, birthday, school, major, student_id, course):
super().__init__(name, gender, age, birthday, school, major, student_id)
self.course = course
def printSelectedCourse(self):
print("选课名单:")
for student in self.course.students:
student.showInfo()
print("已选该课")
# 定义类 Course
class Course:
def __init__(self, course_name, course_rep):
self.course_name = course_name
self.students = []
self.course_rep = course_rep
def addStudent(self, student):
self.students.append(student)
def showCourseInfo(self):
print("课程名:", self.course_name)
print("课代表:")
self.course_rep.showInfo()
# 测试类
if __name__ == '__main__':
# 初始化课代表小明
course_rep = CourseRep("小明", "男", 20, "2000-01-01", "清华大学", "计算机科学与技术", "20210001", None)
# 初始化Java课程
java_course = Course("Java", course_rep)
# 初始化8位选课同学
student1 = Student("张三", "男", 20, "2000-01-01", "清华大学", "计算机科学与技术", "20210002")
student2 = Student("李四", "女", 19, "2001-02-02", "清华大学", "计算机科学与技术", "20210003")
student3 = Student("王五", "男", 21, "1999-03-03", "清华大学", "计算机科学与技术", "20210004")
student4 = Student("赵六", "女", 22, "1998-04-04", "清华大学", "计算机科学与技术", "20210005")
student5 = Student("钱七", "男", 20, "2000-05-05", "清华大学", "计算机科学与技术", "20210006")
student6 = Student("孙八", "女", 19, "2001-06-06", "清华大学", "计算机科学与技术", "20210007")
student7 = Student("周九", "男", 21, "1999-07-07", "清华大学", "计算机科学与技术", "20210008")
student8 = Student("吴十", "女", 22, "1998-08-08", "清华大学", "计算机科学与技术", "20210009")
# 添加选课同学
java_course.addStudent(student1)
java_course.addStudent(student2)
java_course.addStudent(student3)
java_course.addStudent(student4)
java_course.addStudent(student5)
java_course.addStudent(student6)
java_course.addStudent(student7)
java_course.addStudent(student8)
# 打印选课名单
java_course.showCourseInfo()
course_rep.course = java_course
course_rep.printSelectedCourse()
```
输出结果:
```
课程名: Java
课代表:
姓名: 小明
性别: 男
年龄: 20
生日: 2000-01-01
学校: 清华大学
专业: 计算机科学与技术
学号: 20210001
选课名单:
姓名: 张三
性别: 男
年龄: 20
生日: 2000-01-01
学校: 清华大学
专业: 计算机科学与技术
学号: 20210002
已选该课
姓名: 李四
性别: 女
年龄: 19
生日: 2001-02-02
学校: 清华大学
专业: 计算机科学与技术
学号: 20210003
已选该课
姓名: 王五
性别: 男
年龄: 21
生日: 1999-03-03
学校: 清华大学
专业: 计算机科学与技术
学号: 20210004
已选该课
姓名: 赵六
性别: 女
年龄: 22
生日: 1998-04-04
学校: 清华大学
专业: 计算机科学与技术
学号: 20210005
已选该课
姓名: 钱七
性别: 男
年龄: 20
生日: 2000-05-05
学校: 清华大学
专业: 计算机科学与技术
学号: 20210006
已选该课
姓名: 孙八
性别: 女
年龄: 19
生日: 2001-06-06
学校: 清华大学
专业: 计算机科学与技术
学号: 20210007
已选该课
姓名: 周九
性别: 男
年龄: 21
生日: 1999-07-07
学校: 清华大学
专业: 计算机科学与技术
学号: 20210008
已选该课
姓名: 吴十
性别: 女
年龄: 22
生日: 1998-08-08
学校: 清华大学
专业: 计算机科学与技术
学号: 20210009
已选该课
```
阅读全文