计算亲戚关系,我的 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/
|