《JAVA练习题目9》 创建一个Person类和一个Family类。(这次的OJ实在写的没有状态,被样例搞崩了,这次代码还有好多代码复制等一系列不良现象,就是为了过OJ写的。。大家凑活看一下吧)

题目内容:

创建一个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();
	}

}
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值