Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import java.text.DecimalFormat;
- import java.util.ArrayList;
- import java.util.Scanner;
- public class Order {
- String type;
- String content;
- boolean colored;
- double totalCost;
- String coloredType;
- static double completeCost;
- static ArrayList<Order> orders = new ArrayList<Order>();
- static Scanner input = new Scanner(System.in);
- static String[] incomingOrder = new String[3];
- static DecimalFormat df = new DecimalFormat("0.00");
- Order(String type, String content, boolean colored, double totalCost) {
- this.type = type;
- this.content = content;
- this.colored = colored;
- this.totalCost = totalCost;
- if (colored) {
- coloredType = "colored";
- } else {
- coloredType = "black and white";
- }
- }
- static void promptOrder() {
- System.out.print("Would you like to place an order? (Y/N): ");
- switch (input.nextLine().toLowerCase()) {
- case "y":
- getType();
- break;
- case "n":
- printOrder();
- break;
- default:
- System.out.println("Sorry, didn't catch that. Please try again.");
- promptOrder();
- break;
- }
- }
- static void getType() {
- System.out.print("What type of sign would you like? (wood / plastic): ");
- switch (input.nextLine().toLowerCase()) {
- case "plastic":
- incomingOrder[0] = "plastic";
- getContent();
- break;
- case "wood":
- incomingOrder[0] = "wood";
- getContent();
- break;
- default:
- System.out.println("Sorry, didn't catch that. Please try again.");
- getType();
- break;
- }
- }
- static void getContent() {
- System.out.print("What would you like the sign to say? ");
- incomingOrder[1] = input.nextLine();
- isColored();
- }
- static void isColored() {
- System.out.println("Would you like the sign to be colored? (Y/N): ");
- switch (input.nextLine().toLowerCase()) {
- case "y":
- incomingOrder[2] = "y";
- placeOrder();
- break;
- case "n":
- incomingOrder[2] = "n";
- placeOrder();
- break;
- default:
- System.out.println("Sorry, didn't catch that. Please try again.");
- isColored();
- break;
- }
- }
- static void placeOrder() {
- boolean colored;
- double totalCost = 20;
- String coloredType;
- if (incomingOrder[2].equals("y")) {
- colored = true;
- coloredType = "colored";
- } else {
- colored = false;
- coloredType = "black and white";
- }
- if (incomingOrder[1].length() > 5) {
- totalCost += (incomingOrder[1].length() - 5) * 2;
- }
- if (colored) {
- totalCost += 8;
- }
- if (incomingOrder[0].equals("wood")) {
- totalCost += 10;
- } else {
- totalCost += 5;
- }
- completeCost += totalCost;
- System.out.printf("Order placed for a %s %s sign for $%s\n", incomingOrder[0].toLowerCase(), coloredType, df.format(totalCost));
- orders.add(new Order(incomingOrder[0], incomingOrder[1], colored, totalCost));
- promptOrder();
- }
- static void printOrder() {
- if (completeCost > 100) {
- completeCost *= .75;
- }
- System.out.printf("Printing complete order form (total of $%s)\n", df.format(completeCost));
- Order currentOrder;
- for (int i = 0; i < orders.size(); i++) {
- currentOrder = orders.get(i);
- 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));
- }
- }
- public static void main(String[] args) {
- promptOrder();
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement