• We hope you have a fantastic holiday season to close out 2025! Thank you all so much for being part of the Tom's Guide community!

Need urgent help on program...

Status
Not open for further replies.

ChaoSpectrum

Estimable
May 16, 2015
6
0
4,510
I have been looking at this for hours and cannot figure out why it will not show the subtotal. PLEASE HELP:

Code:
import java.io.*;
import java.util.*;

public class CS0401JNRV2 
{
	//Constants For Program--------------
	//GASOLINE CONSTANTS
		static double REGULAR = 3.75,
			          PLUS = 4.00;
	//PROPANE CONSTANTS
		static double WITHEXCHANGE = 20.00,
			          WITHOUTEXCHANGE = 35.00;
	//BURRITO CONSTANTS
		static double FIRSTFIVE = 1.00,
			          NEXTFIVE = 0.90,
			          ADDITIONAL = 0.80;
	//VANTAGE CARD BENEFITS
		static double V_GASDISCOUNT = 0.10,
					  V_PROPANEDISCOUNT = 0.10,
			          V_FIRSTFIVE = 0.90,
			          V_NEXTFIVE = 0.80,
			          V_ADDITIONAL = 0.70;
	//-----------------------------------
	
	public static void main(String[]args)
	{
		Scanner keyboard = new Scanner(System.in);
		
		//Totals For User--------------------
			//GASOLINE INFO
				int typeOfGas = 0;
				double numOfGallons = 0;
			//PROPANE INFO	
				int numOfTanks = 0,
				    numOfReturning = 0;
			//BURRITO INFO
				int numOfBurrito = 0;
		//-----------------------------------
		//General Info-----------------------
		boolean vantageCard = false,
				ifCustomer = false,
				exitCMD = false;
		
		double vantageCardBal = 0;
		
		while (exitCMD == false)
		{
			System.out.println("Welcome to Gas, Gas, and Gas!");
			
			getCustomer(ifCustomer, keyboard);
			getVantageCard(vantageCard, keyboard, vantageCardBal);
			getChoice(keyboard, typeOfGas, numOfGallons, numOfTanks, numOfReturning, numOfBurrito, vantageCard);
		}		
	}
	public static void getCustomer(boolean ifCustomer, Scanner keyboard)
	{
		int userInput;
		
		while (ifCustomer == false)
		{
			System.out.print("Is there a customer in line? (1 = yes, !1 = no) > ");
			userInput = keyboard.nextInt();
			
			if (userInput == 1)
			{
				ifCustomer = true;
			}
			else 
				ifCustomer = false;
		}
	}
	public static void getVantageCard(boolean vantageCard, Scanner keyboard, double vantageCardBal)
	{
		int userInput = 0;
		vantageCardBal = 0;
		
		while (userInput < 1 || userInput > 2)
		{
			System.out.print("Are you a GasVantage card member? (1 = yes, 2 = no) > ");
			userInput = keyboard.nextInt();
		}
		
		if (userInput == 1)
		{
			vantageCard = true;
			System.out.print("Welcome back, GasVantage Customer!" +
							 "\nWhat is your current GasVantage balance? > ");
			vantageCardBal = keyboard.nextDouble();
			
			System.out.print("You will receive: " +
							 "\n\t\t$0.30/gal. reg., $3.70 gal. plus" +
							 "\n\t\t10.0% off your propane tanks" +
							 "\n\t\t$0.10/ea discount on burritos\n");
		}
		else if (userInput == 2)
      {
			vantageCard = false;
      }
	}
   //Asks user what they would like to choose from a selection of, gasoline, propane, checkhout, and 
	public static void getChoice(Scanner keyboard, int typeOfGas, double numOfGallons, int numOfTanks, int numOfReturning, int numOfBurrito, boolean vantageCard)
	{
		int userInput = 1;
		boolean exitLoop = false;
		
		while (exitLoop == false)
		{
			if (vantageCard == true)
			{
				System.out.println("Here are your options:\n" +
						   "\t\t1) Buy Gasoline: $3.45/gal. reg., $3.70/gal. plus\n" +
			               "\t\t2) Buy Propane:\n" +
			               "\t\t\t(with return tank): $18.00/20 lb tank\n" +
			               "\t\t\t(no tank): $31.50/20 lb tank\n" +
			               "\t\t3) Buy Burritos: $0.90/each [with volume discounts]\n" +
			               "\t\t4) Check out\n" +
			               "Note: For options 1-3, selecting more than once will overwrite previous selections");
			}
			else
			{
				System.out.println("Here are your options:\n" +
						   "\t\t1) Buy Gasoline: $3.75/gal. reg., $4.00/gal. plus\n" +
			               "\t\t2) Buy Propane:\n" +
			               "\t\t\t(with return tank): $20.00/20 lb tank\n" +
			               "\t\t\t(no tank): $35.00/20 lb tank\n" +
			               "\t\t3) Buy Burritos: $1.00/each [with volume discounts]\n" +
			               "\t\t4) Check out\n" +
			               "Note: For options 1-3, selecting more than once will overwrite previous selections");
			}
			
			System.out.print("What is your choice? > ");
			userInput = keyboard.nextInt();
			
			if (userInput == 1)
			{
				getGasoline(keyboard, typeOfGas, numOfGallons);
			}
			else if (userInput == 2)
			{
				getPropane(keyboard, numOfTanks, numOfReturning);
			}
			else if (userInput == 3)
			{
				getBurrito(keyboard, numOfBurrito);
			}
			else if (userInput == 4)
			{
				getSubtotal(typeOfGas, numOfGallons, numOfTanks, numOfReturning, numOfBurrito, vantageCard);
				exitLoop = true;
				
			}
		}
	}
   //Asks the user what type of gas they would like and how many gallons of it they want.
	public static void getGasoline(Scanner keyboard, int typeOfGas, double numOfGallons)
	{	
		typeOfGas = 0;
		numOfGallons = 0;
		
		while (typeOfGas < 1 || typeOfGas > 2)
		{
			System.out.print("Do you want: " +
							 "\n\t1) Regular Gasoline" +
							 "\n\t2) Plus Gasoline" +
						     "\n> ");
			typeOfGas = keyboard.nextInt();			
		}
		while (numOfGallons <= 0)
		{
			System.out.println("How many gallons do you want? > ");
			numOfGallons = keyboard.nextDouble();
		}
		
		
	}
   //Asks the user how many propane tanks they would like
	public static void getPropane(Scanner keyboard, int numOfTanks, int numOfReturning)	
	{
		numOfTanks = 0;
		numOfReturning = 0;
		
		while (numOfTanks <= 0)
		{
			System.out.println("How many propane tanks do you want? > ");
			numOfTanks = keyboard.nextInt();
		}
		while (numOfReturning > numOfTanks)
		{
			System.out.println("How many tanks are you returning? (<= " + numOfTanks + ") > ");
			numOfReturning = keyboard.nextInt();
			
			if (numOfReturning < 0)
			{
				System.out.println("Invalid number -- 0 tanks returned");
				numOfTanks = 0;
				numOfReturning = 0;
				break;
			}
		}
	}
   //Asks the user how many burritos the customer would like
	public static void getBurrito(Scanner keyboard, int numOfBurrito)
	{
		while (numOfBurrito <= 0)
		{
			System.out.println("How many burritos do you want? > ");
			numOfBurrito = keyboard.nextInt();
		}
	}
	public static void getSubtotal(int typeOfGas, double numOfGallons, int numOfTanks, int numOfReturning, int numOfBurrito, boolean vantageCard)
	{
		System.out.print("Here is your subtotal:");
		
		//Gas Calculations
		if (vantageCard == true)
		{
			if (typeOfGas == 1)
			{
				System.out.println("Gasoline: " + numOfGallons + " at " + (REGULAR - V_GASDISCOUNT) + " per gallon:\t\t" + (numOfGallons * (REGULAR - V_GASDISCOUNT)));
			}
			else if (typeOfGas == 2)
			{
				System.out.println("Gasoline: " + numOfGallons + " at " + (PLUS - V_GASDISCOUNT) + "per gallon:\t\t" + (numOfGallons * (PLUS - V_GASDISCOUNT)));
			}
		}
		else if (vantageCard == false)
		{
			if (typeOfGas == 1)
			{
				
			}
			else if (typeOfGas == 2)
			{
				
			}
		}
			
	}
}
 
Status
Not open for further replies.