在一个学校中有教师和学生两类人员,学生信息有身份证号、学号、专业、姓名、性别、年龄及数学、英语和Java程序设计三门课程的成绩,教师信息有身份证号、教师号、专业、姓名、性别、年龄及授课的学时数,创建学生和教师的对象并输出对象的信息
时间: 2023-08-09 21:12:30 浏览: 96
1_lower7y7_定义一个包含学生信息(学号_成绩)的顺序表和链表(二选一)_姓名_使其具有如下功能_
5星 · 资源好评率100%
好的,这是一个更加复杂的面向对象编程问题。以下是一个可能的实现,使用了 Python 语言:
```python
# 定义一个人员基类 Person
class Person:
def __init__(self, id_card, name, age, gender, major):
self.id_card = id_card
self.name = name
self.age = age
self.gender = gender
self.major = major
def __str__(self):
return f"身份证号:{self.id_card},姓名:{self.name},年龄:{self.age},性别:{self.gender},专业:{self.major}"
# 定义一个学生类 Student,继承自 Person
class Student(Person):
def __init__(self, id_card, student_id, name, age, gender, major, math_score, eng_score, java_score):
super().__init__(id_card, name, age, gender, major)
self.student_id = student_id
self.math_score = math_score
self.eng_score = eng_score
self.java_score = java_score
def __str__(self):
return f"{super().__str__()},学号:{self.student_id},数学成绩:{self.math_score},英语成绩:{self.eng_score},Java程序设计成绩:{self.java_score}"
# 定义一个教师类 Teacher,继承自 Person
class Teacher(Person):
def __init__(self, id_card, teacher_id, name, age, gender, major, teaching_hours):
super().__init__(id_card, name, age, gender, major)
self.teacher_id = teacher_id
self.teaching_hours = teaching_hours
def __str__(self):
return f"{super().__str__()},教师号:{self.teacher_id},授课学时数:{self.teaching_hours}"
# 创建一个学生对象和一个教师对象,并输出它们的信息
s = Student("330121200001010001", "1001", "张三", 18, "男", "计算机科学与技术", 80, 90, 85)
t = Teacher("330121197001010001", "2001", "李四", 30, "女", "计算机科学与技术", 20)
print(s)
print(t)
```
输出结果如下:
```
身份证号:330121200001010001,姓名:张三,年龄:18,性别:男,专业:计算机科学与技术,学号:1001,数学成绩:80,英语成绩:90,Java程序设计成绩:85
身份证号:330121197001010001,姓名:李四,年龄:30,性别:女,专业:计算机科学与技术,教师号:2001,授课学时数:20
```
阅读全文