⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 gourmetcoffee.java

📁 Patterns in the Gourmet Coffee System
💻 JAVA
字号:
import java.io.*;
import java.util.*;
import java.io.IOException;

public class GourmetCoffee {

	private static BufferedReader  stdIn =
		new  BufferedReader(new  InputStreamReader(System.in));
	private static PrintWriter  stdOut = new  PrintWriter(System.out, true);
	private static PrintWriter  stdErr = new  PrintWriter(System.err, true);

	private Sales  sales;

	private static SalesFormatter  salesFormatter;
	
	public static void main(String[] args) throws IOException{
		
	}
	private GourmetCoffee(){

		this.sales = new Sales();
		this.salesFormatter = 
			PlainTextSalesFormatter.getSingletonInstance();

		loadSales(loadCatalog());
		
		
	}
	private Catalog loadCatalog(){
		
		Catalog catalog = new Catalog();
		catalog.addProduct(
				new Coffee("C001", "Colombia, Whole, 1 lb", 17.99,
					"Colombia", "Medium", "Rich and Hearty", "Rich",
					"Medium", "Full"));
		catalog.addProduct(
				new Coffee("C002", "Colombia, Ground, 1 lb", 18.75,
					"Colombia", "Medium", "Rich and Hearty", "Rich",
					"Medium","Full"));
			catalog.addProduct(
				new Coffee("C003", "Italian Roasts, Whole, 1 lb",
					16.80, "Latin American Blend", "Italian Roast",
					"Dark and heavy", "Intense", "Low", "Medium"));
			catalog.addProduct(
				new Coffee("C004", "Italian Roasts, Ground, 1 lb",
					17.55, "Latin American Blend", "Italian Roast",
					"Dark and heavy", "Intense", "Low", "Medium"));
			catalog.addProduct(
				new Coffee("C005", "French Roasts, Whole, 1 lb",
					16.80, "Latin American Blend", "French Roast",
					"Bittersweet, full intense", "Intense, full", "None", "Medium"));
			catalog.addProduct(
				new Coffee("C006", "French Roasts, Ground, 1 lb",
					17.55, "Latin American Blend", "French Roast",
					"Bittersweet, full intense", "Intense, full", "None", "Medium"));
			catalog.addProduct(
				new Coffee("C007", "Guatemala, Ground, 1 lb", 17.99,
					"Guatemala", "Medium", "Rich and complex", "Spicy",
					"Medium to high", "Medium to full"));
			catalog.addProduct(
				new Coffee("C008", "Guatemala, Ground, 1 lb", 18.75,
					"Guatemala", "Medium", "Rich and complex", "Spicy",
					"Medium to high", "Medium to full"));
			catalog.addProduct(
				new Coffee("C009", "Guatemala, Whole, 1 lb", 19.99,
					"Sumatra", "Medium", "Vibrant and powdery",
					"Like dark chocolate", "Gentle", "Rich and full"));
			catalog.addProduct(
				new Coffee("C010", "Guatemala, Ground, 1 lb", 20.50,
					"Sumatra", "Medium", "Vibrant and powdery",
					"Like dark chocolate", "Gentle", "Rich and full"));
			catalog.addProduct(
				new Coffee("C011", "Special Blend, Whole, 1 lb",
					16.80, "Latin American Blend", "Dark roast",
					"Full, roasted flavor", "Hearty", "Bold and rich", "Full"));
			catalog.addProduct(
				new Coffee("C012", "Special Blend, Ground, 1 lb",
					17.55, "Latin American Blend", "Dark roast",
					"Full, roasted flavor", "Hearty", "Bold and rich", "Full"));

			catalog.addProduct(
				new CoffeeBrewer("B001", "Home Coffee Brewer",
					150.00, "Brewer 100", "Pourover", 6));
			catalog.addProduct(
				new CoffeeBrewer("B002", "Coffee Brewer, 2 Warmers",
					200.00, "Brewer 200", "Pourover", 12));
			catalog.addProduct(
				new CoffeeBrewer("B003", "Coffee Brewer, 3 Warmers",
					280.00, "Brewer 210", "Pourover", 12));
			catalog.addProduct(
				new CoffeeBrewer("B004", "Commercial Brewer, 20 cups",
					380.00, "Quick Coffee 100", "Automatic", 20));
			catalog.addProduct(
				new CoffeeBrewer("B005", "Commercial Brewer, 40 cups",
					480.00, "Quick Coffee 200", "Automatic", 40));

			catalog.addProduct(
				new Product("A001", "Almond Flavored Syrup", 9.00));
			catalog.addProduct(
				new Product("A002", "Irish Creme Flavored Syrup", 9.00));
			catalog.addProduct(
				new Product("A003", "Mint Flavored syrup", 9.00));
			catalog.addProduct(
				new Product("A004", "Caramel Flavored Syrup", 9.00));
			catalog.addProduct(
				new Product("A005", "Gourmet Coffee Cookies", 12.00));
			catalog.addProduct(
				new Product("A006", "Gourmet Coffee Travel Thermo", 18.00));
			catalog.addProduct(
				new Product("A007", "Gourmet Coffee Ceramic Mug", 8.00));
			catalog.addProduct(
				new Product("A008", "Gourmet Coffee 12 Filters", 15.00));
			catalog.addProduct(
				new Product("A009", "Gourmet Coffee 36 Filters", 45.00));

			return catalog;
		
	}
	private void loadSales(Catalog catalog){


		Order orderOne = new Order();

		orderOne.addItem(new OrderItem(catalog.getProduct("C001"), 5));
		this.sales.addOrder(orderOne);

		Order orderTwo = new Order();

		orderTwo.addItem(new OrderItem(catalog.getProduct("C002"), 2));
		orderTwo.addItem(new OrderItem(catalog.getProduct("A001"), 2));
		this.sales.addOrder(orderTwo);

		Order orderThree = new Order();

		orderThree.addItem(new OrderItem(catalog.getProduct("B002"), 1));
		this.sales.addOrder(orderThree);
		
	}
	private int getChoice() throws IOException{
		
		int  input;

		do  {
			try  {
				stdErr.println();
				stdErr.print("[0]  Quit\n"
				             + "[1]  Display sales (Plain Text)\n"
				             + "[2]  Display sales (HTML)\n"
				             + "[3]  Display sales (XML)\n"
				             + "choice> ");
				stdErr.flush();

				input = Integer.parseInt(stdIn.readLine());

				stdErr.println();

				if (0 <= input && 3 >= input)  {
					break;
				} else {
					stdErr.println("Invalid choice:  " + input);
				}
			} catch (NumberFormatException  nfe)  {
				stdErr.println(nfe);
			}
		}  while (true);

		return  input;
		
	}
	private static GourmetCoffee setSalesFormatter(SalesFormatter newFormatter){
		
		return null;
		
		
	}
	private static void displaySales(){
		
		 stdOut.println(Sales.formatBorrowers(salesFormatter));
		
	}
	private void run() throws IOException{
		
		int  choice = getChoice();

		while (choice != 0)  {

			if (choice == 1)  {
				
			GourmetCoffee singletonInstance = GourmetCoffee.setSalesFormatter(salesFormatter);
			
			GourmetCoffee.displaySales();
				
			} else if (choice == 2)  {

				GourmetCoffee singletonInstance = GourmetCoffee.PlainTextSalesFormatter(salesFormatter);
				
				GourmetCoffee.displaySales();

			} else if (choice == 3)  {

				GourmetCoffee singletonInstance = GourmetCoffee.XMLTextSalesFormatter(salesFormatter);
				
				GourmetCoffee.displaySales();
				
			}

			choice = getChoice();
		
	}
		
	}
	private static GourmetCoffee XMLTextSalesFormatter(SalesFormatter salesFormatter2) {
	
		return null;
	}
	private static GourmetCoffee PlainTextSalesFormatter(SalesFormatter salesFormatter2) {
	
		return null;
	}
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -