2016年11月27日 星期日

假設某一公司有五種產品A、B、C、D與E

package array.paratice; /* 假設某一公司有五種產品A、B、C、D與E,其單價分別為12、16、10、14與15元;而該公司共有三位銷售員,他們在某個月份的銷售量如下所示: 銷貨員 產品A 產品B 產品C 產品D 產品E 1 33 32 56 45 33 2 77 33 68 45 23 3 43 55 43 67 65 試寫一程式印出上表的內容,並計算: (a)每一個銷貨員的銷售總金額 (b)每一項產品的銷售總金額 (c)有最好業績(銷售總金額為最多者)的銷售員 (d)銷售總金額為最多的產品 */ public class ArrayEx1 { int data[][]={{33,32,56,45,33},{77,33,68,45,23},{43,55,43,67,65}}; public void print(){ //印出陣列內容 for(int i=0;i<data.length;i++){ for(int j=0;j<data[i].length;j++){ System.out.print("data["+i+"]"+"["+j+"]="+data[i][j]+" "); } System.out.println(); } System.out.println(); }

public void salesum(){ //計算每一個銷售員的銷售總金額(列的總合) int sum=0;
for(int i=0;i<data.length;i++){ sum=0; //每印完一次即歸零 for(int j=0;j<data[i].length;j++){ sum+=data[i][j]; } System.out.printf("Sales %d of totalsaleprice:%d\n",i+1,sum); } System.out.println(); }




public void productsum(){ //計算每項產品總和
//設一維陣列sum,大小為data陣列[0]的元素個數=行數 int sum[]=new int[data[0].length];
for(int i=0;i<data.length;i++){ for(int j=0;j<data[i].length;j++){ sum[j]+=data[i][j]; //只儲存行的總和 } }
/* for(int i=0;i<sum.length;i++){ System.out.printf("產品"+(i+1)+"的總銷售額="+sum[i]); 也可這樣寫,但無法呈現產品A、B、C、D,只能呈現產品1、2、3、4 */ System.out.println("產品A的總銷售額="+sum[0]); System.out.println("產品B的總銷售額="+sum[1]); System.out.println("產品C的總銷售額="+sum[2]); System.out.println("產品D的總銷售額="+sum[3]); System.out.println("產品E的總銷售額="+sum[4]); System.out.println(); } public void topsales(){
//找出業績最好與最差的業務(列的總和最高與最低者
int[] totalSales = new int[data.length];

//計算列的總合
for (int i = 0; i < data.length; i++) { for(int j=0;j<data[i].length;j++){ totalSales[i]+=data[i][j]; //只計算列的總合 } }

//開始比較列的總和大小 int max,min; //重點,是要用totalSales[0]當作比較,如果放data[0][0]結果就不正確 max=min=totalSales[0]; int topsales=0; //儲存銷售員1~4其中之一 int lowsales=0; //儲存銷售員1~4其中之一
for(int i=0;i<totalSales.length;i++){ if(max<totalSales[i]){ //找出銷售成績最好的銷售員 max=totalSales[i]; topsales=i; } if(min>totalSales[i]){ //找出銷售成績最差的銷售員 min=totalSales[i]; lowsales=i; } } System.out.printf("The top Sales is:%d totalsales:%d\n",topsales+1,max); System.out.printf("The low Sales is:%d totalsales:%d",lowsales+1,min); System.out.println(); } public void Topproduct(){ //找出賣最好與最差的產品 //計算行的總合 int sum[]=new int [data[0].length]; for(int i=0;i<data.length;i++){ for(int j=0;j<data[i].length;j++){ sum[j]+=data[i][j]; } }

//比較行的大小 int max,min; int topproduct=0; int lowproduct=0; max=min=sum[0]; //重點,是要用sum[0]當作比較,如果放data[0][0]結果就不正確 for(int i=0;i<sum.length;i++){ if(max<sum[i]){ max=sum[i]; topproduct=i; }
if(min>sum[i]){ min=sum[i]; lowproduct=i; } }
System.out.printf("\n賣最好的產品是第%d產品 總共賣了:%d元\n",topproduct+1,max); System.out.printf("賣最差的產品是第%d產品 總共賣了:%d元",lowproduct+1,min); //第1產品:A 第2產品:B 第3產品:C 第4產品:D 第5產品:E } public static void main(String[] args) { ArrayEx1 arr1=new ArrayEx1(); arr1.print(); arr1.salesum(); arr1.productsum(); arr1.topsales(); arr1.Topproduct(); } }

沒有留言:

張貼留言