2017-02-10 40 views
0

鑑於骨架程序,我無法弄清楚它是如何工作...在與雙串

必須使用這種格式...

不能讓它從參數線讀取參數,不知道如何使用開關去不同的方法......

Program: 
     //********************************************************************************** 
    //Purpose: Compute personal income taxes. 
    // 
    //Input: Name, status, and annual income 
    // 
    //Output: name, status, annual income, and tax due 
    // 
    // Expand and complete the documentation section 
    // 
    //********************************************************************************** 
    public class MyIncomeTax5{ 
    //Declarations 
    public static String name; 
    public static String status; 
    public static double statusName; 
    public static double annualIncome; 
    public static double taxDue; 

    //******************************************************************************* 
    // Have a documentation section in front of each method 
    // 
    //******************************************************************************* 
    public static void main (String [] args){ 
     readArguments(args); 
     computeTax(); 
     //printOutput(); 
    } 

    public static void readArguments(String [] args){ 

     //Assign arguments to name, status, and annual income 
     /*System.out.println ("readArguments to be implemented"); 
     System.out.println ("in readArguments assign arguments to name, status, and annual income");*/ 
     name = args[0]; 
     status = args[1]; 
     //annualIncome = args[2]; 

    } 

    public static void computeTax(){ 

     //Use a switch statement to invoke the appropriate method 
     //Based on the value in status and assign a value to statusName. 

     switch (status){ 
     case "0": computeSingleFilers(); 

       break; 
     case "1": 

       break; 
     case "2": 

       break; 
     case "3": 

       break; 
     default: 
     } 


    } 

    public static void computeSingleFilers(){ 

    } 

    public static void computeMarriedFilingJointly(){ 

    } 

    public static void computeMarriedFilingSeparately(){ 

    } 

    public static void computeHeadOfHousehold(){ 

    } 

    /*public static void printOutput(){ 

    displayHeader(); 
    displayFooter(); 
    } 

    public static void displayHeader(){ 
    System.out.println ("********************************************************************"); 
    System.out.println ("**                **"); 
    System.out.println ("**  Estimating 2016 Personal Federal Income Tax    **"); 
    System.out.println ("**                **"); 
    System.out.println ("**  CS1301             **"); 
    System.out.println ("**                **"); 
    System.out.println ("**  2/10/2017            **"); 
    System.out.println ("**                **"); 
    System.out.println ("********************************************************************"); 
    System.out.printf ("%-25s%-25s", "Name:", name); 
    System.out.printf ("%-25s%-25s", "Status:", statusName); 
    System.out.printf ("%-25s%-25s", "Name:", name); 
    System.out.printf ("%-28s%-25s", "Annual Income:", annualIncome); 
    System.out.printf ("%-28s%-25s", "2016 estimated tax due:", taxDue); 



    } 

    public static void displayFooter(){ 
    System.out.println ("********************************************************************"); 
    System.out.println ("**                **"); 
    System.out.println ("**  It is needed but not fun to pay taxes     **"); 
    System.out.println ("**                **"); 
    System.out.println ("**  Have a good day           **"); 
    System.out.println ("**                **"); 
    System.out.println ("********************************************************************"); 
    */ 




    } 
+0

一切工作,除了從參數線獲得雙倍,必須保持一個數字的計算.... –

回答

0

你的聲明應該是:

//Declarations 
    public static String name; 
    public static int status; 
    public static double statusName; 
    public static double annualIncome; 
    public static double taxDue; 

解析它像這樣:

public static void readArguments(String [] args){ 
     name = args[0]; 
     status = Integer.parseInt(args[1]); 
     annualIncome = Double.parseDouble(args[2]); 
    } 

,然後通過刪除雙引號更改switch語句案件int

cases "0": 

cases 0: 

args[1]args[2]是從字面上的String[]數組來了,所以它實際上是返回一個字符串值,所以你需要對它進行解析,以轉化它的類型的數據,請參閱上面的代碼我如何解析字符串爲int和double。

+0

我不能改變這一點,這是我被給予的骨架的一部分...我無法計算如何使它運行,我正在使用jgrasp並且必須通過run參數行運行參數,並且對annualIncome也需要執行相同的操作,請記住,爲了稍後進行數學計算,我需要這樣做以保持雙倍數據,使用開關去不同的方法。感謝先進的 –

+0

我得到一個新的錯誤,一旦我改變它, –

+0

MyIncomeTax5.java:14:錯誤:找不到符號 public static String status = Integer.parseInt(args [1]); ^ 符號:變量參數 位置:class MyIncomeTax5 MyIncomeTax5.java:16:錯誤:找不到符號 public static double annualIncome = Double.parseDouble(args [2]); ^ –