I have been scrounging about, trying to get to compile this properly, but I get a stupid error message at the end.
I also do not know how to implement an accumulator into the methods, could someone at least teach me how to implement one? Into Main, or just a separate method?
Thanks for any help.
import java.util.Scanner;
public class OrderSystem {
/**
*
*
*
*/
private static final Scanner scanner = new Scanner(System.in);
// Books
public static final int BOOKS_NUM = 1;
public static final String BOOKS_NAME = "Books";
public static final int POTTER_NUM = 1;
public static final String POTTER_NAME = "Harry Potter";
public static final double POTTER_PRICE = 19.99;
public static final int INKHEART_NUM = 2;
public static final String INKHEART_NAME = "Inkheart";
public static final double INKHEART_PRICE = 8.29;
public static final int HOBBIT_NUM = 3;
public static final String HOBBIT_NAME = "The Hobbit";
public static final double HOBBIT_PRICE = 12.50;
public static final int HOWL_NUM = 4;
public static final String HOWL_NAME = "Howl's Moving Castle";
public static final double HOWL_PRICE = 22.00;
// Movies
public static final int MOVIES_NUM = 2;
public static final String MOVIES_NAME = "Movies";
public static final int MER_NUM = 1;
public static final String MER_NAME = "The Little Mermaid";
public static final double MER_PRICE = 16.89;
public static final int ALADDIN_NUM = 2;
public static final String ALADDIN_NAME = "Aladdin";
public static final double ALADDIN_PRICE = 14.33;
public static final int LION_NUM = 3;
public static final String LION_NAME = "The Lion King";
public static final double LION_PRICE = 14.62;
public static final int BEAST_NUM = 4;
public static final String BEAST_NAME = "Beauty and the Beast";
public static final double BEAST_PRICE = 17.70;
// Music
public static final int MUSIC_NUM = 3;
public static final String MUSIC_NAME = "Music";
public static final int HANSON_NUM = 1;
public static final String HANSON_NAME = "Hanson / Middle of Nowhere";
public static final double HANSON_PRICE = 21.30;
public static final int IRON_NUM = 2;
public static final String IRON_NAME = "Iron Maiden / Live After Death";
public static final double IRON_PRICE = 23.19;
public static final int METAL_NUM = 3;
public static final String METAL_NAME = "Metallica / Metallica";
public static final double METAL_PRICE = 15.00;
public static final int LADY_NUM = 4;
public static final String LADY_NAME = "Lady Gaga / The Fame Monster";
public static final double LADY_PRICE = 29.15;
public static final double books = 0, movies = 0, music = 0;
public static final double numItems = books + movies + music;
public static final double booksPrice = POTTER_PRICE + INKHEART_PRICE + HOBBIT_PRICE + HOWL_PRICE;
public static final double moviesPrice = MER_PRICE + ALADDIN_PRICE + LION_PRICE + BEAST_PRICE;
public static final double musicPrice = HANSON_PRICE + IRON_PRICE + METAL_PRICE + LADY_PRICE;
public static final double numBooks =+ books;
public static final double numMovies =+ movies;
public static final double numMusic =+ music;
public static final double booksAverage = booksPrice / numBooks;
public static final double moviesAverage = moviesPrice / numMovies;
public static final double musicAverage = musicPrice / numMusic;
public static final double displayTaxRate() {
double taxRate = 0.00;
do {
System.out.printf("%s", "What is the tax rate for this transaction (in percent)? ");
taxRate = scanner.nextDouble();
if(taxRate > 100.00 || taxRate < 0.00){
System.out.printf("%s", "Tax rate must be between 0 and 100.\n");
}
else {
taxRate /= 100;
return taxRate;
}
}
while (true);
}
public static final int displayWholeMenu() {
int categoryChoice = 0;
do {
System.out.printf("%d. %-20s\n", BOOKS_NUM, BOOKS_NAME);
System.out.printf("%d. %-20s\n", MOVIES_NUM, MOVIES_NAME);
System.out.printf("%d. %-20s\n", MUSIC_NUM, MUSIC_NAME);
System.out.printf("%s", "Choice: ");
categoryChoice = scanner.nextInt();
if(categoryChoice == 1 || categoryChoice == 2 || categoryChoice == 3){
return categoryChoice;
} else if (categoryChoice < 1 || categoryChoice > 3) {
boolean user1 = userInput1();
continue;
}
}
while (true);
}
public static final int displayCatBooks() {
int books = 0;
do {
System.out.printf("%d. %-20s\n", POTTER_NUM, POTTER_NAME, POTTER_PRICE);
System.out.printf("%d. %-20s\n", INKHEART_NUM, INKHEART_NAME, INKHEART_PRICE);
System.out.printf("%d. %-20s\n", HOBBIT_NUM, HOBBIT_NAME, HOBBIT_PRICE);
System.out.printf("%d. %-20s\n", HOWL_NUM, HOWL_NAME, HOWL_PRICE);
System.out.printf("%s", "Choose an item: ");
books = scanner.nextInt();
if(books == 1 || books == 2 || books == 3 || books == 4){
boolean user2 = userInput1();
return books;
} else if (books < 1 || books > 4) {
continue;
}
}
while (true);
}
public static final int displayCatMovies(){
int movies = 0;
do {
System.out.printf("%d. %-20s\n", MER_NUM, MER_NAME, MER_PRICE);
System.out.printf("%d. %-20s\n", ALADDIN_NUM, ALADDIN_NAME, ALADDIN_PRICE);
System.out.printf("%d. %-20s\n", LION_NUM, LION_NAME, LION_PRICE);
System.out.printf("%d. %-20s\n", BEAST_NUM, BEAST_NAME, BEAST_PRICE);
System.out.printf("%s", "Choose an item: ");
movies = scanner.nextInt();
if(movies == 1 || movies == 2 || movies == 3 || movies == 4){
boolean user3 = userInput1();
return movies;
} else if (movies < 1 || movies > 4) {
continue;
}
}
while (true);
}
public static final int displayCatMusic(){
int music = 0;
do {
System.out.printf("%d. %-20s\n", HANSON_NUM, HANSON_NAME, HANSON_PRICE);
System.out.printf("%d. %-20s\n", IRON_NUM, IRON_NAME, IRON_PRICE);
System.out.printf("%d. %-20s\n", METAL_NUM, METAL_NAME, METAL_PRICE);
System.out.printf("%d. %-20s\n", LADY_NUM, LADY_NAME, LADY_PRICE);
System.out.printf("%s", "Choose an item: ");
music = scanner.nextInt();
if(music == 1 || music == 2 || music == 3 || music == 4){
boolean user4 = userInput1();
return music;
} else if (music < 1 || music > 4) {
continue;
}
}
while (true);
}
public static boolean userInput1(){
System.out.print("Would you like another item? (y/n) ");
if('y' == scanner.next().charAt(0)) {// returns true if they typed y, else false
return true;
}
return false;
}
public static boolean userInput2(){
System.out.print("Would you like to place another order? (y/n) ");
if('y' == scanner.next().charAt(0)) {// returns true if they typed y, else false
return true;
}
return false;
}
public static void displayOrderSummary(){
System.out.printf("%s", "Order Summary:\n");
System.out.printf("%d Books(s) $ %2.2f / Average $ %2.2f\n" , numBooks , booksPrice , booksAverage);
System.out.printf("%d Movie(s) $ %2.2f / Average $ %2.2f\n" , numMovies , moviesPrice , moviesAverage);
System.out.printf("%d CD(s) $ %2.2f / Average $ %2.2f\n" , numMusic , musicPrice , musicAverage);
}
public static final double displaySubTotal(double booksPrice, double moviesPrice, double musicPrice){
return booksPrice + moviesPrice + musicPrice;
}
public static final double displayTax(double subTotal, double taxRate){
return subTotal * taxRate;
}
public static final double displayTotalPrice(double subTotal, double tax){
return subTotal + tax;
}
public static final double displayAveragePrice(double totalPrice, double numItems){
return totalPrice / numItems;
}
public static void main(String args[]) throws Exception {
System.out.println("This is order processing software.");
double taxRate = displayTaxRate();
int categoryChoice = displayWholeMenu();
int books = displayCatBooks();
int movies = displayCatMovies();
int music = displayCatMusic();
double subTotal = displaySubTotal(booksPrice, moviesPrice, musicPrice);
System.out.printf("%d. %-20s\n", subTotal);
double tax = displayTax(subTotal, taxRate);
System.out.printf("%d. %-20s\n", taxRate);
double totalPrice = displayTotalPrice(subTotal, tax);
System.out.printf("%d. %-20s\n", totalPrice);
double average = displayAveragePrice(totalPrice, numItems);
System.out.printf("%d. %-20s\n", average);
boolean user5 = userInput2();
}
}