// R15 solution // Author: Chris Wilcox // Date: 4/9/2015 // Class: CS160 import java.io.File; import java.io.FileNotFoundException; import java.io.PrintWriter; import java.util.Scanner; public class R15 { public static void main(String[] args) { readFile(args[0]); writeFile(args[1]); } public static void readFile(String inputFile) { double area, radius, width, height, base; try { Scanner reader = new Scanner(new File(inputFile)); while (reader.hasNext()) { String shape = reader.next().toUpperCase(); switch (shape) { case "CIRCLE": radius = reader.nextDouble(); area = computeAreaCircle(radius); System.out.printf("Circle: radius = %.2f, area = %.2f\n", radius, area); break; case "RECTANGLE": width = reader.nextDouble(); height = reader.nextDouble(); area = computeAreaRectangle(width, height); System.out.printf("Rectangle: width = %.2f, height = %.2fm area = %.2f\n", width, height, area); break; case "TRIANGLE": height = reader.nextDouble(); base = reader.nextDouble(); area = computeAreaTriangle(height, base); System.out.printf("Triangle: base = %.2f, height = %.2f, area = %.2f\n", base, height, area); break; } } // Not critical, but a good idea. reader.close(); } catch (FileNotFoundException e) { System.out.println("Cannot read " + inputFile); System.exit(0); } } public static void writeFile(String outputFile) { try { PrintWriter writer = new PrintWriter(new File(outputFile)); Scanner keyboard = new Scanner(System.in); System.out.println("Enter text:"); while (true) { String line = keyboard.nextLine(); if (line.equalsIgnoreCase("stop")) break; writer.println(line); } // Important, writes the file! writer.close(); } catch (FileNotFoundException e) { System.out.println("ERROR!"); System.exit(0); } } public static double computeAreaCircle(double radius) { return Math.PI * radius * radius; } public static double computeAreaRectangle(double height, double width) { return width * height; } public static double computeAreaTriangle(double height, double base) { return (height * base) / 2.0; } }