建立Person类,包含姓名,年龄信息,教师类和工人类继承Person类,分别含有任职学校;工龄。输入操作次数n,接下来n行输入“类型 姓名 年龄 特有参数”,中间以空格分隔,最后输入查询职业,按行按输入顺序输出该职业的人的信息,格式为“工人某某,多少岁,工龄多少年”或者“教师某某,多少岁,在某校教书”,或”NOT FOUND”
时间: 2023-11-24 20:05:57 浏览: 20
以下是Python的实现:
```python
class Person:
def __init__(self, name, age):
self.name = name
self.age = age
class Teacher(Person):
def __init__(self, name, age, school):
super().__init__(name, age)
self.school = school
def info(self):
return f"教师{self.name},{self.age}岁,在{self.school}教书"
class Worker(Person):
def __init__(self, name, age, working_years):
super().__init__(name, age)
self.working_years = working_years
def info(self):
return f"工人{self.name},{self.age}岁,工龄{self.working_years}年"
n = int(input())
people = []
for i in range(n):
info = input().split()
if info[0] == "教师":
person = Teacher(info[1], int(info[2]), info[3])
elif info[0] == "工人":
person = Worker(info[1], int(info[2]), int(info[3]))
people.append(person)
job = input()
found = False
for person in people:
if isinstance(person, Teacher) and job == "教师":
print(person.info())
found = True
elif isinstance(person, Worker) and job == "工人":
print(person.info())
found = True
if not found:
print("NOT FOUND")
```
输入格式为:
```
n
类型 姓名 年龄 特有参数
类型 姓名 年龄 特有参数
...
查询职业
```
示例输入:
```
4
教师 张三 30 北京大学
工人 李四 40 10
教师 王五 35 清华大学
工人 赵六 45 20
教师
```
示例输出:
```
教师张三,30岁,在北京大学教书
教师王五,35岁,在清华大学教书
```
再举一个查询不到的例子:
示例输入:
```
2
工人 李四 40 10
教师 王五 35 清华大学
学生
```
示例输出:
```
NOT FOUND
```