TQC+ 物件導向程式語言 Java 6 607 電腦銷售業績
第6類:物件導向程式設計與例外處理

TQC+ 物件導向程式語言 Java 6 607 電腦銷售業績

來自的免費背景照片 zh.pngtree.com

題目前後相關,請閱讀完這個題組的五個題目之後再作答,每題答案皆能獨立執行。請將需要重複或共同使用的程式片段撰寫成函式,以供在類別中呼叫使用,避免在不同的類別中重複寫相同的程式碼,否則將酌量扣分。

題目一:

題目說明:

請開啟檔案 JPD06_1.java,設計「電腦銷售業績」程式,請依下列題意完成作答。將 JPD06_1.java 內的 class JPD06_1 修改為 class JPA06_1,將檔案另存為 JPA06_1.java 後編譯為 JPA06_1.class,所有題目中有使用到的類別也請編譯後一併儲存。

設計說明:

(1) 寫一個 NB 類別。假設一台 17″ 筆記型電腦的成本是 10000 元,14″ 筆記型電腦的成本是 8500 元。

(2) 請製造一個 17″ 筆記型電腦及一個 14″ 筆記型電腦,呼叫其 getCost 方法,印出其傳回值。

執行結果參考畫面:



JPD06_1.java 檔案下載

程式碼:

class NB {
	int cost;
	
	NB(int model) {
		if(model == 1)
			cost = 10000;
		else if(model == 2)
			cost = 8500;
	}
	
	int getCost() {
		return cost;
	}
}

public class JPA06_1 {
    public static void main(String args[]){
        NB e1 = new NB(1); 
        
        NB e2 = new NB(2);
     
        System.out.printf("一台17\" 筆記型電腦的成本:%d\n", e1.getCost());
        System.out.printf("一台14\" 筆記型電腦的成本:%d\n", e2.getCost());
       }
}

JPA06_1.java 檔案下載



題目二:

題目說明:

請開啟 JPD06_2.java,第一電腦科技公司同時生產兩種桌上型電腦,分別「商用電腦」及「高階雙核心電腦」。請計算電腦的成本與售價,請依下列題意完成作答。將 JPD06_2.java 内的 class JPD06_2 修改為 class JPA06_2,將檔案另存為 JPA06_2.java 後編譯為 JPA06_2.class,所有題目中有使用到的類別也請編譯後一併儲存。

設計說明:

(1) 商用電腦的物件為 BasicNB、高階雙核心電腦物件為 LuxNB 。

(2) 假設一台商用電腦的週邊成本是 5000 元 (不含 CPU),高階雙核心電腦的週邊成本是 8500 元 (不含 CPU)。

(3) 商用電腦的物件 CPU 成本 (INTEL ATOM N270 1.6 GHZ CPU + 1000),高階雙核心電腦物件 LuxNB CPU 成本 (INTEL CORE2 SU9600 CPU + 2000)。

(4) 假設 INTEL ATOM N270 1.6 GHZ CPU 成本為 1000 元,INTEL CORE2 SU9600 CPU 成本是 2000 元。

(5) 這兩型的售價都是成本的 1.5 倍。

(6) 請為這家電腦工廠設計一個使用 abstract class 的物件導向程式,以計算電腦的成本與售價。

執行結果參考畫面:



JPD06_2.java 檔案下載

程式碼:

class NB {
	int cost;	
	
	NB(int model) {
		if(model == 1)
			cost = 5000;
		else if(model == 2)
			cost = 8500;
	}
	
	int getCost() {
		return cost;
	}
}

class CPU {
	int cost;
	
	CPU(String type) {
		if(type.equals("basic"))
			cost = 1000;
		else if(type.equals("Lux"))
			cost = 2000;
	}
	
	int getCost() {
		return cost;
	}
}

abstract class BasicLuxNB {
	NB nb;
	CPU cpu;
	
	BasicLuxNB(int model, String type) {
		nb = new NB(model);
		cpu = new CPU(type);
	}
	
	abstract double cost();
	double price() {
		return cost() * 1.5;
	}
}

class BasicNB extends BasicLuxNB {
	BasicNB(int model, String type) {
		super(model, type);		
	}
	
	double cost() {
		return nb.getCost() + cpu.getCost() + 1000;
	}
}

class LuxNB extends BasicLuxNB {
	LuxNB(int model, String type) {
		super(model, type);		
	}
	
	double cost() {
		return nb.getCost() + cpu.getCost() + 2000;
	}
}

public class JPA06_2 {
    public static void main(String args[]){

        BasicNB bc = new BasicNB(1,"basic");
        System.out.println("商用電腦成本: " + bc.cost());
        System.out.println("商用電腦售價: " + bc.price());
    
        LuxNB lc = new LuxNB(2,"Lux");
        System.out.println("高階雙核心電腦成本: " + lc.cost());
        System.out.println("高階雙核心電腦售價: " + lc.price());
    }
}

JPA06_2.java 檔案下載



題目三:

題目說明:

請開啟 JPD06_3.java,印出直營店星期一至星期五的營業額報表,請依下列題意完成作答。將 JPD06_3.java 内的 class JPD06_3 修改為 class JPA06_3,將檔案另存為 JPA06_3.java 後編譯為 JPA06_3.class,所有題目中有使用到的類別也請編譯後一併儲存。

設計說明:

(1) 假設第一電腦科技公司直營店遍佈北部、中部及南部。下列表格為此公司三月份的總營業額,並已進行計算,分析出在三月份内,直營店星期一至星期日的總營業額。

直營店
北部120420315250418818900
中部3121832158983600700
南部215500430210300918880

(2) 請用陣列記錄各家直營店星期一至星期日總營業額。

(3) 程式的輸出、輸入必須與執行結果參考畫面的内容一樣,才能給予分數。

執行結果參考畫面:



JPD06_3.java 檔案下載

程式碼:

public class JPA06_3 {
   public static void main(String[] arge){
       
       String[] ShopLocation = {"北部", "中部", "南部"};		// 直營店位置
       int[][] Turnover = // 星期一至日的總營業額
    	   // 一    二   三    四    五    六    日
    	   {{120, 420, 315, 250, 418, 818, 900},
    		{312, 183, 215, 89, 83, 600, 700},
    		{215, 500, 430, 210, 300, 918, 880}};
       
       System.out.println("\n\t  第一電腦科技公司週報表 ( 單 位 : 萬 元 ) ");
       System.out.println( "直營店 \t 一 \t 二 \t 三 \t 四 \t 五 \t六 \t 日 \t  ");
       System.out.println( "=====\t====\t====\t====\t====\t====\t====\t====");
       
       for(int i = 0;i < ShopLocation.length;i++) {
    	   System.out.print(ShopLocation[i] + "\t");
    	   
    	   for(int j = 0;j < Turnover[i].length;j++)
    		   System.out.print(Turnover[i][j] + "\t");
    	   
    	   System.out.println("");
       }
     }
}

JPA06_3.java 檔案下載



題目四:

題目說明:

請開啟 JPD06_4.java,接續題目三的三月份總營業額,請為公司計算這筆訂單的總成本、營業額及銷售毛利,請依下列題意完成作答。將 JPD06_4.java 内的 class JPD06_4 修改為 class JPA06_4,將檔案另存為 JPA06_4.java 後編譯為 JPA06_4.class,所有題目中有使用到的類別也請編譯後一併儲存。

設計說明:

(1) 假設第一電腦科技公司三月總公司統計銷售成本,北部直營店 (第 1 間直營店) 1500 萬元,中部直營店 (第 2 間直營店) 1515 萬元,南部直營店 (第 3 間直營店) 1858 萬元。

(2) 總公司統計營業費用,北部直營店營業費用 180 萬元,中部直營店營業費用 200 萬元,南部直營店營業費用 360 萬元。

(3) 請計算出每間直營店的銷售毛利率。

(4) 銷售毛利率 = (直營店三月份總營業額 – 直營店銷售成本 – 直營店營業費用) / 直營店銷售成本。

(5) 程式的輸出、輸入必須與執行結果參考畫面的内容一樣,才能給予分數。

執行結果參考畫面:



JPD06_4.java 檔案下載

程式碼:

public class JPA06_4 {
	public static void main(String[] arge){
		String[] map = { "北部" , "中部" , "南部" };
		int[][] salary = {{ 120 , 420 , 315 , 250 , 418,818,900 } , { 312 , 183 , 215 , 89 , 83,600,700 } , { 215 , 500 , 430 , 210 , 300,918,880 }};
		int cost[] = {0,0,0};		// 先拿來當銷售成本
		int sum[] = {0,0,0,0,0,0,0};	// 前三個放總營業額
		int data[] = {0,0,0};		// 存放營業費用資料
		int[][]  a_box = salary ;	// 這個基本上用不到

		int i , j , i_max , j_max, min;	// 我全部拿來當迴圈的變數
		double ratio;	// 毛利率

		// 更新銷售成本
		cost[0] = 1500;
		cost[1] = 1515;
		cost[2] = 1858;

		// 更新營業費用
		data[0] = 180;
		data[1] = 200;
		data[2] = 360;

		// 計算總營業額
		j_max = salary.length;

		for(j = 0;j < j_max;j++)
			for(min = 0;min < salary[j].length;min++)
				sum[j] += a_box[j][min];	// sum 的配置應該不用這麼多

		i_max = map.length;	// 更新 i_max 的長度

		for( i = 0 ; i <  i_max ; i++ ){

			// 計算毛利率
			ratio = (sum[i] - cost[i] - data[i]) * 1.0 / (cost[i] + data[i]) * 100;	// 要除以銷售總成本,才會跟執行結果參考畫面的答案一樣。
			cost[i] += data[i];	// 把銷售成本加上營業費用,就是銷售總成本。

			System.out.print("第"+(i+1)+"間直營店銷售總成本="+cost[i]);
			System.out.println();
			System.out.print("銷售總營業額="+sum[i]);
			System.out.println();
			System.out.printf("銷售銷售毛利=%.2f",ratio);
			System.out.print("%");
			System.out.println();
			System.out.println();
		}
	}
}

JPA06_4.java 檔案下載



題目五:

題目說明:

請開啟 JPD06_5.java,接續題目四的總收入計算,請依下列題意完成作答。將 JPD06_5.java 内的 class JPD06_5 修改為 class JPA06_5,將檔案另存為 JPA06_5.java 後編譯為 JPA06_5.class,所有題目中有使用到的類別也請編譯後一併儲存。

設計說明:

(1) 假設銷售成本北部直營店 1500 萬元,中部直營店 1515 萬元,南部直營店 1858 萬元。

(2) 北部直營店營業費用 180萬元,中部直營店的營業費用 200 萬元,南部直營店營業費用 360 萬元。

(3) 請計算出整個公司的銷售毛利率。

(4)銷售毛利率 = (總營業額 – 總銷售成本 – 總營業費用) / 總銷售成本。

(5) 程式的輸出、入必須與執行結果參考畫面的内容一樣,才能給予分數。

執行結果參考畫面:



JPD06_5.java 檔案下載

程式碼:

public class JPA06_5 {
	public static void main(String[] arge){

		int[][] salary = {{ 120 , 420 , 315 , 250 , 418,818,900 } , { 312 , 183 , 215 , 89 , 83,600,700 } , { 215 , 500 , 430 , 210 , 300,918,880 }};
		int i , j , i_max , j_max,cost,sum=0;
		double ratio;
		i_max = salary.length ;
		j_max = salary[0].length ;
		cost=1500+1515+1858+180+200+360;

		// 計算總銷售總營業額
		for(i = 0;i < i_max;i++)
			for(j = 0;j < j_max;j++)
				sum += salary[i][j];

		ratio=(double)(sum-cost)/cost*100;

		System.out.print("總銷售總成本="+cost);
		System.out.println();
		System.out.print("總銷售總營業額="+sum);
		System.out.println();
		System.out.printf("總銷售銷售毛利率=%.2f",ratio);
		System.out.print("%");
		System.out.println();
	}
}

JPA06_5.java 檔案下載



TQC+ 物件導向程式語言 Java 6 第六類:物件導向程式設計與例外處理




如果覺得文章內容還不錯的話,麻煩請幫我點個讚!感謝

可以多點幾次喔~~

第一次點讚需使用 Google 或 Facebook 帳號註冊

發表迴響