病人登记看病,编写一个程序,将登记的病人按照以下原则排出看病的先后顺序: 1. 老年人(年龄 >= 60岁)比非老年人优先看病。 2. 老年人按年龄从大到小的顺序看病,年龄相同的按登记的先后顺序排序。 3. 非老年人按登记的先后顺序看病
时间: 2023-08-31 19:38:09 浏览: 153
### 回答1:
你好!对于你的问题,我可以给出以下程序实现方案:
首先,需要定义一个病人类,包括姓名、性别和年龄等属性,以及一个登记时间属性。
然后,将所有病人按照老年人和非老年人分类,对老年人按照年龄从大到小排序,年龄相同的按登记时间排序;对非老年人按照登记时间排序。
最后,将所有病人按照排序后的顺序依次排出看病的顺序即可。
需要注意的是,这只是一个简单的实现方案,具体实现过程可能还需要考虑更多细节和特殊情况。
### 回答2:
首先,我们需要设计一个病人登记的程序,程序中包含病人的信息,包括姓名和年龄。可以使用一个包含姓名和年龄两个属性的对象来表示病人。
接下来,我们根据题目给出的原则进行排序。首先,将病人分成老年人和非老年人两类。可以使用一个列表来存储所有的病人对象。
然后,对老年人按照年龄从大到小进行排序,年龄相同的按照登记的先后顺序进行排序。可以使用python的sorted函数,并自定义排序规则。例如:
```python
def sort_key(patient):
return (-patient.age, patient.register_time)
sorted_elderly = sorted(patients, key=sort_key)
```
这样,sorted_elderly列表中的病人对象就按照老年人优先、按年龄从大到小、按登记的先后顺序排列。
最后,将非老年人按照登记的先后顺序进行排序。可以直接使用python的sorted函数,不需要自定义排序规则。例如:
```python
sorted_non_elderly = sorted(non_elderly_patients, key=lambda patient: patient.register_time)
```
这样,sorted_non_elderly列表中的病人对象就按照非老年人的登记先后顺序排列。
最终,将sorted_elderly和sorted_non_elderly合并,即可得到按照题目要求排列的病人对象列表。