题目内容:
创建一个Person类和一个Family类。其中,
Person类包含编号id(整型)、名字name(字符串)、性别gender(字符串)三个属性,和一个初始化对象所有属性的有参构造方法,一个将其信息转换为“id-name-gender”格式字符串的toString方法;
Family类具有地址address(字符串)和家庭成员(ArrayList<Person>)两个属性,和一个初始化家庭住址的有参构造方法,一个添加家庭成员的addMember方法,和一个输出家庭信息的print方法。输出家庭信息的格式为,第一行为家庭住址,第二行为家庭成员数量,第三行开始每一行是一位家庭成员的信息,以“id-name-gender”格式显示。
编写测试类Main。创建两个家庭,并向其中添加家庭成员,以id为-1表示家庭成员录入结束。所有家庭信息录入结束后,调用Family对象的print方法依次输出每个家庭的信息。
输入格式:
每行依次输入家庭住址,每个家庭成员的编号、性能和性别。编号输入-1时,表示当前家庭的成员输入结束。
输出格式:
依次输出每个家庭的信息,第一行为家庭住址,第二行为家庭成员数量,第三行开始以“id-name-gender”格式显示当前家庭每个成员的信息。按照这种方式循环输出每个家庭的信息。
输入样例:
nanhu 123
1
betty
female
-1
chuangxin road 123
1
mike
male
2
bob
male
-1
输出样例:
nanhu 123
1
1-betty-female
chuangxin road 123
2
1-mike-male
2-bob-male
import java.util.ArrayList;
import java.util.Scanner;
class Person
{
private int id;
private String name;
private String gender;
Person(int iniId,String iniName,String iniGender)
{
id=iniId;
name=iniName;
gender=iniGender;
}
public String toString() {
return id+"-"+name+"-"+gender;
}
}
class Family
{
private String address;
private ArrayList<Person> family=new ArrayList<Person>();
public Family(String iniFamily)
{
address=iniFamily;
}
public void addMember(int iniId,String iniName,String iniGender)
{
Person a=new Person(iniId, iniName, iniGender);
family.add(a);
}
public void print()
{
System.out.println(address);
System.out.println(family.size());
for(Person x:family)
{
System.out.println(x.toString());
}
}
}
public class Main {
public static void main(String[] args) {
Scanner in=new Scanner(System.in);
Family a=new Family(in.nextLine());
int id=Integer.parseInt(in.nextLine());
if(id==-1)
{
}
else
{
while(true)
{
String name=in.nextLine();
String gender=in.nextLine();
a.addMember(id,name,gender);
int decision=Integer.parseInt(in.nextLine());
if(decision==-1)
{
break;
}
else
{
id=decision;
}
}
}
Family b=new Family(in.nextLine());
id=Integer.parseInt(in.nextLine());
if(id==-1)
{
}
else
{
while(true)
{
String name=in.nextLine();
String gender=in.nextLine();
b.addMember(id,name,gender);
int decision=Integer.parseInt(in.nextLine());
if(decision==-1)
{
break;
}
else
{
id=decision;
}
}
}
a.print();
b.print();
in.close();
}
}