Advertisement
Guest User

Order Java class (Y/A)

a guest
Oct 9th, 2014
234
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 3.32 KB | None | 0 0
  1. import java.text.DecimalFormat;
  2. import java.util.ArrayList;
  3. import java.util.Scanner;
  4.  
  5. public class Order {
  6.     String type;
  7.     String content;
  8.     boolean colored;
  9.     double totalCost;
  10.     String coloredType;
  11.     static double completeCost;
  12.     static ArrayList<Order> orders = new ArrayList<Order>();
  13.     static Scanner input = new Scanner(System.in);
  14.     static String[] incomingOrder = new String[3];
  15.     static DecimalFormat df = new DecimalFormat("0.00");
  16.    
  17.     Order(String type, String content, boolean colored, double totalCost) {
  18.         this.type = type;
  19.         this.content = content;
  20.         this.colored = colored;
  21.         this.totalCost = totalCost;
  22.         if (colored) {
  23.             coloredType = "colored";
  24.         } else {
  25.             coloredType = "black and white";
  26.         }
  27.     }
  28.    
  29.     static void promptOrder() {
  30.         System.out.print("Would you like to place an order? (Y/N): ");
  31.         switch (input.nextLine().toLowerCase()) {
  32.         case "y":
  33.             getType();
  34.             break;
  35.         case "n":
  36.             printOrder();
  37.             break;
  38.         default:
  39.             System.out.println("Sorry, didn't catch that. Please try again.");
  40.             promptOrder();
  41.             break;
  42.         }
  43.     }
  44.     static void getType() {
  45.         System.out.print("What type of sign would you like? (wood / plastic): ");
  46.         switch (input.nextLine().toLowerCase()) {
  47.         case "plastic":
  48.             incomingOrder[0] = "plastic";
  49.             getContent();
  50.             break;
  51.         case "wood":
  52.             incomingOrder[0] = "wood";
  53.             getContent();
  54.             break;
  55.         default:
  56.             System.out.println("Sorry, didn't catch that. Please try again.");
  57.             getType();
  58.             break;
  59.         }
  60.     }
  61.     static void getContent() {
  62.         System.out.print("What would you like the sign to say? ");
  63.         incomingOrder[1] = input.nextLine();
  64.         isColored();
  65.     }
  66.     static void isColored() {
  67.         System.out.println("Would you like the sign to be colored? (Y/N): ");
  68.         switch (input.nextLine().toLowerCase()) {
  69.         case "y":
  70.             incomingOrder[2] = "y";
  71.             placeOrder();
  72.             break;
  73.         case "n":
  74.             incomingOrder[2] = "n";
  75.             placeOrder();
  76.             break;
  77.         default:
  78.             System.out.println("Sorry, didn't catch that. Please try again.");
  79.             isColored();
  80.             break;
  81.         }
  82.     }
  83.     static void placeOrder() {
  84.         boolean colored;
  85.         double totalCost = 20;
  86.         String coloredType;
  87.         if (incomingOrder[2].equals("y")) {
  88.             colored = true;
  89.             coloredType = "colored";
  90.         } else {
  91.             colored = false;
  92.             coloredType = "black and white";
  93.         }
  94.         if (incomingOrder[1].length() > 5) {
  95.             totalCost += (incomingOrder[1].length() - 5) * 2;
  96.         }
  97.         if (colored) {
  98.             totalCost += 8;
  99.         }
  100.         if (incomingOrder[0].equals("wood")) {
  101.             totalCost += 10;
  102.         } else {
  103.             totalCost += 5;
  104.         }
  105.         completeCost += totalCost;
  106.         System.out.printf("Order placed for a %s %s sign for $%s\n", incomingOrder[0].toLowerCase(), coloredType, df.format(totalCost));
  107.         orders.add(new Order(incomingOrder[0], incomingOrder[1], colored, totalCost));
  108.         promptOrder();
  109.     }
  110.     static void printOrder() {
  111.         if (completeCost > 100) {
  112.             completeCost *= .75;
  113.         }
  114.         System.out.printf("Printing complete order form (total of $%s)\n", df.format(completeCost));
  115.         Order currentOrder;
  116.         for (int i = 0; i < orders.size(); i++) {
  117.             currentOrder = orders.get(i);
  118.             System.out.printf("Order %s: %s %s sign containing %s characters for the cost of $%s\n", i, currentOrder.type, currentOrder.coloredType, currentOrder.content.length(), df.format(currentOrder.totalCost));
  119.         }
  120.     }
  121.     public static void main(String[] args) {
  122.         promptOrder();
  123.     }
  124. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement