创建一个Person类和一个Family类。其中,
Person类包含编号id(整型)、名字name(字符串)、性别gender(字符串)三个属性,和一个初始化对象所有属性的有参构造方法,一个将其信息转换为“id-name-gender”格式字符串的toString方法;
Family类具有地址address(字符串)和家庭成员(ArrayList)两个属性,和一个初始化家庭住址的有参构造方法,一个添加家庭成员的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.Iterator;
import java.util.Scanner;
public class Family {
private String address;
private ArrayList<Person> p=new ArrayList<Person>();
public Family(String iniAddress){
address=iniAddress;
}
public void addMember(){
Scanner in=new Scanner(System.in);
int i=0;
do{
i=in.nextInt();
if(i==-1){
break;
}else{
String n=in.next();
String g=in.next();
Person pe=new Person(i,n,g);
p.add(pe);
}
}while(true);
}
public void print(){
System.out.println(address);
System.out.println(getSize());
Iterator i=p.iterator();
while (i.hasNext()){
System.out.println(i.next());
}
}
public int getSize() {
return p.size();
}
public static void main(String[] args) {
Scanner in=new Scanner(System.in);
String a=in.nextLine();
Family f1=new Family(a);
f1.addMember();
String b=in.nextLine();
Family f2=new Family(b);
f2.addMember();
f1.print();
f2.print();
}
}
public class Person {
int ID;
String Name;
String Gender;
public Person(int iniID,String iniName,String iniGender){
ID=iniID;
Name=iniName;
Gender=iniGender;
}
public String toString(){
return ID+"-"+Name+"-"+Gender;
}
}