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();
}
}
沒有留言:
張貼留言