/* * Intro to Programming CSE 1310 * University of Texas at Arlington */ package spr17apr18grocsortcorrected; import java.io.PrintWriter; /** * * @author jcmtiernan */ public class Spr17Apr18SortSupport { public static void printGrocArray(double[][] grocNumbers, String[][] grocWords, int itemCount, PrintWriter outputDevice) { //System.out.println("In printGrocArray method"); int PRICE = 0; // column 0 in grocNumbers will hold the price int QUANT = 1; // column 1 in grocNumbers will hold the quantity int M = 2; int T = 3; int W = 4; int R = 5; int F = 6; int S = 7; int N = 8; int ITEMCOST = 9; int UNIT = 0; // column 0 in grocWords will hold the unit int NAME = 1; // column 1 in grocWords will hold the name for (int z = 0; z < itemCount; z++) { //System.out.println("In loop"); //outputDevice.println("In loop"); outputDevice.printf("%.2f per unit for %.0f",grocNumbers[z][PRICE], +grocNumbers[z][QUANT]); outputDevice.printf(" %s was %.2f for %s",grocWords[z][UNIT], grocNumbers[z][ITEMCOST], grocWords[z][NAME]); printDaily(grocNumbers[z], outputDevice); outputDevice.println(); } } public static double couponCalc( int yyyy, int mm, int dd, int y, int m, int d, double couponAmt, double coupValue) { boolean couponGood = false; if (yyyy > y) { couponGood = true; } else if ((yyyy == y) && (mm > m)) { couponGood = true; } else if ((yyyy == y) && (mm == m) && (dd >= d)) { couponGood = true; } if (couponGood) { couponAmt = couponAmt + coupValue; } else { System.out.println("The coupon date (DMY) "+dd+"/"+mm+"/"+yyyy+" is invalid"); } return couponAmt; } public static double inputCheck(boolean test, String item, double tempDouble, double defDouble) { if (test) { System.out.println("This is an invalid "+item+"."); System.out.println("Default "+item+" of "+defDouble+" will be used."); return defDouble; } else { return tempDouble; } } public static String removeBlanks(String inString) { while (inString.charAt(0) == ' ') { inString = inString.substring(1); //System.out.println("Removing blank in name["+i+"]"); } return inString; } public static void printDaily(double[] grocNumbers, PrintWriter outputDevice) { //outputDevice.println("printDaily called"); int M = 2; int T = 3; int W = 4; int R = 5; int F = 6; int S = 7; int N = 8; outputDevice.printf("\nnumber purchased on Monday was %.0f,",grocNumbers[M]); outputDevice.printf(" on Tuesday was %.0f,",grocNumbers[T]); outputDevice.printf(" Wednesday %.0f,",grocNumbers[W]); outputDevice.printf(" Thurs. %.0f,",grocNumbers[R]); outputDevice.printf(" Fri. %.0f,",grocNumbers[F]); outputDevice.printf(" Sat. %.0f,",grocNumbers[S]); outputDevice.printf(" and Sun. %.0f.\n",grocNumbers[N]); } public static void outputMsg(double couponAmt, double groceryBill, int itemCount, double highestPrice, double largestQuantity, boolean inFileFound, String highestPriceName, String largestQuantityUnit, String largestQuantityName, PrintWriter outputDevice) { //****Make output method to use for screen and for output file outputDevice.println(); outputDevice.printf("Coupon savings is : %.2f \n\n",couponAmt); outputDevice.printf("Original Grocery bill is : %.2f \n",groceryBill); outputDevice.printf("Final Grocery bill is : %.2f \n\n",(groceryBill -= couponAmt)); outputDevice.println("Item count is "+itemCount); // ****Print Highest price and Largest quantity with items names/units outputDevice.print("Highest price is "+highestPrice); if (inFileFound) { outputDevice.print(" for item "+highestPriceName); } outputDevice.println(); outputDevice.printf("Largest quantity is %d",(int)largestQuantity); if (inFileFound) { outputDevice.print(" "+largestQuantityUnit+" of "+largestQuantityName); } outputDevice.println(""); } }