2013年2月8日 星期五

TQC+ 物件導向程式語言 Java 6 解題秘笈

TQC+ JAVA6 物件導向程式語言 認證
這是官方網站的介紹:連結

物件導向程式語言 (Java)
使用軟體代號應考時間測驗內容合格成績報名費
Java 6PJP100分鐘操作題共6題70分1500
  • 本認證採操作題,總分為100分。
  • 操作題第一至六類各考一題共六大題,第一大題至第五大題每題10分,第六大題每題50分,小計100分。
  • 於認證時間100分鐘內作答完畢並存檔,成績加總達70分(含)以上者該科合格。

相關書訊(碁峰出版):連結


第一類:基本認識 LINK
101字串列印、102單位換算、103計算平均值、104距離計算、105存錢筒、106數學函數、107運動成績、108覆載方法、109變數範圍、110圖形面積

第二類:條件判斷式 LINK
201分數篩選、202比較大小、203判斷奇偶數、204公倍數計算、205倍數判斷、206及格分數、207三角形邊長判斷、208分級制度、209象限座標、210鍵盤字元判斷

第三類:迴圈 LINK
301整數連加、302巢狀迴圈、303完美數、304餐點費用、305迴圈階乘計算、306迴圈次方計算、307迴圈最大公因數、308電腦週邊費用總計、309迴圈倍數判斷、310迴圈正偶數相加

第四類:遞迴程式設計 LINK
401遞迴階乘計算、402尾端遞迴階乘計算、403尾端遞迴次方計算、404遞迴最大公因數、405遞迴函數、406遞迴字串計算、407尾端遞迴計算總和、408遞迴字串反向、409遞迴字串移除、410遞迴字串替換

第五類:陣列設計能力 LINK
501陣列計算、502浮點數計算、503矩陣之和、504費氏數、505反轉陣列、506三維陣列元素之和、507停車費用計算、508泡泡排序法、509選擇排序法、510二分搜尋法

第六類:物件導向程式設計與例外處理
601汽車零件設計
602電腦零件設計
603冰品計價系統
604銀行理財帳戶
605成績資訊系統
606薪資計算
607電腦銷售業績
608食物熱量計算
609堆疊擴充
610員工薪資制度

本篇教學的程式碼皆由作者群編輯,歡迎轉貼本教學,但請全文轉貼,謝啦~

TQC+ JAVA 610 員工薪資制度

TQC+ JAVA6 試題總覽:LINK
Github 備份:LINK



TQC+ JAVA6 試題總覽:LINK
Github 備份:LINK

本篇教學的程式碼皆由筆者編輯,歡迎轉貼本教學,但請全文轉貼,謝啦~

TQC+ JAVA 609 堆疊擴充

TQC+ JAVA6 試題總覽:LINK
Github 備份:LINK



TQC+ JAVA6 試題總覽:LINK
Github 備份:LINK

本篇教學的程式碼皆由筆者編輯,歡迎轉貼本教學,但請全文轉貼,謝啦~

TQC+ JAVA 608 食物熱量計算

TQC+ JAVA6 試題總覽:LINK
Github 備份:LINK



TQC+ JAVA6 試題總覽:LINK
Github 備份:LINK

本篇教學的程式碼皆由筆者編輯,歡迎轉貼本教學,但請全文轉貼,謝啦~

TQC+ JAVA 607 電腦銷售業績

TQC+ JAVA6 試題總覽:LINK
Github 備份:LINK



TQC+ JAVA6 試題總覽:LINK
Github 備份:LINK

本篇教學的程式碼皆由筆者編輯,歡迎轉貼本教學,但請全文轉貼,謝啦~

TQC+ JAVA 606 薪資計算

TQC+ JAVA6 試題總覽:LINK
Github 備份:LINK



TQC+ JAVA6 試題總覽:LINK
Github 備份:LINK

本篇教學的程式碼皆由筆者編輯,歡迎轉貼本教學,但請全文轉貼,謝啦~

TQC+ JAVA 605 成績資訊系統

TQC+ JAVA6 試題總覽:LINK
Github 備份:LINK



TQC+ JAVA6 試題總覽:LINK
Github 備份:LINK

本篇教學的程式碼皆由筆者編輯,歡迎轉貼本教學,但請全文轉貼,謝啦~

TQC+ JAVA 604 銀行理財帳戶

TQC+ JAVA6 試題總覽:LINK
Github 備份:LINK



TQC+ JAVA6 試題總覽:LINK
Github 備份:LINK

本篇教學的程式碼皆由筆者編輯,歡迎轉貼本教學,但請全文轉貼,謝啦~

TQC+ JAVA 603 冰品計價系統

參考程式碼:

第一題
package JPA603.JP06_1;
//建立一個共用的方法,以供其他方法繼承
class Unit
{
 double cost,price;
  Unit()
  {
 cost = 0.0;
 price = 0.0;
  }
public double getCost(){return cost;}
public double getPrice(){return price;}
}
//建立每個原料的方法,並且繼承Unit,繼承其方法和成員
class Apple extends Unit{Apple(){cost = 6.0;price=10.0;}}
class Banana extends Unit{Banana(){cost = 2.0;price=5.0;}}
class Pudding extends Unit{Pudding(){cost = 3.0;price=5.0;}}
class Strawberry extends Unit{Strawberry(){cost = 1.0;price=5.0;}}
class Mango extends Unit{Mango(){cost = 2.0;price=5.0;}}


class JPD06_1 {   
    public static void main(String args[]) {
        //產生個原料的物件
     Apple ab = new Apple();
        Banana bb = new Banana();
        Pudding pt = new Pudding();
        System.out.println("Apple cost:" + ab.getCost());
        System.out.println("Apple price:" + ab.getPrice());
        System.out.println("Banana cost:" + bb.getCost());
        System.out.println("Banana price:" + bb.getPrice());
        System.out.println("Pudding cost:" + pt.getCost());
        System.out.println("Pudding price:" + pt.getPrice());
    }
}

第二題
package JPA603.JP06_2;

class Unit
{
 double cost,price;
  Unit()
  {
 cost = 0.0;
 price = 0.0;
  }
public double getCost(){return cost;}
public double getPrice(){return price;}
}

class Apple extends Unit{Apple(){cost = 6.0;price=10.0;}}
class Banana extends Unit{Banana(){cost = 2.0;price=5.0;}}
class Pudding extends Unit{Pudding(){cost = 3.0;price=5.0;}}
class Strawberry extends Unit{Strawberry(){cost = 1.0;price=5.0;}}
class Mango extends Unit{Mango(){cost = 2.0;price=5.0;}}

//建立一個抽象的 product方法,供A、B套餐繼承
abstract class product{
 product(){}
 //抽象取得成本
 abstract double getCost();
 //抽象取得售價
 abstract double getPrice();
 //建立利潤方法
 double getProfit(){return getPrice()-getCost();}
}

//A套餐方法
class A extends product{
 Unit a1,a2;
 //建構子,傳入兩個參數,供初始化
 A(Unit b1,Unit b2)
 {a1=b1;a2=b2;}
 double getCost(){return a1.getCost()+a2.getCost();}
 double getPrice(){return a1.getPrice()+a2.getPrice();}
}
//B套餐方法
class B extends product{
 Unit a1,a2,a3;
 //建構子,傳入三個參數,供初始化
 B(Unit b1,Unit b2,Unit b3)
 {a1=b1;a2=b2;a3=b3;}
 double getCost(){return a1.getCost()+a2.getCost()+a3.getCost();}
 double getPrice(){return a1.getPrice()+a2.getPrice()+a3.getPrice();}
}
class JPD06_2 {
    public static void main(String args[]) {
 //產生A套餐的物件,並傳入兩個原料物件
    A t1 = new A(new Apple(), new Banana());
    //產生B套餐的物件,並傳入三個原料物件
 B t2 = new B(new Banana(), new Pudding(), new Strawberry());
 B t3 = new B(new Apple(), new Banana(), new Mango());

        System.out.println("t1 price:" + t1.getPrice());
        System.out.println("t1 profit:" + t1.getProfit());
        System.out.println("t2 price:" + t2.getPrice());
        System.out.println("t2 profit:" + t2.getProfit());
        System.out.println("t3 price:" + t3.getPrice());
        System.out.println("t3 profit:" + t3.getProfit());
    }
}

第三題
package JPA603.JP06_3;

class Unit
{
 double cost,price;
  Unit()
  {
 cost = 0.0;
 price = 0.0;
  }
public double getCost(){return cost;}
public double getPrice(){return price;}
}

class Apple extends Unit{Apple(){cost = 6.0;price=10.0;}}
class Banana extends Unit{Banana(){cost = 2.0;price=5.0;}}
class Pudding extends Unit{Pudding(){cost = 3.0;price=5.0;}}
class Strawberry extends Unit{Strawberry(){cost = 1.0;price=5.0;}}
class Mango extends Unit{Mango(){cost = 2.0;price=5.0;}}

abstract class product{
 product(){}
 abstract double getCost();
 abstract double getPrice();
 double getProfit(){return getPrice()-getCost();}
}
//建立C套餐的方法,由A套餐改造而來的,僅修改成本部分
class C extends product{
 Unit a1,a2;
 C(Unit b1,Unit b2)
 {a1=b1;a2=b2;}
 double getCost(){return a1.getCost()+a2.getCost()+2;}
 double getPrice(){return (a1.getPrice()+a2.getPrice())*1.5;}
}
//建立D套餐的方法,由B套餐改造而來的,僅修改成本部分
class D extends product{
 Unit a1,a2,a3;
 D(Unit b1,Unit b2,Unit b3)
 {a1=b1;a2=b2;a3=b3;}
 double getCost(){return a1.getCost()+a2.getCost()+a3.getCost()+2;}
 double getPrice(){return (a1.getPrice()+a2.getPrice()+a3.getPrice())*1.5;}
}

class JPD06_3 {
    public static void main(String args[]) {
        //建立套餐的物件,將原料物件傳入套餐中
     C t1 = new C (new Apple(), new Banana());
     D t2 = new D (new Banana(), new Pudding(), new Strawberry());
     D t3 = new D (new Apple(), new Banana(), new Mango());

        System.out.println("t1 cost:" + t1.getCost());
     System.out.println("t1 price:" + t1.getPrice());
        System.out.println("t1 profit:" + t1.getProfit());
        System.out.println("t2 cost:" + t2.getCost());
     System.out.println("t2 price:" + t2.getPrice());
        System.out.println("t2 profit:" + t2.getProfit());
        System.out.println("t3 cost:" + t3.getCost());
     System.out.println("t3 price:" + t3.getPrice());
        System.out.println("t3 profit:" + t3.getProfit());
    }
}

第四題
package JPA603.JP06_4;

import java.util.*;

class Unit
{
 double cost,price;
  Unit()
  {
 cost = 0.0;
 price = 0.0;
  }
public double getCost(){return cost;}
public double getPrice(){return price;}
}

class Apple extends Unit{Apple(){cost = 6.0;price=10.0;}}
class Banana extends Unit{Banana(){cost = 2.0;price=5.0;}}
class Pudding extends Unit{Pudding(){cost = 3.0;price=5.0;}}
class Strawberry extends Unit{Strawberry(){cost = 1.0;price=5.0;}}
class Mango extends Unit{Mango(){cost = 2.0;price=5.0;}}

abstract class product{
 product(){}
 abstract double getCost();
 abstract double getPrice();
 double getProfit(){return getPrice()-getCost();}
}

class A extends product{
 Unit a1,a2;
 A(Unit b1,Unit b2) {a1=b1;a2=b2;}
 
 double getCost(){return a1.getCost()+a2.getCost();}
 double getPrice(){return a1.getPrice()+a2.getPrice();}
}

class B extends product{
 Unit a1,a2,a3;
 B(Unit b1,Unit b2,Unit b3){a1=b1;a2=b2;a3=b3;}
 
 double getCost(){return a1.getCost()+a2.getCost()+a3.getCost();}
 double getPrice(){return a1.getPrice()+a2.getPrice()+a3.getPrice();}
}

class Deliver{
 //建立一個LinkedList來存放套餐的物件
 LinkedList ap;
 //利用建構子產生LinkedList的物件
 Deliver()
 {ap=new LinkedList();}
 //建立加入套餐的物件
 void addProduct(product p)
 {ap.add(p);}
 
 double getTotalPrice()
 {
  double d=0.0;
  for(Iterator iterator=ap.iterator();iterator.hasNext();)
  {
   product p = (product)iterator.next();
   d+=p.getPrice();//累加售價
  }
  return d;
 }
 
 double getTotalCost()
 {
  double d=0.0;
  for(Iterator iterator=ap.iterator();iterator.hasNext();)
  {
   product p = (product)iterator.next();
    d+=p.getCost();//累加成本
  }
  return d;
 } 
 
 double getTotalProfit()
 {
  double d=0.0;
  for(Iterator iterator=ap.iterator();iterator.hasNext();)
  {
   product p = (product)iterator.next();
    d+=(p.getPrice()-p.getCost());//累加利潤
  }
  return d;
 } 
 
}

class JPD06_4 {
    public static void main(String args[]){
        //產生外送物件
     Deliver d1 = new Deliver();
        //將A套餐的物件放入,A套餐又放入兩個原料來組成
     d1.addProduct(new A(new Apple(), new Banana()));
     //將B套餐的物件放入,B套餐又放入三個原料來組成
     d1.addProduct(new B(new Banana(), new Pudding(), new Strawberry()));
        System.out.println("a Price: " + d1.getTotalPrice());
        System.out.println("a Cost: " + d1.getTotalCost());
        System.out.println("a Profit: " + d1.getTotalProfit());
        Deliver d2 = new Deliver();
        d2.addProduct(new B(new Apple(), new Banana(), new Mango()));
        d2.addProduct(new A(new Apple(), new Banana()));
        d2.addProduct(new B(new Banana(), new Pudding(), new Strawberry()));
        d2.addProduct(new B(new Apple(), new Banana(), new Mango()));
        System.out.println("b Price: " + d2.getTotalPrice());
        System.out.println("b Cost: " + d2.getTotalCost());
        System.out.println("b Profit: " + d2.getTotalProfit());
    }
}

第五題
package JPA603.JP06_5;

import java.util.*;

class Unit
{
 double cost,price;
  Unit()
  {
 cost = 0.0;
 price = 0.0;
  }
public double getCost(){return cost;}
public double getPrice(){return price;}
}

class Apple extends Unit{Apple(){cost = 6.0;price=10.0;}}
class Banana extends Unit{Banana(){cost = 2.0;price=5.0;}}
class Pudding extends Unit{Pudding(){cost = 3.0;price=5.0;}}
class Strawberry extends Unit{Strawberry(){cost = 1.0;price=5.0;}}
class Mango extends Unit{Mango(){cost = 2.0;price=5.0;}}

abstract class product{
 product(){}
 abstract double getCost();
 abstract double getPrice();
 double getProfit(){return getPrice()-getCost();}
}

class A extends product{
 Unit a1,a2;
 A(Unit b1,Unit b2){a1=b1;a2=b2;}
 double getCost(){return a1.getCost()+a2.getCost();}
 double getPrice(){return a1.getPrice()+a2.getPrice();}
}

class B extends product{
 Unit a1,a2,a3;
 B(Unit b1,Unit b2,Unit b3){a1=b1;a2=b2;a3=b3;}
 double getCost(){return a1.getCost()+a2.getCost()+a3.getCost();}
 double getPrice(){return a1.getPrice()+a2.getPrice()+a3.getPrice();}
}

class Deliver{
 LinkedList ap;
 Deliver(){ap=new LinkedList();}
 void addProduct(product p){ap.add(p);}
 //建立一個檢查的方法,若有符合特定條件,則丟出Exception來警示
 double checkOut() throws notenoughorder
 {
  double d = getTotalPrice();
  if(d<50)
   throw new notenoughorder(this);
  else
   return d;
 } 
 
 double getTotalPrice()
 {
  double d=0.0;
  for(Iterator iterator=ap.iterator();iterator.hasNext();)
  {
   product p = (product)iterator.next();
   d+=p.getPrice();
  }
  return d;
 }
 
 double getTotalCost()
 {
  double d=0.0;
  for(Iterator iterator=ap.iterator();iterator.hasNext();)
  {
   product p = (product)iterator.next();
   d+=p.getCost();
  }
  return d;
 } 
 
 double getTotalProfit()
 {
  double d=0.0;
  for(Iterator iterator=ap.iterator();iterator.hasNext();)
  {
   product p = (product)iterator.next();
   d+=(p.getPrice()-p.getCost());
  }
  return d;
 } 
 
}


//建立一個Exception的方法,並傳入外送物件
class notenoughorder extends Exception{
 static Deliver d;
 notenoughorder(Deliver deliver){d=deliver;}
 //在裡面再建立一個order的方法,回傳外送總價
 static double order(){return d.getTotalPrice();}
}

class JPD06_5 {
    public static void main(String args[]) {
       //利用try-catch包住整個main的程式
     try{
            Deliver d1 = new Deliver();
            d1.addProduct(new A(new Apple(), new Banana()));
            d1.addProduct(new B(new Banana(), new Pudding(), new Strawberry()));
            d1.addProduct(new B(new Banana(), new Pudding(), new Strawberry()));
            d1.addProduct(new B(new Apple(), new Banana(), new Mango()));
            System.out.println("a Price: " + d1.getTotalPrice());
            System.out.println("a Cost: " + d1.getTotalCost());
            System.out.println("a Profit: " + d1.getTotalProfit());
            System.out.println("");
            //進行外送的檢查
            d1.checkOut();            
            Deliver d2 = new Deliver();
            d2.addProduct(new B(new Apple(), new Banana(), new Mango()));
            d2.addProduct(new A(new Apple(), new Banana()));
            System.out.println("b Price: " + d2.getTotalPrice());
            System.out.println("b Cost: " + d2.getTotalCost());
            System.out.println("b Profit: " + d2.getTotalProfit());
             //進行外送的檢查
            d2.checkOut();   
       }
        catch(notenoughorder e)//抓取錯誤的catch
            {
         //抓取到錯誤後,會進來此block,執行程式
          System.out.println("Not enough order for carry out:"+
             notenoughorder.order()); 
            }
        }
    }




TQC+ JAVA6 試題總覽:連結


聲明:

本篇教學的程式碼皆由作者群編輯,歡迎轉貼本教學,但請全文轉貼,尊重一下作者群的心血喔 ^_^

TQC+ JAVA 603 冰品計價系統

TQC+ JAVA6 試題總覽:LINK
Github 備份:LINK



TQC+ JAVA6 試題總覽:LINK
Github 備份:LINK

本篇教學的程式碼皆由筆者編輯,歡迎轉貼本教學,但請全文轉貼,謝啦~

TQC+ JAVA 602 電腦零件設計

TQC+ JAVA6 試題總覽:LINK
Github 備份:LINK



TQC+ JAVA6 試題總覽:LINK
Github 備份:LINK

本篇教學的程式碼皆由筆者編輯,歡迎轉貼本教學,但請全文轉貼,謝啦~

TQC+ JAVA 601 汽車零件設計

TQC+ JAVA6 試題總覽:LINK
Github 備份:LINK



TQC+ JAVA6 試題總覽:LINK
Github 備份:LINK

本篇教學的程式碼皆由筆者編輯,歡迎轉貼本教學,但請全文轉貼,謝啦~

TQC+ JAVA 陣列設計能力 501 ~ 510

TQC+ JAVA6 試題總覽:LINK
Github 備份:LINK



TQC+ JAVA6 試題總覽:LINK
Github 備份:LINK

本篇教學的程式碼皆由筆者編輯,歡迎轉貼本教學,但請全文轉貼,謝啦~

TQC+ JAVA 遞迴程式設計 401 ~ 410

TQC+ JAVA6 試題總覽:LINK
Github 備份:LINK



TQC+ JAVA6 試題總覽:LINK
Github 備份:LINK

本篇教學的程式碼皆由筆者編輯,歡迎轉貼本教學,但請全文轉貼,謝啦~

TQC+ JAVA 迴圈 301 ~ 310

TQC+ JAVA6 試題總覽:LINK
Github 備份:LINK



TQC+ JAVA6 試題總覽:LINK
Github 備份:LINK

本篇教學的程式碼皆由筆者編輯,歡迎轉貼本教學,但請全文轉貼,謝啦~

TQC+ JAVA 條件判斷式 201 ~ 210

TQC+ JAVA6 試題總覽:LINK
Github 備份:LINK



TQC+ JAVA6 試題總覽:LINK
Github 備份:LINK

本篇教學的程式碼皆由筆者編輯,歡迎轉貼本教學,但請全文轉貼,謝啦~

TQC+ JAVA 基本認識 101 ~ 110

TQC+ JAVA6 試題總覽:LINK
Github 備份:LINK



TQC+ JAVA6 試題總覽:LINK
Github 備份:LINK

本篇教學的程式碼皆由筆者編輯,歡迎轉貼本教學,但請全文轉貼,謝啦~

2013年2月7日 星期四

[Android] 蘑菇栽培,只需一天?

在前一陣子,很紅的一套APP遊戲,「觸摸偵探 菇菇栽培研究室(Mushroom Garden)」,這個遊戲就是花時間在等待菇菇的成長。但如果想一日就培養完所有蘑菇呢?照遊戲的設定與時間來講,應該是不可能的,但是仍是有些小技巧可以作弊 =___=



APP名稱:觸摸偵探 菇菇栽培研究室
費用:免費應用程式
Google Play 資訊:連結

第一步:先把該種的香菇種好(在這邊,我們以種植1hr的0元香菇作範例)





















第二步:到應用程式管理那邊,我們去把這個程式,強制停止







第三步:到時間那邊,調整時間,把原本從網路校正時間,改成手動調整時間




















第四步:回到遊戲去收成了喔~~




















原理的話:(有興趣再看看吧!!)

這支程式裡面應該是有用到service或者是thread在背景執行程式(主要是計算時間),而蘑菇的成長時間,主要是透過抓取系統時間(getTime()的方法之類的)來計算中間的差,是否有達到成長時間。

而我們將程式強制停止(那些背景跑的程式會被關閉),則進入遊戲時需要重新再去抓一次現在的時間(時間又被我們改過了),才能去計算,與上次紀錄的時間是否有到達成長時間。

所以其實只要重複以上的步驟,蘑菇其實很快就種完了= ="

就因人而異吧~看是要慢慢的觀察他的成長日記,還是想要一日養成計畫~哈哈!!