J Reed
J Reed

Reputation: 1

Creating a simple sales calculator in Java code

I'm trying to figure out how to write this?

Write a Java program that will serve as a basic sales calculator. The program should present the user with a choice of four different products of your choosing in a simple menu. After the user selects a product by entering a character corresponding to a product, the program should prompt the user for the quantity and then calculate the Subtotal, Sales Tax Amount, and Total Sale Amount. The calculations should be performed as follows:

Subtotal = (Price * Quantity)

Sales Tax Amount = Subtotal * Sales Tax Percentage (use 6.5% for the sales tax percentage)

Total Sale Amount = Subtotal + Sales Tax Amount

Be sure to use variables to store temporary values. The program should output the product sold, quantity sold, and the calculated values for Subtotal, Sales Tax Amount, and Total Sale Amount. Your assignment submittal should include your java code which is properly commented, and the class file..

this is what i have so far and not sure if I am on the right track?

import java.util.scanner; 

public class Sales //Defines the class
    Public static void main (String args[]){

    System.out.println("Welcome to Super Shopper");
    System.out.println("1) Star Wars DVD");
    System.out.println("2) X-box 360 ");
    System.out.println("3) I-Pad 3");
    System.out.println(“4) 2 liter Soda”);
    System.out.println("5) Quit");

    Scanner sc  = new Scanner (System.in);

    System.out.print("Please select item :");

    int choice = keyword.nextInt();

    Scanner number = new scanner (System.in);

    System.out.print("Please select quantity :");

    Int choice = quantity.nextInt();

    String userInput;


}

}

Upvotes: 0

Views: 23341

Answers (2)

Mo Kouli
Mo Kouli

Reputation: 112

Since this is a homework question, I won't be providing you with the answer to your problem, but hopefully I will be able to help you in figuring out how to structure your program, as well as explain how to use the Scanner class to gather input from the user. The rest will be up to you.

First you will need to develop the pseudo-code for your main program. Basically a flow of execution based on the events that should happen.

pseudo-code is NOT code that will compile, but is useful in figuring out the structure of a program. Here is the pseudo code for your program.

show greeting with choices.

get choice from user

if choice is valid and choice is not exit
    prompt user for quantity
        if quantity is valid 
            calculate total and show it to the user
            restart program

        if quantity is invalid
            prompt user for a valid quantity again

 if choice is valid and choice is exit
     show exit message and exit program

 if choice is invalid
     show error message and restart program

Notice that upon successful completion of getting the total cost of a purchase, we "restart the program". If you were more advanced, this might entail calling a function, but my guess is that you are still a beginner, so doing the same thing more than once should remind you of a loop. In this case a while loop.

Thus we can rewrite this pseudocode to the following

done = false
while not done
    get choice from user

    if choice is valid and choice is not exit
        prompt user for quantity
            if quantity is valid 
                calculate total and show it to the user

            if quantity is invalid
                prompt user for a valid quantity again

    if choice is valid and choice is exit
        done = true

    if choice is not valid
        show error message

exit program

Now, notice how when the user inputs an invalid quantity (ie: Something that is not an integer > 1) we ask for a quantity AGAIN. Doing the same thing multiple times? That's right, that means we should probably use another while loop again.

For this second while loop, the basic thinking is, "keep asking the user for a quantity until we have a valid quantity". The simplest way to accomplish this, is to create a boolean variable we call haveQuantity, and loop until that value is true.

Our pseudo-code now becomes:

done = false
while not done
    get choice from user

    if choice is valid and choice is not exit
        haveQuantity = false
        while not haveQuantity
            prompt user for quantity
                get quantity from user
                if quantity is valid 
                    haveQuantity = true
                    calculate total and show it to the user

    if choice is valid and choice is exit
        done = true

    if choice is not valid
        show error message

exit program

This should be the general structure of your program. In the following section, I will show you how to properly use the scanner class to get input from the user.

public class EchoInt
{
    import java.util.Scanner;

    public static void main(String[] args)
    {
            //Declaration of variables outside the while loop
            Scanner scan = new Scanner(System.in); //declaring variables outside of a loop saves space and speeds up execution as the jvm does not need to reallocate space for an object inside the loop.

    boolean done = false; //this will be our conditional for the while loop
    int input = -1; 

    while(!done) //while done is equal to false.
    {
            System.out.println("Please enter a positive int to echo or 0 to exit: ");

        if(scan.hasNextInt()) //If the user has inputted a valid int
            input = scan.nextInt(); //set the value of input to that int.

        else //The scanner does not have a integer token to consume
        {    
                     /*
                     THIS IS IMPORTANT. If the scanner actually does have a token
                     which was not an int. For example if the user entered a string,
                     you need to consume the token to prepare to accept further tokens.
                     */
                     if(scan.hasNext()) 
                         scan.next(); //Actually consumes the token

                     input = -1; //This is used to indicate that an invalid input was submitted
                 }

         if(input == 0) //The user chose to exit the program
             done = true; //set done to true to kick out of the while loop

         else if(input == -1) //This means the user inputed an invalid input
         System.out.println("ERROR! Try again."); //show error message

         else //The user inputted valid input
             System.out.println("echo: "+input); //Echo the int

    }

            scan.close(); //We are done, so close the scanner
        System.out.println("Exiting. Goodbye!"); //Show a goodbye message
        System.exit(0); //exit the program. The zero tells us we exited without errors.
    }
}

Hope this helps. And feel free to ask more questions.

Upvotes: 1

dm03514
dm03514

Reputation: 55972

Stackoverflow really excels when you have a very specific question to ask. As for your requirements, you are asking the user for input thats good. But you are not mapping items to prices or quantities. You are hardcoding in the items position ie "3) I-Pad 3" which will make it harder to get the actual item name later and match it to it's price.

Upvotes: 0

Related Questions