2016-10-25 8 views
0

コミッション/コミッションレートを正しく動作させることができない場合を除き、すべてのコードが正常に動作しています。私はコードを引き出し、それを単独で実行し、計算が動作するように見えました。Java配列の合計と印刷が正常に動作しない

明らかにdisplayTotalsに渡すと、何も表示されません。

また、サイドノートでは、次の行にmy {の外観が好きです。これは問題ですか?私の教科書と私の教授によると、それは受け入れられますが、私はそれを行うために私の最後の投稿で別のユーザーによって叱られました。

私は無礼ではない...私はちょうどなぜ思っていますか?したがって、それはコードです

おかげで、

/* 
* Anthony Vincenzo Laginess 
* CIT 130 HMW 08 Arrays 
* 10/19/16 
* Time Spent: 
*/ 
package cit130mhmw08_laginess; 

import java.util.Scanner; 

public class CIT130MHMW08_Laginess 
{ 

public static void main(String[] args) 
{ 
    Scanner input = new Scanner(System.in); 

    System.out.println("------------------------------------------"); 
    System.out.println("Please enter the total number of dealers: "); 
    System.out.println("------------------------------------------"); 
    int numDealers = input.nextInt(); 
    numDealers = numberOfDealers(numDealers); 
    String[] dealerNames = new String[numDealers]; 
    double[] dealerSales = new double[numDealers]; 
    double[] commissionRate = new double[numDealers]; 

    System.out.println("--------------------------------------------------------"); 
    System.out.println("Please enter the required data for each of your dealers: %n"); 
    System.out.println("--------------------------------------------------------"); 
    dataCalculation(numDealers, dealerNames, dealerSales); 

    System.out.println("----------------"); 
    System.out.println("Dealer Totals: "); 
    System.out.println("----------------"); 
    displayTotals(numDealers, dealerNames, dealerSales, commissionRate); 

    System.out.println("----------------"); 
    System.out.println("Remaining Totals: "); 
    System.out.println("----------------"); 

    System.out.println(""); 
    System.out.println("Dealership Sales Total: "); 
    dealershipSales(numDealers, dealerSales); 

    System.out.println(""); 
    System.out.println("Dealership Sales Averages: "); 
    dealerSalesAvg(numDealers, dealerSales); 

    System.out.println(""); 
    System.out.println("Dealership Total Commission: "); 
    dealershipTotalCommission(numDealers, commissionRate); 

    System.out.println("--------------------------------------------------------"); 
}//main 

//METHOD 1 
public static int numberOfDealers(int dealers) 
{ 
    int results; 

    Scanner input = new Scanner(System.in); 

    while(dealers < 0 || dealers > 30) 
    { 
     System.out.printf("%nEnter a valid number of dealers: %n"); 
     dealers = input.nextInt(); 
    } 
    results = dealers; 
    return results; 
}//number of dealers methods 

//METHOD 2 
public static void dataCalculation(int numDealers, String[] dealerNames, double[] dealerSales) 
{ 
    Scanner input = new Scanner(System.in); 

    System.out.printf("%nEnter the names of the dealers:%n "); 

     for(int i = 0; i < numDealers; i++) 
     { 
      String names =input.nextLine(); 
      dealerNames[i]= names; 
     } 
    System.out.printf("%nEnter their sales totals: %n"); 

     for(int i = 0; i < numDealers; i++) 
     { 
      double sales = input.nextDouble(); 
      dealerSales[i] = sales; 
     } 
}//data calculations 

//METHOD 3 
public static void commission(int numDealers, double[] dealerSales) 
{ 
    //Create array 
    double[] commissionRate = new double[numDealers]; 

    for(int i = 0; i < numDealers; i++) 
    { 
      commissionRate[i] = dealerSales[i]; 

     if(commissionRate[i] > 0 && commissionRate[i] < 5000) 
      commissionRate[i] = commissionRate[i] * 0.08; 
     else if(commissionRate[i] > 5000 && commissionRate[i] < 15000) 
      commissionRate[i] = commissionRate[i] * 0.15; 
     else if(commissionRate[i] > 15000) 
      commissionRate[i] = commissionRate[i] * 0.20; 
    } 
    for(int i = 0; i < numDealers; i++) 
    { 
     System.out.printf("%n$%5.2f" , commissionRate[i]); 
     System.out.println(""); 
    } 
}//commission method 

public static void dealershipSales(int numDealers, double[] dealerSales) 
{ 
    //Create array 
    double dealershipSalesTotal = 0; 

    for(int i = 0; i < numDealers; i++) 
    { 
     dealershipSalesTotal += dealerSales[i]; 

    } 
     System.out.printf("%n$%5.2f" , dealershipSalesTotal); 
     System.out.println(""); 
}//dealership sales 

public static void dealerSalesAvg(int numDealers, double[] dealerSales) 
{ 
    double dealerSalesAvgTotal = 0; 

    for(int i = 0; i < numDealers; i++) 
    { 
     dealerSalesAvgTotal += dealerSales[i]; 
    } 
     System.out.printf("%n$%5.2f" , dealerSalesAvgTotal/numDealers); 
     System.out.println(""); 
}//dealership sales averages 

public static void dealershipTotalCommission(int numDealers, double[] commissionRate) 
{ 
    double totalCommission = 0; 

    for(int i = 0; i < numDealers; i++) 
    { 
      totalCommission += commissionRate[i] * 100; 
    } 
     System.out.printf("%n$%5.2f" , totalCommission); 
     System.out.println(""); 
}//total commission for the dealership 

public static void displayTotals(int numDealers, String[] dealerNames, double[] dealerSales, double[] commissionRate) 
{ 

    for(int i = 0; i < numDealers; i++) 
    { 
     System.out.println(dealerNames[i]); 
     System.out.printf("$%5.2f" , dealerSales[i]); 
     System.out.printf("%n$%5.2f" , commissionRate[i]); 
     System.out.println(""); 
    } 
}//display totals 
}//class 

答えて

0

あなたのcommissionメソッドを呼び出していませんが、実行されません。

はあなたがやった場合でも:そうそこにあなたの計算がdisplayTotalsdealershipTotalCommission方法で失われた、あなたはそれにcommissionRate配列を渡していないもあなたはローカルに作成commissionRate配列を返します。 commissionRate配列を作成し、ここで使用::だけ繰り返す


public static void main(String[] args) 
{ 
    ... 
    double[] commissionRate = new double[numDealers]; 
    ... 
    displayTotals(numDealers, dealerNames, dealerSales, commissionRate); 
    ... 
    dealershipTotalCommission(numDealers, commissionRate) 
} 

は、ここで作成した配列と同じ配列ではありません。

public static void commission(int numDealers, double[] dealerSales) 
{ 
    //Create array 
    double[] commissionRate = new double[numDealers]; 
    ... 
} 

したい場合コードを書くにはcommissionメソッドを呼び出してに渡す必要がありますパラメータとして:サイドノートで

public static void main(String[] args) 
{ 
    ... 
    double[] commissionRate = new double[numDealers]; 
    ... 
    commission(numDealers, dealerSales, commissionRate); 
    ... 
    displayTotals(numDealers, dealerNames, dealerSales, commissionRate); 
    ... 
    dealershipTotalCommission(numDealers, commissionRate) 
} 

public static void commission(int numDealers, double[] dealerSales, double[] commissionRate) 
{ 
    //do not create a new array here! 
    ... 
} 

:代わりにSystem.out.println("");を呼び出すのあなただけのブレースの配置についてSystem.out.println();

+0

しかし、私はcommissionRateをdisplayTotalsとdealershipTotalCommissionに渡しています。 –

+0

誰もがこれで私を助けてくれますか?私は何をすべきかわからない... –

0

を呼び出すことができます。どちらのスタイルでもかまいません。 Javaプログラムの場合は、開きブレースを右に配置するのが普通ですが、Javaコーディング規約(1990年代以降)ではそのスタイルを使用しています。 Visual StudioでC#を使用すると、開きブレースはそれ自身の行に配置されます。

使用しているIDEによって、コードが自動的にフォーマットされます。設定では、好みのスタイルを設定できます。あなたがこのスタイルに固執し、同じスタイルでフォーマットされたコード全体を持っている限り、すべてが問題ありません。

関連する問題