用java实现亲戚计算器
时间: 2023-08-30 16:06:11 浏览: 96
好的,我可以为您介绍一下如何用 Java 实现亲戚计算器。
亲戚计算器是一种基于家族关系的计算器,可以通过输入两个人的姓名,计算出它们之间的亲戚关系。在 Java 中,可以使用面向对象的方法来实现这个计算器。
以下是实现亲戚计算器的大致步骤:
1.定义一个 Person 类,用于存储人的姓名和亲戚关系。
2.使用 HashMap 来存储每个人的姓名和 Person 对象。
3.定义一个方法,用于将两个人之间的亲戚关系计算出来。可以使用递归算法来实现。
4.定义一个主方法,用于接收用户的输入并调用计算方法输出结果。
下面是一个简单的实现示例:
```
import java.util.HashMap;
import java.util.Map;
import java.util.Scanner;
public class RelativeCalculator {
private static Map<String, Person> people = new HashMap<>();
public static void main(String[] args) {
initPeople();
Scanner scanner = new Scanner(System.in);
System.out.print("请输入第一个人的姓名:");
String name1 = scanner.nextLine();
System.out.print("请输入第二个人的姓名:");
String name2 = scanner.nextLine();
Person person1 = people.get(name1);
Person person2 = people.get(name2);
if (person1 == null || person2 == null) {
System.out.println("输入的姓名不正确!");
} else {
String relationship = calculateRelationship(person1, person2);
System.out.println(name1 + " 和 " + name2 + " 的亲戚关系是:" + relationship);
}
}
private static void initPeople() {
people.put("爷爷", new Person("爷爷"));
people.put("奶奶", new Person("奶奶"));
people.put("爸爸", new Person("爸爸"));
people.put("妈妈", new Person("妈妈"));
people.put("哥哥", new Person("哥哥"));
people.put("弟弟", new Person("弟弟"));
people.put("姐姐", new Person("姐姐"));
people.put("妹妹", new Person("妹妹"));
Person father = people.get("爸爸");
Person mother = people.get("妈妈");
Person grandpa = people.get("爷爷");
Person grandma = people.get("奶奶");
Person elderBrother = people.get("哥哥");
Person youngerBrother = people.get("弟弟");
Person elderSister = people.get("姐姐");
Person youngerSister = people.get("妹妹");
father.setFather(grandpa);
father.setMother(grandma);
mother.setFather(grandpa);
mother.setMother(grandma);
elderBrother.setFather(father);
elderBrother.setMother(mother);
elderSister.setFather(father);
elderSister.setMother(mother);
youngerBrother.setFather(father);
youngerBrother.setMother(mother);
youngerSister.setFather(father);
youngerSister.setMother(mother);
}
private static String calculateRelationship(Person person1, Person person2) {
if (person1 == person2) {
return "同一个人";
}
if (person1.getFather() == person2.getFather()) {
if (person1.getFather() == null) {
return "没有亲戚关系";
} else if (person1.getMother() == person2.getMother()) {
return "兄弟姐妹";
} else {
return "堂兄弟堂姐妹";
}
}
if (person1.getMother() == person2.getMother()) {
if (person1.getFather() == null) {
return "没有亲戚关系";
} else if (person1.getFather() == person2.getFather()) {
return "兄弟姐妹";
} else {
return "堂兄弟堂姐妹";
}
}
if (person1.getFather() == person2) {
return "叔叔、阿姨";
}
if (person1.getMother() == person2) {
return "舅舅、姨";
}
if (person1.getFather() == person2.getMother()) {
return "姻亲关系";
}
if (person1.getMother() == person2.getFather()) {
return "姻亲关系";
}
return "没有亲戚关系";
}
static class Person {
private String name;
private Person father;
private Person mother;
public Person(String name) {
this.name = name;
}
public String getName() {
return name;
}
public Person getFather() {
return father;
}
public void setFather(Person father) {
this.father = father;
}
public Person getMother() {
return mother;
}
public void setMother(Person mother) {
this.mother = mother;
}
}
}
```
在这个示例中,我们定义了一个 Person 类来存储人的姓名和亲戚关系,使用 HashMap 来存储每个人的姓名和 Person 对象。我们还定义了一个方法 calculateRelationship,用于计算两个人之间的亲戚关系。在主方法中,我们接收用户的输入并调用计算方法输出结果。
这只是一个简单的示例,实际上亲戚关系比较复杂,需要根据实际情况进行相应的调整和修改。
相关推荐
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![docx](https://img-home.csdnimg.cn/images/20210720083331.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![-](https://csdnimg.cn/download_wenku/file_type_lunwen.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)