计算亲戚关系,我的 XXX 的 XXX [的 XXX ] 是 YYY。如,我的爸爸的妈妈是奶奶。
我的想法是这样: XXX 限定在哥哥、姐姐、弟弟、妹妹、爸爸、妈妈、丈夫、妻子、儿子、女儿。 YYY 是最后计算的结果,比如姑姑、姑奶奶等。
目前我建立的模型是这样:
class Person { string current_title; //当前称呼 Person compare; //用于比较大小的对象,比如爸爸的弟弟可能是“伯父”、“叔公” //下面十个分别代表哥哥、弟弟、姐姐、妹妹、爸爸、妈妈、丈夫、妻子、儿子、女儿 string elder_brother; string litte_brother; string elder_sister; string litte_sister; string father; string mother; string husband; string wife; string son; string daughter; }
根据当前的current_title
不同,后边十个属性分别取不同的称呼。
这样的模型,可以用,但是总感觉这种方法很傻。
求教,这个问题有没有优雅的解决思路。
1 285571052 2016-12-31 11:41:17 +08:00 有个想法,但是还是很麻烦的样子。 假设有 哥哥、弟弟、姐姐、妹妹、爸爸、妈妈、丈夫、妻子、儿子、女儿 这些实例对象,两两对象之间的关系是明确的,然后用一个指针指向最终的对象,比如 我哥哥的姐姐的妈妈的女儿 这样,最终指针指向姐姐,然后判断姐姐和'我'的关系。 |
![]() | 2 mumuy 2022-03-02 17:10:15 +08:00 |
![]() | 3 mumuy 2022-03-02 17:11:09 +08:00 我写的一套亲戚关系的算法: https://github.com/mumuy/relationship/ |