2012-03-29 189 views
0

我想弄清楚如何編寫這個?用Java代碼創建一個簡單的銷售計算器

編寫一個Java程序,將作爲一個基本的銷售計算器。程序應該在簡單的菜單中向用戶提供您選擇的四種不同產品的選擇。在用戶通過輸入與產品對應的字符選擇產品後,程序應提示用戶輸入數量,然後計算小計,銷售稅金額和總銷售金額。計算應執行如下:

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 

請務必使用變量來存儲臨時值。該計劃應輸出已售出的產品,已售出的數量以及小計,銷售稅金額和總銷售金額的計算值。你的作業提交應包括你的java代碼,這是正確的評論,和類文件..

這是我到目前爲止,不知道如果我在正確的軌道上?

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; 


} 

} 
+2

你的問題又是什麼? – NullUserException 2012-03-29 15:25:08

回答

0

當你有一個非常具體的問題要求時,Stackoverflow確實很出色。至於你的要求,你問用戶輸入多好。但是您並未將商品映射到價格或數量。您在物品位置(即「3)I-Pad 3」中進行硬編碼,這將使得稍後難以獲得實際物品名稱並將其與其價格相匹配。

+0

我需要讓用戶輸入..所以屏幕需要反映這一點。有沒有不同的方式來寫出這個問題? – 2012-03-29 15:31:30

+0

@JReed:我建議一個'class Product',它至少具有'name'和'price'屬性。你可以創建一個數組,並列出他們的價格,擁有你想要的數量(你只需要把用戶的輸入變成一個int,然後減1以得到你的物品的索引,而不是編寫代碼來檢查每個物品的索引)...等等等等等 – cHao 2012-03-29 15:33:44

+0

讓我把我的書拉出來,只是學習如何寫java。謝謝 – 2012-03-29 15:37:37

1

由於這是一個家庭作業問題,我不會爲您提供問題的答案,但希望我能夠幫助您瞭解如何構建您的程序,並解釋如何使用Scanner類收集來自用戶的輸入。其餘的將取決於你。

首先,您需要爲您的主程序開發僞代碼。基本上是基於應該發生的事件的執行流程。

僞代碼不是編譯的代碼,但在計算程序結構時非常有用。這是您的程序的僞代碼。

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 

請注意,成功完成購買總成本後,我們將「重新啓動程序」。如果你更先進,這可能需要調用一個函數,但我的猜測是你仍然是初學者,所以不止一次地做同樣的事情應該提醒你一個循環。在這種情況下,一個while循環。

因此,我們可以這樣的僞代碼重寫爲以下

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 

現在,請注意如何當用戶輸入了一個無效量(即:一些不> 1的整數),我們要求的量一次。多次做同樣的事情?沒錯,那意味着我們應該再次使用另一個while循環。

對於第二個while循環,基本思路是「不斷詢問用戶的數量,直到我們有一個有效的數量」。最簡單的方法是創建一個布爾變量,我們稱之爲hasQuantity,然後循環,直到該值爲真。

我們的僞代碼現在變爲:

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 

這應該是你的程序的總體結構。在下一節中,我將向您展示如何正確使用掃描儀類來獲取用戶的輸入。

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. 
    } 
} 

希望這會有所幫助。隨時提出更多問題。

+0

謝謝,我正處於理解如何編寫java代碼的階段的最初階段。我感謝我能得到的所有幫助。我只是對很多事情感到困惑,並一直試圖弄清楚這本書。 – 2012-03-29 18:03:47