// FigureProg
// Barry Cornelius, 25th February 2000
import java.util. ArrayList;
import java.io.   BufferedReader;
import java.io.   FileReader;
import java.io.   IOException;
import java.util. Iterator;
import java.util. List;
public class FigureProg
{
   public  static void main(final String[] pArgs) throws IOException
   {
      final String tFilename = "FigureProg.data";
      List tList = new ArrayList();
      BufferedReader tInputHandle =
            new BufferedReader(new FileReader(tFilename));
      while (true)
      {
         String tLine = tInputHandle.readLine();
         if (tLine==null)
         {
   	    break;
         }
	 final int tKind = Integer.parseInt(tLine);
	 switch (tKind)
	 {
	    case 1:
	    {
               tLine = tInputHandle.readLine();
	       final double tRadius = Double.parseDouble(tLine);
	       final Circle tCircle = new Circle(tRadius); 
	       tList.add(tCircle);
	    }
	    break;
	    case 2:
	    {
               tLine = tInputHandle.readLine();
	       final double tWidth = Double.parseDouble(tLine);
               tLine = tInputHandle.readLine();
	       final double tHeight = Double.parseDouble(tLine);
	       final Rectangle tRectangle = new Rectangle(tWidth, tHeight);
	       tList.add(tRectangle);
	    }
	    break;
	    default:
	    {
	       System.out.println("unknown kind of figure");
	       System.exit(1);
	    }
	 }
      }
      final Iterator tIterator = tList.iterator();
      while (tIterator.hasNext())
      {
	 Figure tFigure = (Figure)tIterator.next();
	 System.out.println(tFigure + " " + tFigure.area() +
				      " " + tFigure.perimeter());
      }
   }
}
