Advertisement
nazar_art

AbsFigure

Dec 20th, 2012
177
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 3.66 KB | None | 0 0
  1. package task.to.soft;
  2.  
  3. import java.io.*;
  4. import java.util.*;
  5.  
  6. abstract class FigureGeneral {
  7.     private double width;
  8.     private double height;
  9.     private String name;
  10.    
  11.     FigureGeneral(double width, double height, String name){
  12.         this.width = width;
  13.         this.height = height;
  14.         this.name = name;
  15.     }
  16.    
  17.     double getWidth(){ return width; }
  18.     double getHeight(){ return height; }
  19.     void setWidth(double width){ this.width = width; }
  20.     void setHeight(double height){ this.height = height; }
  21.    
  22.     String getName(){ return name; }
  23.    
  24.     abstract public double area();
  25. }
  26.  
  27. class Rectangle extends FigureGeneral {
  28.    
  29.     Rectangle(double width, double height, String name) {
  30.         super(width, height, "rectangle");
  31.     }
  32.  
  33.     public double area() {
  34.         return getWidth() * getHeight();
  35.     }
  36. }
  37.  
  38. class Triangle extends FigureGeneral {
  39.        
  40.     Triangle(double width, double height, String name) {
  41.         super(width, height, "triangle");
  42.        
  43.        
  44.     }
  45.  
  46.     public double area() {
  47.         return (getWidth() * getHeight()) / 2;
  48.     }
  49. }
  50.  
  51. class FigureReader {
  52.    
  53.         public ArrayList<FigureGeneral> readFromFile(String fileName) {
  54.    
  55.         ArrayList<FigureGeneral> list = new ArrayList<FigureGeneral>();
  56.         try{
  57.             File myFile = new File("test.txt");
  58.             BufferedReader reader = new BufferedReader(new FileReader(myFile));
  59.            
  60.             String line = null;
  61.            
  62.             while((line = reader.readLine()) != null) {
  63.                 System.out.println(line);
  64.                 String[] lineElements = line.split(", ");
  65.                 FigureGeneral el;
  66.                
  67.                 double x = Double.parseDouble(lineElements[1]);
  68.                 double y = Double.parseDouble(lineElements[2]);
  69.                 String name = lineElements[0];
  70.                
  71.                 if((lineElements[0]).equals("triangle"))el =
  72.                         new Triangle(x, y, name);
  73.                 else el = new Rectangle(x, y, name);
  74.                 list.add(el);
  75.             }
  76.             reader.close();
  77.         }catch(Exception exc){
  78.             exc.printStackTrace();
  79.         }
  80.         return list;
  81.         }
  82.        
  83.         public String fromFigureGeneralToString(FigureGeneral figure){
  84.             return null;
  85.             }
  86. }
  87.  
  88. class CollectionToFile {
  89.     public void saveToFile(List<FigureGeneral> figureList, String fileName){
  90.         try {
  91.             FileWriter writer = new FileWriter(new File(fileName));
  92.             writer.write(figureList.toString() + "\n");
  93.             writer.close();
  94.         } catch (IOException ex) {
  95.             System.out.println("Can't write to file!");
  96.             ex.printStackTrace();
  97.         }
  98.     }
  99. }
  100.  
  101. class CollectionFromFile {
  102.     @SuppressWarnings({ "rawtypes", "unchecked", "resource" })
  103.     public ArrayList<FigureGeneral> fromStringToFigureGeneral(String line){
  104.         ArrayList<FigureGeneral> list = new ArrayList<FigureGeneral>();
  105.         try {
  106.                 File myFile = new File(line);
  107.                 FileReader fileReader = new FileReader(myFile);
  108.                 BufferedReader reader = new BufferedReader(fileReader);
  109.                 String line1 = reader.readLine();
  110.                 line1 = line1.substring(1, line1.length() - 1);
  111.                 list = new ArrayList(Arrays.asList(line1.split(", ")));
  112.                 return list;
  113.         } catch (Exception ex) {
  114.                 System.out.println(ex.getMessage());
  115.         }
  116.         return list;
  117.         }
  118. }
  119.  
  120. public class AbsFigure {
  121.  
  122.     /**
  123.      * @param args
  124.      * @throws IOException
  125.      */
  126.     public static void main(String[] args) {
  127.        
  128.         FigureGeneral figures[] = new FigureGeneral[2];
  129.         figures[0] = new Triangle(8.0, 12.0, "triangle right");
  130.         figures[1] = new Rectangle(10, 4, "rectangle");
  131.        
  132.         for(int i = 0; i < figures.length; i++ ){
  133.             System.out.print("Object is " + figures[i].getName());
  134.             System.out.println(" Area is " + figures[i].area());
  135.         }
  136.     }
  137. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement