SlideShare a Scribd company logo
ANSWER 12-13                                                       Computer Programming using Java              1
   CHAPTER                                         คลาสและอ๊อบเจ็ค
 ANS-12                                           (Classes and Objects)
โจทย์ ข้อที่ 1 [ระดับง่ าย]
 1     public class Num {
 2       private int x;
 3       private double y;
                                                        Attribute
 4       public Num() {
 5         x = 0; y = 0.0;
 6       }                                              Constructor
 7       public Num(int m, double n) {
 8         x = m; y = n;
 9       }
 10      public int addNX(int n) {
 11        return n + x;                                                              Class (ต้ นแบบ)
 12      }
 13      public double addNY(double n) {
 14        return n + y;                                Method                              ผลลัพธ์ ท่ ีได้
 15      }
 16      public void showXY() {                                                        5
 17        System.out.println(x);                                                      7.0
 18        System.out.println(y);                                                      9
 19      }
 20    }                                                                               20.0


 1     public class RunNum {
 2       public static void main(String[] args){
 3         Num obj = new Num(5, 7.0);            Object
 4         obj.showXY();
 5         int a = obj.addNX(4);
 6         double b = obj.addNY(13.0);
                                                                                      Class (ประมวลผล)
 7         System.out.println(a);          Main Method
 8         System.out.println(b);
 9       }
 10    }




โจทย์ ข้อที่ 2 [ระดับง่ าย]
1)                                    6)                                     11)
2)                                    7)                                     12)
3)                                    8)                                     13)
4)                                    9)                                     14)
5)                                    10)                                    15)




© สงวนลิขสิทธิ์ พฤศจิกายน 2553 (ปรับปร ุงครังที่ 7 ฉบับใช้ติวภาค 2/2553) เรียบเรียงโดย วงศ์ยศ เกิดศรี (แบงค์)
                                            ้
2     Computer Programming using Java                                                            ANSWER 12-13


    โจทย์ ข้อที่ 3 [ระดับง่ าย]
    public class Course {
        //แอตทริบว 3 ตัว
                 ิ
          private int id;
          public String title;
          protected double credit;


        //ตัวสร้ างแบบไม่ มีพารามิเตอร์ ใดๆ
          public Course() {
            id = 0;
            title = "";
            credit = 0.0;
          }


        //ตัวสร้ างแบบมีพารามิเตอร์ 3 ตัว
          public Course(int i, String t, double c) {
            id = i;
            title = t;
            credit = c;
          }


        //เมท็อด setID(…)
          public void setID(int i) {
            id = i;
          }


        //เมท็อด setTitle(…)
          public void setTitle(String t) {
            title = t;
          }


        //เมท็อด setCredit(…)
          public void setCredit(double c) {
            credit = c;
          }


        //เมท็อด getLevel(…)
          public String getLevel() {
            if (id % 1000 / 100 <= 4) {
              return "Undergraduate";
            } else {
              return "Graduate";
            }
          }




    © สงวนลิขสิทธิ์ พฤศจิกายน 2553 (ปรับปร ุงครังที่ 7 ฉบับใช้ติวภาค 2/2553) เรียบเรียงโดย วงศ์ยศ เกิดศรี (แบงค์)
                                                ้
ANSWER 12-13                                                       Computer Programming using Java              3
    //เมท็อด getFaculty(…)
      public int getFaculty() {
        return id / 100000;
      }


    //เมท็อด getDepartment(…)
      public int getDepartment() {
        return id / 1000 % 100;
      }


    //เมท็อด toString(…)
      public String toString() {
        return id + " " + title + " (" + credit + ")";
      }

} //End of class


โจทย์ ข้อที่ 4 [ระดับง่ าย]
 9                               1) แอตทริบว y หรือตัวแปร y
                                            ิ
 5
 7                               2) ตัวแปร y (ในบรรทัดที่ 13)
 1
 1
 12
 11
 1
 12



โจทย์ ข้อที่ 5 [ระดับง่ าย]
 0,
 101,Taksin
 103,Apisit
 Taksin:U
 Apisit:S




© สงวนลิขสิทธิ์ พฤศจิกายน 2553 (ปรับปร ุงครังที่ 7 ฉบับใช้ติวภาค 2/2553) เรียบเรียงโดย วงศ์ยศ เกิดศรี (แบงค์)
                                            ้
4        Computer Programming using Java                                                         ANSWER 12-13


    โจทย์ ข้อที่ 6 [ระดับง่ าย]
    //ประกาศหัวคลาส TestNumber
    import java.util.Scanner;
     public class TestNumber {

         public static void main(String[] args) {
           Scanner kb = new Scanner(System.in);
            //อ๊ อบเจ็คชื่อ no1
             Number no1 = new Number();


            //อ๊ อบเจ็คชื่อ no2
             System.out.print("Enter x : ");
             double x = kb.nextDouble();
             System.out.print("Enter y : ");
             double y = kb.nextDouble();
             Number no2 = new Number(x, y);


            //แสดงผลการบวก การลบ การคณ การหาร และการม็อด
                                     ู
             System.out.println("Add:           "   +   no2.add());
             System.out.println("Sub:           "   +   no2.sub());
             System.out.println("Mul:           "   +   no2.mul());
             System.out.println("Div:           "   +   no2.div());
             System.out.println("Mod:           "   +   no2.mod());

      } //End of main
    } //End of class


    โจทย์ ข้อที่ 7 [ระดับง่ าย]
    1) public double              data;

    2)     private static int var = 10;

    3)     protected static boolean check;

    4)     private String stdName[] = new String[351];

    5)     public static int m[][] = new int[8][5];

    6)     private void show(String stdName, double grade)

    7)     protected static int search(int num[], int x)

    8)     public double[][] mulMatrix(double a[][], double b[][])


    © สงวนลิขสิทธิ์ พฤศจิกายน 2553 (ปรับปร ุงครังที่ 7 ฉบับใช้ติวภาค 2/2553) เรียบเรียงโดย วงศ์ยศ เกิดศรี (แบงค์)
                                                ้
ANSWER 12-13                                                       Computer Programming using Java              5
9)     public static int[] union(int x[], int y[])



โจทย์ ข้อที่ 8 [ระดับง่ าย]
 ข้ อ คําตอบ                   ข้ อ คําตอบ                 ข้ อ คําตอบ                  ข้ อ คําตอบ
  1.         B                 6.      A                   11.     C                    16.     D
  2.         D                 7.      D                   12.     B                    17.     C
  3.         B                 8.      D                   13.     D                    18.     D
  4.         C                 9.      A                   14.     A                    19.     B
  5.         B                 10.     D                   15.     B                    20.     C


โจทย์ ข้อที่ 9 [ระดับปานกลาง]
 0,0
 6,10
 Good By A
 See You F
 0,0
 5,7
 5,7
 9,7
 9,7
 I Love Java



โจทย์ ข้อที่ 10 [ระดับปานกลาง]
public class Dice {
     //แอตทริบวประจําอ๊ อบเจ็คชื่อ face และ value
              ิ
      public int face;
      public int value;

     //ตัวสร้ างแบบไม่ มีพารามิเตอร์
      public Dice() {
        face = 2;
        roll();
      }


     //ตัวสร้ างแบบมีพารามิเตอร์ หนึ่งตัว
      public Dice(int f) {
        face = f;
        roll();
      }



© สงวนลิขสิทธิ์ พฤศจิกายน 2553 (ปรับปร ุงครังที่ 7 ฉบับใช้ติวภาค 2/2553) เรียบเรียงโดย วงศ์ยศ เกิดศรี (แบงค์)
                                            ้
6     Computer Programming using Java                                                            ANSWER 12-13


       //ตัวสร้ างแบบมีพารามิเตอร์ สองตัว
        public Dice(int f, int v) {
          face = f;
          value = v;
        }


       //เมท็อดประจําอ๊ อบเจ็คชื่อ roll
        public void roll() {
          value = (int)(Math.random() * face) + 1;
        }


       //เมท็อดประจําอ๊ อบเจ็คชื่อ setValue
        public void setValue(int v) {
          value = v;
        }


       //เมท็อดประจําอ๊ อบเจ็คชื่อ getFace
        public int getFace() {
          return face;
        }


       //เมท็อดประจําอ๊ อบเจ็คชื่อ getValue
        public int getValue() {
          return value;
        }


       //เมท็อดประจําอ๊ อบเจ็คชื่อ show
        public void show() {
          System.out.println("Face: " + face);
          System.out.println("Value: " + value);
        }

    } //End of class




    © สงวนลิขสิทธิ์ พฤศจิกายน 2553 (ปรับปร ุงครังที่ 7 ฉบับใช้ติวภาค 2/2553) เรียบเรียงโดย วงศ์ยศ เกิดศรี (แบงค์)
                                                ้
ANSWER 12-13                                                       Computer Programming using Java              7
public class TestDice {
   /* สร้ างลกเต๋ า 3 ลก ในรปของอ๊ อบเจ็คที่ช่ ือ d1, d2 และ d3 */
             ู         ู    ู
     public static void main(String[] args) {
       Dice d1 = new Dice();
       Dice d2 = new Dice(13);
       Dice d3 = new Dice(30, 9);
       d1.show();
       d2.show();
       d3.show();
       for (int i = 1; i <= 20; i++) {
         d1.roll();
         System.out.println(d1.getValue());
         d2.roll();
         System.out.println(d2.getValue());
         d3.roll();
         System.out.println(d3.getValue());
         System.out.println("-------");
       }
     }

} //End of class


โจทย์ ข้อที่ 11 [ระดับปานกลาง]
public class RealNumber {
   //แอตทริบวประจําอ๊ อบเจ็คแบบ public ชื่อ num
            ิ
    public double num;

   //ตัวสร้ างแบบไม่ มีพารามิเตอร์
    public RealNumber() {
      num = 0.0;
    }

   //ตัวสร้ างแบบมีพารามิเตอร์
    public RealNumber(double n) {
      num = n;
    }

   //เมท็อดประจําอ๊ อบเจ็คชื่อ plus
    public double plus(double n) {
      return num + n;
    }

   //เมท็อดประจําอ๊ อบเจ็คชื่อ diff
    public double diff(double n) {
      double x = num – n;
      if (x >= 0) return x;
      else return –x;
    }

} //End of class
© สงวนลิขสิทธิ์ พฤศจิกายน 2553 (ปรับปร ุงครังที่ 7 ฉบับใช้ติวภาค 2/2553) เรียบเรียงโดย วงศ์ยศ เกิดศรี (แบงค์)
                                            ้
8     Computer Programming using Java                                                            ANSWER 12-13


    public class TestRealNumber {
       /* สร้ างจํานวนจริง 1 จํานวนในรปของอ๊ อบเจ็ค r */
                                      ู
         public static void main(String[] args) {
           RealNumber r = new RealNumber();
           System.out.println(r.plus(15));
           System.out.println(r.diff(50));
         }

    } //End of class


    โจทย์ ข้อที่ 12 [ระดับปานกลาง]
     public class Account {
       private double balance;
       public Account() {
         balance = 0.0;
       }
       public Account(double money) {
         balance = money;
       }
       public void deposit(double money) {
         balance += money;
       }
       public double withdraw(double money) {
         if (balance >= money) {
           balance -= money;
           return money;
         } else {
           return 0.0;
         }
       }
       public double getbalance() {
         return balance;
       }
     } //End of Class




    สร้ างคลาส TestAccount
     public class TestAccount {
       public static void main(String[] args) {
         Account acc = new Account(2000);
         System.out.println("New Account");
         System.out.println("Balance : " + acc.getbalance());
         double money = acc.withdraw(1500);
         System.out.println("Withdraw : " + money);
         System.out.println("Balance : " + acc.getbalance());
         acc.deposit(800);
         System.out.println("Deposit : " + 800);
         System.out.println("Balance : " + acc.getbalance());
       }
     }



    © สงวนลิขสิทธิ์ พฤศจิกายน 2553 (ปรับปร ุงครังที่ 7 ฉบับใช้ติวภาค 2/2553) เรียบเรียงโดย วงศ์ยศ เกิดศรี (แบงค์)
                                                ้
ANSWER 12-13                                                       Computer Programming using Java              9
โจทย์ ข้อที่ 13 [ระดับปานกลาง]
public class PiggyBank {
    (1) แอตทริบว one, two, five และ ten
                 ิ
    (2) แอตทริบว size
               ิ
     public int one, two, five, ten;
     public int size;


    (3) ตัวสร้ าง 2 แบบ
     PiggyBank() {
       clear();
       size = 100;
     }
     PiggyBank(int s) {
       clear();
       size = s;
     }


    (4) เมท็อดประจําอ๊ อบเจ็คชื่อ clear(…)
     public void clear() {
       one = two = five = ten = 0;
     }


    (5) เมท็อดประจําอ๊ อบเจ็คชื่อ getTotal(…)
     public int getTotal() {
       return one + (2 * two) + (5 * five) + (10 * ten);
     }


    (6) เมท็อดประจําอ๊ อบเจ็คชื่อ full(…)
     public boolean full() {
       return getTotal() >= size;
     }
    (7) เมท็อดประจําอ๊ อบเจ็คชื่อ addOne(…)
     public void addOne(int c) {
       if (getTotal() + c <= size) one = one + c;
       else System.out.println("Piggy Bank Full");
     }


    (8) เมท็อดประจําอ๊ อบเจ็คชื่อ addTwo(…)
     public void addTwo(int c) {
       if (getTotal() + 2 * c <= size) two = two + c;
       else System.out.println("Piggy Bank Full");
     }


    (9) เมท็อดประจําอ๊ อบเจ็คชื่อ addFive(…)

© สงวนลิขสิทธิ์ พฤศจิกายน 2553 (ปรับปร ุงครังที่ 7 ฉบับใช้ติวภาค 2/2553) เรียบเรียงโดย วงศ์ยศ เกิดศรี (แบงค์)
                                            ้
10     Computer Programming using Java                                                            ANSWER 12-13


          public void addFive(int c) {
            if (getTotal() + 5 * c <= size) five = five + c;
            else System.out.println("Piggy Bank Full");
          }


         (10) เมท็อดประจําอ๊ อบเจ็คชื่อ addTen(…)
          public void addTen(int c) {
            if (getTotal() + 10 * c <= size) ten = ten + c;
            else System.out.println("Piggy Bank Full");
          }


     }//End of class

     สร้ างคลาส TestPiggyBank
     public class TestPiggyBank {
       public static void main(String[] args) {
            PiggyBank pb = new PiggyBank(500);
            System.out.println("Money Total : " + pb.getTotal());
            pb.addTwo(34);
            System.out.println("Add 2 Baht Money : " + 34);
            System.out.println("Money Total : " + pb.getTotal());
            pb.addTen(13);
            System.out.println("Add 10 Baht Money : " + 13);
            System.out.println("Money Total : " + pb.getTotal());


       }//End of main
     }//End of class




     © สงวนลิขสิทธิ์ พฤศจิกายน 2553 (ปรับปร ุงครังที่ 7 ฉบับใช้ติวภาค 2/2553) เรียบเรียงโดย วงศ์ยศ เกิดศรี (แบงค์)
                                                 ้
ANSWER 12-13                                                       Computer Programming using Java              11
  CHAPTER                                   คลาสและอ๊อบเจ็คแบบซับซ้อน
 ANS-13                                    (Advanced Classes and Objects)
โจทย์ ข้อที่ 1 [ระดับปานกลาง]
  เรี ยกตัวสร้ างใด    ผลลัพธ์ ท่ แสดง
                                  ี
  (ระบุหมายเลข)       ขึนบนจอภาพคือ
                        ้

          1                 0,0


          2                 13,2


          3                 13,2


      2       3             7,11


          2              11,13


      1       3             0,0


public class Num {
  ...
  public boolean isEquals(int x, int y) {
          return this.x == x && this.y == y;

   }
   public boolean isEquals(Num n) {
          return x == n.x && y == n.y;

  }
} //End of class


โจทย์ ข้อที่ 2 [ระดับยาก]
public class Coin {
   //แอตทริบว side และ value
            ิ
     public int value;
     public String side;




© สงวนลิขสิทธิ์ พฤศจิกายน 2553 (ปรับปร ุงครังที่ 7 ฉบับใช้ติวภาค 2/2553) เรียบเรียงโดย วงศ์ยศ เกิดศรี (แบงค์)
                                            ้
12     Computer Programming using Java                                                            ANSWER 12-13


        //ตัวสร้ างแบบไม่ มีพารามิเตอร์
         public Coin() {
           side = "H";
           value = 1;
         }


        //ตัวสร้ างแบบมีพารามิเตอร์ สองตัว
         public Coin(String s, int v) {
           side = s;
           value = v;
         }


        //ตัวสร้ างแบบมีพารามิเตอร์ หนึ่งตัว
         public Coin(Coin c) {
           side = c.side;
           value = c.value;
         }


        //เมท็อด flip(…)
         public void flip() {
           side = list[(int)(Math.random() * 2)];
         }


        //เมท็อด reverse(…)
         public void reverse() {
           if (side.equals("H")) {
             side = "T";
           } else {
             side = "H";
           }
         }


        //เมท็อด equals(…)
         public boolean equals(Coin c) {
           return side == c.side && value == c.value;
         }

     } //End of class




     © สงวนลิขสิทธิ์ พฤศจิกายน 2553 (ปรับปร ุงครังที่ 7 ฉบับใช้ติวภาค 2/2553) เรียบเรียงโดย วงศ์ยศ เกิดศรี (แบงค์)
                                                 ้
ANSWER 12-13                                                       Computer Programming using Java              13
/* คลาส DemoCoin */
public class DemoCoin {
  public static void main(String[] args) {
       Coin c1 = new Coin();
       Coin c2 = new Coin("H", 1);
       Coin c3 = new Coin("T", 5);
       Coin c4 = new Coin(c3);
       for (int i = 1; i <= 20; i++) {
         c1.flip();
         c2.reverse();
         c3.flip();
         c4.reverse();
         System.out.println(c1.equals(c2));
         System.out.println(c3.equals(c4));
       }


  } //End of main
} //End of class


โจทย์ ข้อที่ 3 [ระดับยาก]
public class SetOfInteger {
    //แอตทริบว iSet
             ิ
      public int iSet[];


    //ตัวสร้ างแบบที่รับพารามิเตอร์ 1 ตัวที่เป็ นอาเรย์
    public SetOfInteger(int[] x) {
         x = sort(x);
         x = removeDuplicatedMembers(x);
         iSet = new int[x.length];
         for (int i = 0; i < iSet.length; i++) {
           iSet[i] = x[i];
         }

    } //End of constructor

    //ตัวสร้ างแบบที่รับพารามิเตอร์ 1 ตัวที่เป็ นชนิด SetOfInteger
    public SetOfInteger(SetOfInteger s) {
         iSet = new int[s.iSet.length];
         for (int i = 0; i < iSet.length; i++) {
           iSet[i] = s.iSet[i];
         }

    } //End of constructor

    //เมท็อด sort(…)
    public int[] sort(int x[]) {
      ...
    } //End of method

© สงวนลิขสิทธิ์ พฤศจิกายน 2553 (ปรับปร ุงครังที่ 7 ฉบับใช้ติวภาค 2/2553) เรียบเรียงโดย วงศ์ยศ เกิดศรี (แบงค์)
                                            ้
14     Computer Programming using Java                                                            ANSWER 12-13


         //เมท็อด removeDuplicatedMembers(…)
         public int[] removeDuplicatedMembers(int x[]) {
           ...
         } //End of method

         //เมท็อด equals(…)
         public boolean equals(SetOfInteger x) {
              if (x.iSet.length == iSet.length) {
                for (int i = 0; i < x.iSet.length; i++) {
                  if (x.iSet[i] != iSet[i]) return false;
                }
                return true;
              } else {
                return false;
              }

         } //End of method

         //เมท็อด toString(…)
         public String toString() {
              String s = "";
              for (int i = 0; i < iSet.length; i++)
                s = s + iSet[i] + " ";
              return s;

         } //End of method

         //เมท็อด addElement(…)
         public void addElement(int a) {
              int x[] = new int[iSet.length + 1];
              for (int i = 0; i < x.length - 1; i++)
                x[i] = iSet[i];
              x[x.length - 1] = a;
              x = sort(x);
              x = removeDuplicatedMembers(x);
              iSet = x;

         } //End of method

         //เมท็อด findElement(…)
         public int findElement(int a) {
              for (int i = 0; i < iSet.length; i++)
                if (iSet[i] == a) return i;
              return -1;

         } //End of method




     © สงวนลิขสิทธิ์ พฤศจิกายน 2553 (ปรับปร ุงครังที่ 7 ฉบับใช้ติวภาค 2/2553) เรียบเรียงโดย วงศ์ยศ เกิดศรี (แบงค์)
                                                 ้
ANSWER 12-13                                                       Computer Programming using Java              15
    //เมท็อด isSubset(…)
    public boolean isSubset(SetOfInteger s) {
         int count = 0;
         for (int i = 0; i < s.iSet.length; i++) {
           for (int j = 0; j < iSet.length; j++) {
             if (s.iSet[i] == iSet[j]) {
               count++;
               break;
             }
           }
         }
         return s.iSet.length == count;

    } //End of method

    //เมท็อด union(…)
    public SetOfInteger union(SetOfInteger s) {
         int x[] = new int[s.iSet.length + iSet.length];
         for (int i = 0; i < x.length; i++) {
           if (i < iSet.length) x[i] = iSet[i];
           else x[i] = s.iSet[i - iSet.length];
         }
         SetOfInteger un = new SetOfInteger(x);
         return un;

    } //End of method

    //เมท็อด intersect(…)
    public SetOfInteger intersect(SetOfInteger s) {
         int x[] = new int[s.iSet.length];
         int len = 0;
         for (int i = 0; i < s.iSet.length; i++) {
           for (int j = 0; j < this.iSet.length; j++) {
             if (s.iSet[i] == this.iSet[j]) {
               x[len] = s.iSet[i];
               len++;
               break;
             }
           }
         }
         int n[] = new int[len];
         for (int i = 0; i < n.length; i++)
           n[i] = x[i];
         SetOfInteger inter = new SetOfInteger(n);
         return inter;

   } //End of method
} //End of class




© สงวนลิขสิทธิ์ พฤศจิกายน 2553 (ปรับปร ุงครังที่ 7 ฉบับใช้ติวภาค 2/2553) เรียบเรียงโดย วงศ์ยศ เกิดศรี (แบงค์)
                                            ้
16     Computer Programming using Java                                                            ANSWER 12-13


     โจทย์ ข้อที่ 4 [ระดับยาก]
     public class Student {
        //แอตทริบวประจําอ๊ อบเจ็ค 3 ตัว
                 ิ
          private int id;
          private String name;
          private double score[];


        //ตัวสร้ างแบบไม่ กาหนดพารามิเตอร์
                           ํ
          Student() {
            id = 0;
            name = "";
            score = new double[0];
          }

        //ตัวสร้ างแบบ 3 พารามิเตอร์
          Student(int i, String n, int x) {
            id = i;
            name = n;
            score = new double[x];
          }


        //ตัวสร้ างแบบ 1 พารามิเตอร์
          Student(Student s) {
            id = s.getID();
            name = s.getName();
            score = s.getScore();
          }

         //เมท็อดประจําอ๊ อบเจ็ค 4 เมท็อด getID(…), getName(…), getScore(…)และ setScore(…)
          public int getID() {
            return id;
          }
          public String getName() {
            return name;
          }
          public double[] getScore() {
            return score;
          }
          public void setScore(double scr[]) {
            for (int i = 0; i < scr.length; i++) {
              score[i] = scr[i];
            }
          }

     } //End of class




     © สงวนลิขสิทธิ์ พฤศจิกายน 2553 (ปรับปร ุงครังที่ 7 ฉบับใช้ติวภาค 2/2553) เรียบเรียงโดย วงศ์ยศ เกิดศรี (แบงค์)
                                                 ้
ANSWER 12-13                                                       Computer Programming using Java              17
คลาส Freshmen
import java.util.Scanner;
public class Freshmen {
  public static void main(String[] args) {
    Scanner kb = new Scanner(System.in);
      //กําหนดให้ มีนิสิต 800 คน
       Student s[] = new Student[800];


      //กําหนดค่ าเริ่มต้ นให้ กับเลขประจําตัวของนิสิต ชื่อนิสิต จํานวนวิชา
       for (int i = 0; i < s.length; i++) {
         int id = (53001 + i) * 100 + 21;
         System.out.print("Enter name : ");
         String name = kb.nextLine();
         s[i] = new Student(id, name, 4);
       }


      //เรียกใช้ งานเมท็อด setScore(…)
       for (int i = 0; i < s.length; i++) {
         double scr[] = new double[4];
         for (int j = 0; j < scr.length; j++)
           scr[j] = Math.random() * 100;
         s[i].setScore(scr);
       }


      //แสดงเลขประจําตัวนิสิต ชื่อนิสิต และคะแนนทัง 4 รายวิชาของนิสิตแต่ ละคน
                                                  ้
       for (int i = 0; i < s.length; i++) {
         System.out.print(s[i].getID() + "t" + s[i].getName() + "t");
         for (int j = 0; j < s[i].getScore().length; j++)
           System.out.print(s[i].getScore()[j] + "t");
         System.out.println();
       }


      //คํานวนหาคะแนนเฉลี่ยของแต่ ละรายวิชา
       for (int j = 0; i < s[0].getScore().length; j++) {
         double sum = 0.0;
         for (int i = 0; i < s.length; i++) {
           sum += s[i].getScore()[j];
         }
         System.out.println(sum / s.length);
       }


  } //End of main
} //End of class




© สงวนลิขสิทธิ์ พฤศจิกายน 2553 (ปรับปร ุงครังที่ 7 ฉบับใช้ติวภาค 2/2553) เรียบเรียงโดย วงศ์ยศ เกิดศรี (แบงค์)
                                            ้
18     Computer Programming using Java                                                            ANSWER 12-13


     โจทย์ ข้อที่ 5 [ระดับยาก]
     1. คลาส Owner
     public class Owner {
         //แอตทริบว id และแอตทริบว name
                  ิ              ิ
          private int id;
          private String name;


         //ตัวสร้ างแบบไม่ มีพารามิเตอร์
          public Owner() {
            id = 0;
            name = "";
          }


         //ตัวสร้ างแบบที่มีพารามิเตอร์ 2 ตัว
          public Owner(int i, String n)
            id = i;
            name = n;
          }


         //ตัวสร้ างแบบที่มีพารามิเตอร์ 1
          public Owner(Owner own) {
            id = own.getID();
            name = own.getName();
          }


         //เมท็อด getId(…)
          public int getID() {
            return id;
          }


         //เมท็อด getName(…)
          public String getName() {
            return name;
          }


         //เมท็อด setID(…)
          public void setID(int i) {
            id = i;
          }


         //เมท็อด setName(…)
          public void setName(String n) {
            name = n;
          }


     © สงวนลิขสิทธิ์ พฤศจิกายน 2553 (ปรับปร ุงครังที่ 7 ฉบับใช้ติวภาค 2/2553) เรียบเรียงโดย วงศ์ยศ เกิดศรี (แบงค์)
                                                 ้
ANSWER 12-13                                                       Computer Programming using Java              19
    //เมท็อด show(…)
     public void show() {
       System.out.println("ID : " + id);
       System.out.println("Name : " + name);
     }

} //End of class

2. คลาส Land
public class Land {
    //แอตทริบว n และแอตทริบว price
             ิ             ิ
     public Owner n;
     public double price;


    //ตัวสร้ างแบบไม่ มีพารามิเตอร์
     public Land() {
       n = new Owner();
       price = 0.0;
     }


    //ตัวสร้ างแบบมีพารามิเตอร์ 2 ตัว
     public Land(Owner w, double p) {
       n = new Owner(w);
       price = p;
     }


    //เมท็อด setOwner(…)
     public void setOwner(Owner w) {
       n.setID(w.getID());
       n.setName(w.getName());
     }


    //เมท็อด setPrice(…)
     public void setPrice(double p) {
       price = p;
     }


    //เมท็อด show(…)
     public void show() {
       n.show();
       System.out.println("Price : " + price);
     }

} //End of class




© สงวนลิขสิทธิ์ พฤศจิกายน 2553 (ปรับปร ุงครังที่ 7 ฉบับใช้ติวภาค 2/2553) เรียบเรียงโดย วงศ์ยศ เกิดศรี (แบงค์)
                                            ้
20     Computer Programming using Java                                                            ANSWER 12-13


     3. คลาส City
     import java.util.Scanner;
     public class City {
       public static void main(String[] args) {
           //อาเรย์ ของอ๊ อบเจ็ค Land
            Land a[][] = new Land[50][60];


           //กําหนดค่ าเริ่มต้ นให้ กับที่ดนทุกแปลง
                                           ิ
            for (int i = 0; i           < a.length; i++) {
              for (int j = 0;           j < a[i].length; j++) {
                Owner n = new           Owner();
                a[i][j] = new           Land(n, (int)(Math.random() * 10000000) + 1);
              }
            }


           //อ๊ อบเจ็คชื่อ ow1
            Owner ow1 = new Owner(1001, "Tukie");
            ow1.show();


           //อ๊ อบเจ็คชื่อ ow2
            Owner ow2 = new Owner(1002, "Annie");
            ow2.show();


           //ให้ ow1 ครอบครองที่ดนในแปลงตําแหน่ งที่ (4, 9)
                                 ิ
            a[4][9].setOwner(ow1);
            a[4][9].show();


           //เปลี่ ยนราคาที่ดนที่ ow1 ครองครองอย่ ู
                             ิ
            a[4][9].setPrice(30000000.0);
            a[4][9].show();


           //เปลี่ ยนให้ ow2 เข้ าไปครอบครองที่ดนแปลงที่ ow1 ครอบครองอย่ ู
                                                ิ
            a[4][9].setOwner(ow2);
            a[4][9].show();


           //กําหนดให้ ow1 เข้ าครอบครองที่ดนแปลงใหม่ 50 แปลง
                                            ิ
            for (int i = 0; i < a.length; i++) {
              a[i][0].setOwner(ow1);
              a[i][0].setPrice(50000000.0);
              a[i][0].show();
            }


       } //End of main
     } //End of class

     © สงวนลิขสิทธิ์ พฤศจิกายน 2553 (ปรับปร ุงครังที่ 7 ฉบับใช้ติวภาค 2/2553) เรียบเรียงโดย วงศ์ยศ เกิดศรี (แบงค์)
                                                 ้
ANSWER 12-13                                                       Computer Programming using Java              21
โจทย์ ข้อที่ 6 [ระดับยาก]
คลาส SScanner
import java.util.Scanner;
import java.io.InputStream;
public class SScanner {
  //แอตทริบว kb
           ิ
    public Scanner kb;


  //ตัวสร้ าง
     public SScanner(InputStream in) {
       kb = new Scanner(in);
     }


   //เมท็อด nextInt(…)
     public int nextInt() {
       return kb.nextInt();
     }


   //เมท็อด nextLine(…)
     public String nextLine() {
       String s = "";
       while (true) {
         s = kb.nextLine();
         if(s.length() != 0) break;
       }
       return s;
     }

} //End of class


คลาส TestSScanner
public class TestSScanner {
  public static void main(String[] args) {
       SScanner kb = new SScanner(System.in);
       System.out.print("Enter Int: ");
       int a = kb.nextInt();
       System.out.print("Enter Str: ");
       String b = kb.nextLine();
       System.out.println(a + "," + b);


  } //End of main
} //End of class




© สงวนลิขสิทธิ์ พฤศจิกายน 2553 (ปรับปร ุงครังที่ 7 ฉบับใช้ติวภาค 2/2553) เรียบเรียงโดย วงศ์ยศ เกิดศรี (แบงค์)
                                            ้
22     Computer Programming using Java                                                            ANSWER 12-13


     โจทย์ ข้อที่ 7 [ระดับเทพ]
     1. คลาส Fruit
     public class Fruit {
         //แอตทริบวประจําอ๊ อบเจ็คชื่อ name และ weigh
                  ิ
          public String name;
          public double weigh;

         //ตัวสร้ าง 4 แบบ ดังต่ อไปนี ้
          public Fruit() {
            name = "";
            weigh = 0.0;
          }

          public Fruit(String n) {
            name = n;
            weigh = wh[(int)(Math.random() * 5)];
          }

          public Fruit(String n, double w) {
            name = n;
            weigh = w;
          }

          public Fruit(Fruit f) {
            name = f.name;
            weigh = f.weigh;
          }


         //เมท็อดประจําอ๊ อบเจ็คชื่อ showFruit
          public void showFruit() {
            System.out.println(name + " " + weigh + " kg.");
          }

     } //End of class


     2. คลาส Basket
     public class Basket {
         //แอตทริบวประจําอ๊ อบเจ็คชื่อ fruit และ count
                  ิ
          public Fruit fruit[];
          public int count;


         //ตัวสร้ างแบบไม่ มีพารามิเตอร์
          public Basket() {
            fruit = new Fruit[10];
            count = 0;
          }




     © สงวนลิขสิทธิ์ พฤศจิกายน 2553 (ปรับปร ุงครังที่ 7 ฉบับใช้ติวภาค 2/2553) เรียบเรียงโดย วงศ์ยศ เกิดศรี (แบงค์)
                                                 ้
ANSWER 12-13                                                       Computer Programming using Java              23
    //ตัวสร้ างแบบหนึ่งพารามิเตอร์ ชนิดจํานวนเต็ม
     public Basket(int n) {
       fruit = new Fruit[n];
       count = 0;
     }


    //ตัวสร้ างแบบหนึ่งพารามิเตอร์ ชนิด Basket
     public Basket(Basket b) {
       fruit = new Fruit[b.fruit.length];
       for (int i = 0; i < fruit.length; i++) {
         fruit[i] = b.fruit[i];
       }
       count = b.count;
     }

    //เมท็อดประจําอ๊ อบเจ็คชื่อ isFull
     public boolean isFull() {
       return count == fruit.length;
     }


    //เมท็อดประจําอ๊ อบเจ็คชื่อ isEmpty
     public boolean isEmpty() {
       return count == 0;
     }


    //เมท็อดประจําอ๊ อบเจ็คชื่อ takeIn
     public void takeIn(Fruit f) {
       if (!isFull()) {
         fruit[count] = f;
         count++;
       } else {
         System.out.println("Basket Full");
       }
     }


    //เมท็อดประจําอ๊ อบเจ็คชื่อ takeOut
     public Fruit takeOut() {
       if (!isEmpty()) {
         count--;
         Fruit f = fruit[count];
         fruit[count] = null;
         return f;
       } else {
         System.out.println("Basket Empty");
         return null;
       }
     }




© สงวนลิขสิทธิ์ พฤศจิกายน 2553 (ปรับปร ุงครังที่ 7 ฉบับใช้ติวภาค 2/2553) เรียบเรียงโดย วงศ์ยศ เกิดศรี (แบงค์)
                                            ้
24     Computer Programming using Java                                                            ANSWER 12-13


         //เมท็อดประจําอ๊ อบเจ็คชื่อ getTotalWeigh
          public double getTotalWeigh() {
            double weigh = 0.0;
            for (int i = 0; i < count; i++) {
              weigh += fruit[i].weigh;
            }
            return weigh;
          }


         //เมท็อดประจําอ๊ อบเจ็คชื่อ showBasket
          public void showBasket() {
            for (int i = 0; i < count; i++) {
              fruit[i].showFruit();
            }
          }

     } //End of class

     3. คลาส FruitBasket
     import java.util.Scanner;
     public class FruitBasket {
         //เมท็อดประจําคลาสชื่อ getFruitBasket
          public static Basket getFruitBasket(String f, double w, int n) {
            Basket bsk = new Basket(n);
            Fruit frt[] = new Fruit[n];
            for (int i = 0; i < frt.length; i++) {
              if (w <= 0.0) frt[i] = new Fruit(f);
              else frt[i] = new Fruit(f, w);
              bsk.takeIn(frt[i]);
            }
            return bsk;
          }


         //เมท็อดประจําคลาสชื่อ showFruitBasket
          public static void showFruitBasket(Basket b) {
            System.out.println("Total Weigh: " + b.getTotalWeigh());
            System.out.println("Total Fruit: " + b.count);
            System.out.println("List of Fruit: ");
            b.showBasket();
          }


        //เมท็อด main
        public static void main(String[] args) {
           //สร้ างกระเช้ าผลไม้ ขึนมา 3 กระเช้ า
                                   ้
            Basket      x[] = new Basket[3];
            x[0] =      getFruitBasket("Apple", 0.12, 25);
            x[1] =      getFruitBasket("Orange", 0.1, 30);
            x[2] =      getFruitBasket("Melon", 0.45, 15);



     © สงวนลิขสิทธิ์ พฤศจิกายน 2553 (ปรับปร ุงครังที่ 7 ฉบับใช้ติวภาค 2/2553) เรียบเรียงโดย วงศ์ยศ เกิดศรี (แบงค์)
                                                 ้
ANSWER 12-13                                                       Computer Programming using Java              25
      //สร้ างกระเช้ าผลไม้ เปล่ าๆ ขึนมาอีก 6 กระเช้ า
                                      ้
       Basket y[] = new Basket[6];
       for(int i = 0; i < y.length; i++) {
         y[i] = new Basket();
         int j = 0;
         while (!y[i].isFull()) {
           if (!x[j].isEmpty()) y[i].takeIn(x[j].takeOut());
           if (y[i].getTotalWeigh() > 2.0) {
             Fruit tmp = y[i].takeOut();
             break;
           }
           j++;
           if (j > 2) j = 0;
         }
         System.out.println("-----Basket " + (i + 1) + "-----");
         showFruitBasket(y[i]);
       }

  } //End of main
} //End of class


โจทย์ ข้อที่ 8 [ระดับเทพ]
คลาส Student
public class Student {
    //แอตทริบว id แอตทริบว name และแอตทริบว noob
             ิ           ิ                ิ
     private int id;
     private String name;
     private int noob;


    //ตัวสร้ างแบบไม่ มีพารามิเตอร์
     Student() {
       id = 0;
       name = "";
       noob = 0;
     }


    //ตัวสร้ างแบบที่รับพารามิเตอร์ 3 ตัว
     Student(int i, String n, int x) {
       id = i;
       name = n;
       noob = x;
     }


    //ตัวสร้ างแบบที่รับพารามิเตอร์ เป็ นชนิด Student
     Student(Student s) {
       set(s);
     }


© สงวนลิขสิทธิ์ พฤศจิกายน 2553 (ปรับปร ุงครังที่ 7 ฉบับใช้ติวภาค 2/2553) เรียบเรียงโดย วงศ์ยศ เกิดศรี (แบงค์)
                                            ้
26     Computer Programming using Java                                                            ANSWER 12-13


         //เมท็อด getID(…)
          public int getID() {
            return id;
          }


         //เมท็อด getName(…)
          public String getName() {
            return name;
          }


         //เมท็อด getNoob(…)
          public int getNoob() {
            return noob;
          }


         //เมท็อด set(…)
          public     void set(Student s) {
            id =     s.getID();
            name     = s.getName();
            noob     = s.getNoob();
          }


         //เมท็อด show(…)
          public void show() {
            String s = "";
            if (noob == 1) s = "1-Noob";
            else if (noob == 2) s = "2-Father Noob";
            else if (noob == 3) s = "3-God Noob";
            else if (noob == 4) s = "4-Hof Noob";
            else s = "Unknown";
            System.out.println(id + " " + name + " [" + s + "]");
          }


     } //End of class


     คลาส Room
     public class Room {
         //แอตทริบว s ที่เป็ นอาเรย์ 2 มิตชนิด Student
                  ิ                       ิ
          public static Student s[][] = new Student[16][40];




     © สงวนลิขสิทธิ์ พฤศจิกายน 2553 (ปรับปร ุงครังที่ 7 ฉบับใช้ติวภาค 2/2553) เรียบเรียงโดย วงศ์ยศ เกิดศรี (แบงค์)
                                                 ้
ANSWER 12-13                                                       Computer Programming using Java              27
    //เมท็อด setSeat(…)
     public static void setSeat(Student st) {
       int startRow = s.length - 1 - (s.length / 4) * (4 - st.getNoob());
       for (int i = startRow; i < startRow + 4; i++) {
         for (int j = 0; j < s[i].length; j++) {
           if (s[i][j].getName().equals("") &&
               j != s[i].length / 2 &&
               j != s[i].length / 2 - 1) {
             s[i][j].set(st);
             return;
           }
         }
       }
       System.out.println("No Reserved Seat");
     }


    //เมท็อด showroom(…)
     public static void showRoom() {
       for (int i = 0; i < s.length; i++) {
         for (int j = 0; j < s[i].length; j++) {
           if (j == s[i].length / 2 || j == s[i].length / 2 - 1) {
             System.out.print(" ");
           } else {
             if (!s[i][j].getName().equals(""))
               System.out.print(s[i][j].getName().substring(0, 1) + " ");
             else
               System.out.print("# ");
           }
         }
         System.out.println();
       }
     }


    //เมท็อด showStudent(…)
     public static void showStudent(int r, int c) {
       System.out.print("Seat Row " + r + " Column " + c + "t");
       s[r + s.length - 2][c - 1].show();
     }


    //เมท็อด showStudent(…)
     public static void showStudent() {
       for (int i = s.length - 1; i >= 0; i--) {
         for (int j = 0; j < s[i].length; j++) {
           if (!s[i][j].getName().equals("")) {
             System.out.print("Seat Row " + (s.length - i) + " Column " +
                             (j + 1) + "t");
             s[i][j].show();
           }
         }
       }
     }


© สงวนลิขสิทธิ์ พฤศจิกายน 2553 (ปรับปร ุงครังที่ 7 ฉบับใช้ติวภาค 2/2553) เรียบเรียงโดย วงศ์ยศ เกิดศรี (แบงค์)
                                            ้
28     Computer Programming using Java                                                            ANSWER 12-13


         //เมท็อด main(…)
          public static void main(String[] args) {
            for (int i = 0; i < s.length; i++) {
              for (int j = 0; j < s[i].length; j++) {
                s[i][j] = new Student();
              }
            }
            Student s1 = new Student(53300121, "Akeudom", 1); setSeat(s1);
            Student s2 = new Student(53300221, "Phakhin", 1); setSeat(s2);
            Student s3 = new Student(53300321, "Taparb", 2); setSeat(s3);
            Student s4 = new Student(53300421, "Ong-ard", 3); setSeat(s4);
            Student s5 = new Student(53300521, "Wongyos", 4); setSeat(s5);
            showRoom();
            showStudent();
          }

     } //End of class




     © สงวนลิขสิทธิ์ พฤศจิกายน 2553 (ปรับปร ุงครังที่ 7 ฉบับใช้ติวภาค 2/2553) เรียบเรียงโดย วงศ์ยศ เกิดศรี (แบงค์)
                                                 ้

More Related Content

PDF
Java-Answer Chapter 10-11
PDF
Java-Answer Chapter 05-06
PDF
Java-Chapter 08 Methods
PDF
Java-Answer Chapter 08-09
PDF
Java-Answer Chapter 12-13 (For Print)
PDF
Java-Chapter 13 Advanced Classes and Objects
PDF
Java-Answer Chapter 01-04
PDF
Java-Answer Chapter 01-04 (For Print)
Java-Answer Chapter 10-11
Java-Answer Chapter 05-06
Java-Chapter 08 Methods
Java-Answer Chapter 08-09
Java-Answer Chapter 12-13 (For Print)
Java-Chapter 13 Advanced Classes and Objects
Java-Answer Chapter 01-04
Java-Answer Chapter 01-04 (For Print)

What's hot (20)

PDF
Java-Answer Chapter 08-09 (For Print)
PDF
Java-Answer Chapter 10-11 (For Print)
PDF
Java-Answer Chapter 07 (For Print)
PDF
Java-Answer Chapter 07
PDF
Java-Answer Chapter 05-06 (For Print)
PDF
Java-Chapter 11 Recursions
PDF
Java-Chapter 12 Classes and Objects
PDF
Java-Chapter 01 Introduction to Java Programming
PDF
คลาสและการเขียนโปรแกรมเชิงวัตถุเบื้องต้น
PDF
6.Flow control
PDF
PPTX
สูตรอนุพันธ์ของฟังก์ชัน อนินท์ญา
PDF
Java Programming: อะเรย์และคอลเล็กชั่น
PPT
Java Programming [8/12] : Arrays and Collection
PDF
Expolog clipvidva
DOC
ประวัติ แคลคูลัส
PDF
Java-Chapter 10 Two Dimensional Arrays
PPT
09 multi arrays
PDF
Function3
PPT
07 methods
Java-Answer Chapter 08-09 (For Print)
Java-Answer Chapter 10-11 (For Print)
Java-Answer Chapter 07 (For Print)
Java-Answer Chapter 07
Java-Answer Chapter 05-06 (For Print)
Java-Chapter 11 Recursions
Java-Chapter 12 Classes and Objects
Java-Chapter 01 Introduction to Java Programming
คลาสและการเขียนโปรแกรมเชิงวัตถุเบื้องต้น
6.Flow control
สูตรอนุพันธ์ของฟังก์ชัน อนินท์ญา
Java Programming: อะเรย์และคอลเล็กชั่น
Java Programming [8/12] : Arrays and Collection
Expolog clipvidva
ประวัติ แคลคูลัส
Java-Chapter 10 Two Dimensional Arrays
09 multi arrays
Function3
07 methods
Ad

Viewers also liked (10)

PDF
Java-Chapter 04 Iteration Statements
PDF
Java-Chapter 14 Creating Graphics with DWindow
PDF
Java-Chapter 06 File Operations
PDF
Java-Chapter 02 Data Operations and Processing
PDF
How to Study and Research in Computer-related Master Program
PDF
Java-Chapter 09 Advanced Statements and Applications
PDF
Java-Chapter 07 One Dimensional Arrays
PDF
Java-Chapter 05 String Operations
PDF
Discrete-Chapter 01 Sets
PDF
ม.1 เตรียมความพร้อมการให้เหตุผล
Java-Chapter 04 Iteration Statements
Java-Chapter 14 Creating Graphics with DWindow
Java-Chapter 06 File Operations
Java-Chapter 02 Data Operations and Processing
How to Study and Research in Computer-related Master Program
Java-Chapter 09 Advanced Statements and Applications
Java-Chapter 07 One Dimensional Arrays
Java-Chapter 05 String Operations
Discrete-Chapter 01 Sets
ม.1 เตรียมความพร้อมการให้เหตุผล
Ad

Similar to Java-Answer Chapter 12-13 (20)

PPTX
Computer Programming 3
PDF
Java Programming: การเขียนโปรแกรมภาษาจาวาเชิงอ็อบเจกต์
PDF
Applet 5 class_inheritance
PDF
Applet 5 class_inheritance
PDF
PDF
พื้นฐานภาษาจาวา
PDF
บทที่ 3 พื้นฐานภาษา Java
PDF
บทที่ 3 พื้นฐานภาษา Java
PPT
พื้นฐานภาษาจาวา
PPT
Java Programming [2/12] : Overview of Java Programming Language
PPT
Method part2
PDF
Java Programming: หลักการเชิงอ็อบเจกต์
PDF
หน่วยที่2 เรื่อง โครงสร้างข้อมูล นางสาว สิรินยา ปาโจด ม.5
PDF
หน่วยที่2 โครงสร้างข้อมูล นาย ธนพงษ์ น่านกร เลขที่ 1 ชั้น ม.5
PDF
คลาสและการเขียนโปรแกรมเชิงวัตถุเบื้องต้น
PPT
Java Programming [4/12] : Object Oriented Concept
PDF
บทที่5 ข้อมูลชนิดอาร์เรย์และสตริง
PDF
แนวคิดในการเขียนโปรแกรม
PDF
บทที่ 5 ข้อมูลชนิดอาร์เรย์และสตริง 6.1
Computer Programming 3
Java Programming: การเขียนโปรแกรมภาษาจาวาเชิงอ็อบเจกต์
Applet 5 class_inheritance
Applet 5 class_inheritance
พื้นฐานภาษาจาวา
บทที่ 3 พื้นฐานภาษา Java
บทที่ 3 พื้นฐานภาษา Java
พื้นฐานภาษาจาวา
Java Programming [2/12] : Overview of Java Programming Language
Method part2
Java Programming: หลักการเชิงอ็อบเจกต์
หน่วยที่2 เรื่อง โครงสร้างข้อมูล นางสาว สิรินยา ปาโจด ม.5
หน่วยที่2 โครงสร้างข้อมูล นาย ธนพงษ์ น่านกร เลขที่ 1 ชั้น ม.5
คลาสและการเขียนโปรแกรมเชิงวัตถุเบื้องต้น
Java Programming [4/12] : Object Oriented Concept
บทที่5 ข้อมูลชนิดอาร์เรย์และสตริง
แนวคิดในการเขียนโปรแกรม
บทที่ 5 ข้อมูลชนิดอาร์เรย์และสตริง 6.1

More from Wongyos Keardsri (19)

PPT
The next generation intelligent transport systems: standards and applications
PPT
IP address anonymization
PDF
SysProg-Tutor 03 Unix Shell Script Programming
PDF
SysProg-Tutor 02 Introduction to Unix Operating System
PDF
SysProg-Tutor 01 Introduction to C Programming Language
PDF
Discrete-Chapter 11 Graphs Part III
PDF
Discrete-Chapter 11 Graphs Part II
PDF
Discrete-Chapter 11 Graphs Part I
PDF
Discrete-Chapter 10 Trees
PDF
Discrete-Chapter 09 Algorithms
PDF
Discrete-Chapter 08 Relations
PDF
Discrete-Chapter 07 Probability
PDF
Discrete-Chapter 06 Counting
PDF
Discrete-Chapter 05 Inference and Proofs
PDF
Discrete-Chapter 04 Logic Part II
PDF
Discrete-Chapter 04 Logic Part I
PDF
Discrete-Chapter 03 Matrices
PDF
Discrete-Chapter 02 Functions and Sequences
PDF
Discrete-Chapter 12 Modeling Computation
The next generation intelligent transport systems: standards and applications
IP address anonymization
SysProg-Tutor 03 Unix Shell Script Programming
SysProg-Tutor 02 Introduction to Unix Operating System
SysProg-Tutor 01 Introduction to C Programming Language
Discrete-Chapter 11 Graphs Part III
Discrete-Chapter 11 Graphs Part II
Discrete-Chapter 11 Graphs Part I
Discrete-Chapter 10 Trees
Discrete-Chapter 09 Algorithms
Discrete-Chapter 08 Relations
Discrete-Chapter 07 Probability
Discrete-Chapter 06 Counting
Discrete-Chapter 05 Inference and Proofs
Discrete-Chapter 04 Logic Part II
Discrete-Chapter 04 Logic Part I
Discrete-Chapter 03 Matrices
Discrete-Chapter 02 Functions and Sequences
Discrete-Chapter 12 Modeling Computation

Java-Answer Chapter 12-13

  • 1. ANSWER 12-13 Computer Programming using Java 1 CHAPTER คลาสและอ๊อบเจ็ค ANS-12 (Classes and Objects) โจทย์ ข้อที่ 1 [ระดับง่ าย] 1 public class Num { 2 private int x; 3 private double y; Attribute 4 public Num() { 5 x = 0; y = 0.0; 6 } Constructor 7 public Num(int m, double n) { 8 x = m; y = n; 9 } 10 public int addNX(int n) { 11 return n + x; Class (ต้ นแบบ) 12 } 13 public double addNY(double n) { 14 return n + y; Method ผลลัพธ์ ท่ ีได้ 15 } 16 public void showXY() { 5 17 System.out.println(x); 7.0 18 System.out.println(y); 9 19 } 20 } 20.0 1 public class RunNum { 2 public static void main(String[] args){ 3 Num obj = new Num(5, 7.0); Object 4 obj.showXY(); 5 int a = obj.addNX(4); 6 double b = obj.addNY(13.0); Class (ประมวลผล) 7 System.out.println(a); Main Method 8 System.out.println(b); 9 } 10 } โจทย์ ข้อที่ 2 [ระดับง่ าย] 1) 6) 11) 2) 7) 12) 3) 8) 13) 4) 9) 14) 5) 10) 15) © สงวนลิขสิทธิ์ พฤศจิกายน 2553 (ปรับปร ุงครังที่ 7 ฉบับใช้ติวภาค 2/2553) เรียบเรียงโดย วงศ์ยศ เกิดศรี (แบงค์) ้
  • 2. 2 Computer Programming using Java ANSWER 12-13 โจทย์ ข้อที่ 3 [ระดับง่ าย] public class Course { //แอตทริบว 3 ตัว ิ private int id; public String title; protected double credit; //ตัวสร้ างแบบไม่ มีพารามิเตอร์ ใดๆ public Course() { id = 0; title = ""; credit = 0.0; } //ตัวสร้ างแบบมีพารามิเตอร์ 3 ตัว public Course(int i, String t, double c) { id = i; title = t; credit = c; } //เมท็อด setID(…) public void setID(int i) { id = i; } //เมท็อด setTitle(…) public void setTitle(String t) { title = t; } //เมท็อด setCredit(…) public void setCredit(double c) { credit = c; } //เมท็อด getLevel(…) public String getLevel() { if (id % 1000 / 100 <= 4) { return "Undergraduate"; } else { return "Graduate"; } } © สงวนลิขสิทธิ์ พฤศจิกายน 2553 (ปรับปร ุงครังที่ 7 ฉบับใช้ติวภาค 2/2553) เรียบเรียงโดย วงศ์ยศ เกิดศรี (แบงค์) ้
  • 3. ANSWER 12-13 Computer Programming using Java 3 //เมท็อด getFaculty(…) public int getFaculty() { return id / 100000; } //เมท็อด getDepartment(…) public int getDepartment() { return id / 1000 % 100; } //เมท็อด toString(…) public String toString() { return id + " " + title + " (" + credit + ")"; } } //End of class โจทย์ ข้อที่ 4 [ระดับง่ าย] 9 1) แอตทริบว y หรือตัวแปร y ิ 5 7 2) ตัวแปร y (ในบรรทัดที่ 13) 1 1 12 11 1 12 โจทย์ ข้อที่ 5 [ระดับง่ าย] 0, 101,Taksin 103,Apisit Taksin:U Apisit:S © สงวนลิขสิทธิ์ พฤศจิกายน 2553 (ปรับปร ุงครังที่ 7 ฉบับใช้ติวภาค 2/2553) เรียบเรียงโดย วงศ์ยศ เกิดศรี (แบงค์) ้
  • 4. 4 Computer Programming using Java ANSWER 12-13 โจทย์ ข้อที่ 6 [ระดับง่ าย] //ประกาศหัวคลาส TestNumber import java.util.Scanner; public class TestNumber { public static void main(String[] args) { Scanner kb = new Scanner(System.in); //อ๊ อบเจ็คชื่อ no1 Number no1 = new Number(); //อ๊ อบเจ็คชื่อ no2 System.out.print("Enter x : "); double x = kb.nextDouble(); System.out.print("Enter y : "); double y = kb.nextDouble(); Number no2 = new Number(x, y); //แสดงผลการบวก การลบ การคณ การหาร และการม็อด ู System.out.println("Add: " + no2.add()); System.out.println("Sub: " + no2.sub()); System.out.println("Mul: " + no2.mul()); System.out.println("Div: " + no2.div()); System.out.println("Mod: " + no2.mod()); } //End of main } //End of class โจทย์ ข้อที่ 7 [ระดับง่ าย] 1) public double data; 2) private static int var = 10; 3) protected static boolean check; 4) private String stdName[] = new String[351]; 5) public static int m[][] = new int[8][5]; 6) private void show(String stdName, double grade) 7) protected static int search(int num[], int x) 8) public double[][] mulMatrix(double a[][], double b[][]) © สงวนลิขสิทธิ์ พฤศจิกายน 2553 (ปรับปร ุงครังที่ 7 ฉบับใช้ติวภาค 2/2553) เรียบเรียงโดย วงศ์ยศ เกิดศรี (แบงค์) ้
  • 5. ANSWER 12-13 Computer Programming using Java 5 9) public static int[] union(int x[], int y[]) โจทย์ ข้อที่ 8 [ระดับง่ าย] ข้ อ คําตอบ ข้ อ คําตอบ ข้ อ คําตอบ ข้ อ คําตอบ 1. B 6. A 11. C 16. D 2. D 7. D 12. B 17. C 3. B 8. D 13. D 18. D 4. C 9. A 14. A 19. B 5. B 10. D 15. B 20. C โจทย์ ข้อที่ 9 [ระดับปานกลาง] 0,0 6,10 Good By A See You F 0,0 5,7 5,7 9,7 9,7 I Love Java โจทย์ ข้อที่ 10 [ระดับปานกลาง] public class Dice { //แอตทริบวประจําอ๊ อบเจ็คชื่อ face และ value ิ public int face; public int value; //ตัวสร้ างแบบไม่ มีพารามิเตอร์ public Dice() { face = 2; roll(); } //ตัวสร้ างแบบมีพารามิเตอร์ หนึ่งตัว public Dice(int f) { face = f; roll(); } © สงวนลิขสิทธิ์ พฤศจิกายน 2553 (ปรับปร ุงครังที่ 7 ฉบับใช้ติวภาค 2/2553) เรียบเรียงโดย วงศ์ยศ เกิดศรี (แบงค์) ้
  • 6. 6 Computer Programming using Java ANSWER 12-13 //ตัวสร้ างแบบมีพารามิเตอร์ สองตัว public Dice(int f, int v) { face = f; value = v; } //เมท็อดประจําอ๊ อบเจ็คชื่อ roll public void roll() { value = (int)(Math.random() * face) + 1; } //เมท็อดประจําอ๊ อบเจ็คชื่อ setValue public void setValue(int v) { value = v; } //เมท็อดประจําอ๊ อบเจ็คชื่อ getFace public int getFace() { return face; } //เมท็อดประจําอ๊ อบเจ็คชื่อ getValue public int getValue() { return value; } //เมท็อดประจําอ๊ อบเจ็คชื่อ show public void show() { System.out.println("Face: " + face); System.out.println("Value: " + value); } } //End of class © สงวนลิขสิทธิ์ พฤศจิกายน 2553 (ปรับปร ุงครังที่ 7 ฉบับใช้ติวภาค 2/2553) เรียบเรียงโดย วงศ์ยศ เกิดศรี (แบงค์) ้
  • 7. ANSWER 12-13 Computer Programming using Java 7 public class TestDice { /* สร้ างลกเต๋ า 3 ลก ในรปของอ๊ อบเจ็คที่ช่ ือ d1, d2 และ d3 */ ู ู ู public static void main(String[] args) { Dice d1 = new Dice(); Dice d2 = new Dice(13); Dice d3 = new Dice(30, 9); d1.show(); d2.show(); d3.show(); for (int i = 1; i <= 20; i++) { d1.roll(); System.out.println(d1.getValue()); d2.roll(); System.out.println(d2.getValue()); d3.roll(); System.out.println(d3.getValue()); System.out.println("-------"); } } } //End of class โจทย์ ข้อที่ 11 [ระดับปานกลาง] public class RealNumber { //แอตทริบวประจําอ๊ อบเจ็คแบบ public ชื่อ num ิ public double num; //ตัวสร้ างแบบไม่ มีพารามิเตอร์ public RealNumber() { num = 0.0; } //ตัวสร้ างแบบมีพารามิเตอร์ public RealNumber(double n) { num = n; } //เมท็อดประจําอ๊ อบเจ็คชื่อ plus public double plus(double n) { return num + n; } //เมท็อดประจําอ๊ อบเจ็คชื่อ diff public double diff(double n) { double x = num – n; if (x >= 0) return x; else return –x; } } //End of class © สงวนลิขสิทธิ์ พฤศจิกายน 2553 (ปรับปร ุงครังที่ 7 ฉบับใช้ติวภาค 2/2553) เรียบเรียงโดย วงศ์ยศ เกิดศรี (แบงค์) ้
  • 8. 8 Computer Programming using Java ANSWER 12-13 public class TestRealNumber { /* สร้ างจํานวนจริง 1 จํานวนในรปของอ๊ อบเจ็ค r */ ู public static void main(String[] args) { RealNumber r = new RealNumber(); System.out.println(r.plus(15)); System.out.println(r.diff(50)); } } //End of class โจทย์ ข้อที่ 12 [ระดับปานกลาง] public class Account { private double balance; public Account() { balance = 0.0; } public Account(double money) { balance = money; } public void deposit(double money) { balance += money; } public double withdraw(double money) { if (balance >= money) { balance -= money; return money; } else { return 0.0; } } public double getbalance() { return balance; } } //End of Class สร้ างคลาส TestAccount public class TestAccount { public static void main(String[] args) { Account acc = new Account(2000); System.out.println("New Account"); System.out.println("Balance : " + acc.getbalance()); double money = acc.withdraw(1500); System.out.println("Withdraw : " + money); System.out.println("Balance : " + acc.getbalance()); acc.deposit(800); System.out.println("Deposit : " + 800); System.out.println("Balance : " + acc.getbalance()); } } © สงวนลิขสิทธิ์ พฤศจิกายน 2553 (ปรับปร ุงครังที่ 7 ฉบับใช้ติวภาค 2/2553) เรียบเรียงโดย วงศ์ยศ เกิดศรี (แบงค์) ้
  • 9. ANSWER 12-13 Computer Programming using Java 9 โจทย์ ข้อที่ 13 [ระดับปานกลาง] public class PiggyBank { (1) แอตทริบว one, two, five และ ten ิ (2) แอตทริบว size ิ public int one, two, five, ten; public int size; (3) ตัวสร้ าง 2 แบบ PiggyBank() { clear(); size = 100; } PiggyBank(int s) { clear(); size = s; } (4) เมท็อดประจําอ๊ อบเจ็คชื่อ clear(…) public void clear() { one = two = five = ten = 0; } (5) เมท็อดประจําอ๊ อบเจ็คชื่อ getTotal(…) public int getTotal() { return one + (2 * two) + (5 * five) + (10 * ten); } (6) เมท็อดประจําอ๊ อบเจ็คชื่อ full(…) public boolean full() { return getTotal() >= size; } (7) เมท็อดประจําอ๊ อบเจ็คชื่อ addOne(…) public void addOne(int c) { if (getTotal() + c <= size) one = one + c; else System.out.println("Piggy Bank Full"); } (8) เมท็อดประจําอ๊ อบเจ็คชื่อ addTwo(…) public void addTwo(int c) { if (getTotal() + 2 * c <= size) two = two + c; else System.out.println("Piggy Bank Full"); } (9) เมท็อดประจําอ๊ อบเจ็คชื่อ addFive(…) © สงวนลิขสิทธิ์ พฤศจิกายน 2553 (ปรับปร ุงครังที่ 7 ฉบับใช้ติวภาค 2/2553) เรียบเรียงโดย วงศ์ยศ เกิดศรี (แบงค์) ้
  • 10. 10 Computer Programming using Java ANSWER 12-13 public void addFive(int c) { if (getTotal() + 5 * c <= size) five = five + c; else System.out.println("Piggy Bank Full"); } (10) เมท็อดประจําอ๊ อบเจ็คชื่อ addTen(…) public void addTen(int c) { if (getTotal() + 10 * c <= size) ten = ten + c; else System.out.println("Piggy Bank Full"); } }//End of class สร้ างคลาส TestPiggyBank public class TestPiggyBank { public static void main(String[] args) { PiggyBank pb = new PiggyBank(500); System.out.println("Money Total : " + pb.getTotal()); pb.addTwo(34); System.out.println("Add 2 Baht Money : " + 34); System.out.println("Money Total : " + pb.getTotal()); pb.addTen(13); System.out.println("Add 10 Baht Money : " + 13); System.out.println("Money Total : " + pb.getTotal()); }//End of main }//End of class © สงวนลิขสิทธิ์ พฤศจิกายน 2553 (ปรับปร ุงครังที่ 7 ฉบับใช้ติวภาค 2/2553) เรียบเรียงโดย วงศ์ยศ เกิดศรี (แบงค์) ้
  • 11. ANSWER 12-13 Computer Programming using Java 11 CHAPTER คลาสและอ๊อบเจ็คแบบซับซ้อน ANS-13 (Advanced Classes and Objects) โจทย์ ข้อที่ 1 [ระดับปานกลาง] เรี ยกตัวสร้ างใด ผลลัพธ์ ท่ แสดง ี (ระบุหมายเลข) ขึนบนจอภาพคือ ้ 1 0,0 2 13,2 3 13,2 2 3 7,11 2 11,13 1 3 0,0 public class Num { ... public boolean isEquals(int x, int y) { return this.x == x && this.y == y; } public boolean isEquals(Num n) { return x == n.x && y == n.y; } } //End of class โจทย์ ข้อที่ 2 [ระดับยาก] public class Coin { //แอตทริบว side และ value ิ public int value; public String side; © สงวนลิขสิทธิ์ พฤศจิกายน 2553 (ปรับปร ุงครังที่ 7 ฉบับใช้ติวภาค 2/2553) เรียบเรียงโดย วงศ์ยศ เกิดศรี (แบงค์) ้
  • 12. 12 Computer Programming using Java ANSWER 12-13 //ตัวสร้ างแบบไม่ มีพารามิเตอร์ public Coin() { side = "H"; value = 1; } //ตัวสร้ างแบบมีพารามิเตอร์ สองตัว public Coin(String s, int v) { side = s; value = v; } //ตัวสร้ างแบบมีพารามิเตอร์ หนึ่งตัว public Coin(Coin c) { side = c.side; value = c.value; } //เมท็อด flip(…) public void flip() { side = list[(int)(Math.random() * 2)]; } //เมท็อด reverse(…) public void reverse() { if (side.equals("H")) { side = "T"; } else { side = "H"; } } //เมท็อด equals(…) public boolean equals(Coin c) { return side == c.side && value == c.value; } } //End of class © สงวนลิขสิทธิ์ พฤศจิกายน 2553 (ปรับปร ุงครังที่ 7 ฉบับใช้ติวภาค 2/2553) เรียบเรียงโดย วงศ์ยศ เกิดศรี (แบงค์) ้
  • 13. ANSWER 12-13 Computer Programming using Java 13 /* คลาส DemoCoin */ public class DemoCoin { public static void main(String[] args) { Coin c1 = new Coin(); Coin c2 = new Coin("H", 1); Coin c3 = new Coin("T", 5); Coin c4 = new Coin(c3); for (int i = 1; i <= 20; i++) { c1.flip(); c2.reverse(); c3.flip(); c4.reverse(); System.out.println(c1.equals(c2)); System.out.println(c3.equals(c4)); } } //End of main } //End of class โจทย์ ข้อที่ 3 [ระดับยาก] public class SetOfInteger { //แอตทริบว iSet ิ public int iSet[]; //ตัวสร้ างแบบที่รับพารามิเตอร์ 1 ตัวที่เป็ นอาเรย์ public SetOfInteger(int[] x) { x = sort(x); x = removeDuplicatedMembers(x); iSet = new int[x.length]; for (int i = 0; i < iSet.length; i++) { iSet[i] = x[i]; } } //End of constructor //ตัวสร้ างแบบที่รับพารามิเตอร์ 1 ตัวที่เป็ นชนิด SetOfInteger public SetOfInteger(SetOfInteger s) { iSet = new int[s.iSet.length]; for (int i = 0; i < iSet.length; i++) { iSet[i] = s.iSet[i]; } } //End of constructor //เมท็อด sort(…) public int[] sort(int x[]) { ... } //End of method © สงวนลิขสิทธิ์ พฤศจิกายน 2553 (ปรับปร ุงครังที่ 7 ฉบับใช้ติวภาค 2/2553) เรียบเรียงโดย วงศ์ยศ เกิดศรี (แบงค์) ้
  • 14. 14 Computer Programming using Java ANSWER 12-13 //เมท็อด removeDuplicatedMembers(…) public int[] removeDuplicatedMembers(int x[]) { ... } //End of method //เมท็อด equals(…) public boolean equals(SetOfInteger x) { if (x.iSet.length == iSet.length) { for (int i = 0; i < x.iSet.length; i++) { if (x.iSet[i] != iSet[i]) return false; } return true; } else { return false; } } //End of method //เมท็อด toString(…) public String toString() { String s = ""; for (int i = 0; i < iSet.length; i++) s = s + iSet[i] + " "; return s; } //End of method //เมท็อด addElement(…) public void addElement(int a) { int x[] = new int[iSet.length + 1]; for (int i = 0; i < x.length - 1; i++) x[i] = iSet[i]; x[x.length - 1] = a; x = sort(x); x = removeDuplicatedMembers(x); iSet = x; } //End of method //เมท็อด findElement(…) public int findElement(int a) { for (int i = 0; i < iSet.length; i++) if (iSet[i] == a) return i; return -1; } //End of method © สงวนลิขสิทธิ์ พฤศจิกายน 2553 (ปรับปร ุงครังที่ 7 ฉบับใช้ติวภาค 2/2553) เรียบเรียงโดย วงศ์ยศ เกิดศรี (แบงค์) ้
  • 15. ANSWER 12-13 Computer Programming using Java 15 //เมท็อด isSubset(…) public boolean isSubset(SetOfInteger s) { int count = 0; for (int i = 0; i < s.iSet.length; i++) { for (int j = 0; j < iSet.length; j++) { if (s.iSet[i] == iSet[j]) { count++; break; } } } return s.iSet.length == count; } //End of method //เมท็อด union(…) public SetOfInteger union(SetOfInteger s) { int x[] = new int[s.iSet.length + iSet.length]; for (int i = 0; i < x.length; i++) { if (i < iSet.length) x[i] = iSet[i]; else x[i] = s.iSet[i - iSet.length]; } SetOfInteger un = new SetOfInteger(x); return un; } //End of method //เมท็อด intersect(…) public SetOfInteger intersect(SetOfInteger s) { int x[] = new int[s.iSet.length]; int len = 0; for (int i = 0; i < s.iSet.length; i++) { for (int j = 0; j < this.iSet.length; j++) { if (s.iSet[i] == this.iSet[j]) { x[len] = s.iSet[i]; len++; break; } } } int n[] = new int[len]; for (int i = 0; i < n.length; i++) n[i] = x[i]; SetOfInteger inter = new SetOfInteger(n); return inter; } //End of method } //End of class © สงวนลิขสิทธิ์ พฤศจิกายน 2553 (ปรับปร ุงครังที่ 7 ฉบับใช้ติวภาค 2/2553) เรียบเรียงโดย วงศ์ยศ เกิดศรี (แบงค์) ้
  • 16. 16 Computer Programming using Java ANSWER 12-13 โจทย์ ข้อที่ 4 [ระดับยาก] public class Student { //แอตทริบวประจําอ๊ อบเจ็ค 3 ตัว ิ private int id; private String name; private double score[]; //ตัวสร้ างแบบไม่ กาหนดพารามิเตอร์ ํ Student() { id = 0; name = ""; score = new double[0]; } //ตัวสร้ างแบบ 3 พารามิเตอร์ Student(int i, String n, int x) { id = i; name = n; score = new double[x]; } //ตัวสร้ างแบบ 1 พารามิเตอร์ Student(Student s) { id = s.getID(); name = s.getName(); score = s.getScore(); } //เมท็อดประจําอ๊ อบเจ็ค 4 เมท็อด getID(…), getName(…), getScore(…)และ setScore(…) public int getID() { return id; } public String getName() { return name; } public double[] getScore() { return score; } public void setScore(double scr[]) { for (int i = 0; i < scr.length; i++) { score[i] = scr[i]; } } } //End of class © สงวนลิขสิทธิ์ พฤศจิกายน 2553 (ปรับปร ุงครังที่ 7 ฉบับใช้ติวภาค 2/2553) เรียบเรียงโดย วงศ์ยศ เกิดศรี (แบงค์) ้
  • 17. ANSWER 12-13 Computer Programming using Java 17 คลาส Freshmen import java.util.Scanner; public class Freshmen { public static void main(String[] args) { Scanner kb = new Scanner(System.in); //กําหนดให้ มีนิสิต 800 คน Student s[] = new Student[800]; //กําหนดค่ าเริ่มต้ นให้ กับเลขประจําตัวของนิสิต ชื่อนิสิต จํานวนวิชา for (int i = 0; i < s.length; i++) { int id = (53001 + i) * 100 + 21; System.out.print("Enter name : "); String name = kb.nextLine(); s[i] = new Student(id, name, 4); } //เรียกใช้ งานเมท็อด setScore(…) for (int i = 0; i < s.length; i++) { double scr[] = new double[4]; for (int j = 0; j < scr.length; j++) scr[j] = Math.random() * 100; s[i].setScore(scr); } //แสดงเลขประจําตัวนิสิต ชื่อนิสิต และคะแนนทัง 4 รายวิชาของนิสิตแต่ ละคน ้ for (int i = 0; i < s.length; i++) { System.out.print(s[i].getID() + "t" + s[i].getName() + "t"); for (int j = 0; j < s[i].getScore().length; j++) System.out.print(s[i].getScore()[j] + "t"); System.out.println(); } //คํานวนหาคะแนนเฉลี่ยของแต่ ละรายวิชา for (int j = 0; i < s[0].getScore().length; j++) { double sum = 0.0; for (int i = 0; i < s.length; i++) { sum += s[i].getScore()[j]; } System.out.println(sum / s.length); } } //End of main } //End of class © สงวนลิขสิทธิ์ พฤศจิกายน 2553 (ปรับปร ุงครังที่ 7 ฉบับใช้ติวภาค 2/2553) เรียบเรียงโดย วงศ์ยศ เกิดศรี (แบงค์) ้
  • 18. 18 Computer Programming using Java ANSWER 12-13 โจทย์ ข้อที่ 5 [ระดับยาก] 1. คลาส Owner public class Owner { //แอตทริบว id และแอตทริบว name ิ ิ private int id; private String name; //ตัวสร้ างแบบไม่ มีพารามิเตอร์ public Owner() { id = 0; name = ""; } //ตัวสร้ างแบบที่มีพารามิเตอร์ 2 ตัว public Owner(int i, String n) id = i; name = n; } //ตัวสร้ างแบบที่มีพารามิเตอร์ 1 public Owner(Owner own) { id = own.getID(); name = own.getName(); } //เมท็อด getId(…) public int getID() { return id; } //เมท็อด getName(…) public String getName() { return name; } //เมท็อด setID(…) public void setID(int i) { id = i; } //เมท็อด setName(…) public void setName(String n) { name = n; } © สงวนลิขสิทธิ์ พฤศจิกายน 2553 (ปรับปร ุงครังที่ 7 ฉบับใช้ติวภาค 2/2553) เรียบเรียงโดย วงศ์ยศ เกิดศรี (แบงค์) ้
  • 19. ANSWER 12-13 Computer Programming using Java 19 //เมท็อด show(…) public void show() { System.out.println("ID : " + id); System.out.println("Name : " + name); } } //End of class 2. คลาส Land public class Land { //แอตทริบว n และแอตทริบว price ิ ิ public Owner n; public double price; //ตัวสร้ างแบบไม่ มีพารามิเตอร์ public Land() { n = new Owner(); price = 0.0; } //ตัวสร้ างแบบมีพารามิเตอร์ 2 ตัว public Land(Owner w, double p) { n = new Owner(w); price = p; } //เมท็อด setOwner(…) public void setOwner(Owner w) { n.setID(w.getID()); n.setName(w.getName()); } //เมท็อด setPrice(…) public void setPrice(double p) { price = p; } //เมท็อด show(…) public void show() { n.show(); System.out.println("Price : " + price); } } //End of class © สงวนลิขสิทธิ์ พฤศจิกายน 2553 (ปรับปร ุงครังที่ 7 ฉบับใช้ติวภาค 2/2553) เรียบเรียงโดย วงศ์ยศ เกิดศรี (แบงค์) ้
  • 20. 20 Computer Programming using Java ANSWER 12-13 3. คลาส City import java.util.Scanner; public class City { public static void main(String[] args) { //อาเรย์ ของอ๊ อบเจ็ค Land Land a[][] = new Land[50][60]; //กําหนดค่ าเริ่มต้ นให้ กับที่ดนทุกแปลง ิ for (int i = 0; i < a.length; i++) { for (int j = 0; j < a[i].length; j++) { Owner n = new Owner(); a[i][j] = new Land(n, (int)(Math.random() * 10000000) + 1); } } //อ๊ อบเจ็คชื่อ ow1 Owner ow1 = new Owner(1001, "Tukie"); ow1.show(); //อ๊ อบเจ็คชื่อ ow2 Owner ow2 = new Owner(1002, "Annie"); ow2.show(); //ให้ ow1 ครอบครองที่ดนในแปลงตําแหน่ งที่ (4, 9) ิ a[4][9].setOwner(ow1); a[4][9].show(); //เปลี่ ยนราคาที่ดนที่ ow1 ครองครองอย่ ู ิ a[4][9].setPrice(30000000.0); a[4][9].show(); //เปลี่ ยนให้ ow2 เข้ าไปครอบครองที่ดนแปลงที่ ow1 ครอบครองอย่ ู ิ a[4][9].setOwner(ow2); a[4][9].show(); //กําหนดให้ ow1 เข้ าครอบครองที่ดนแปลงใหม่ 50 แปลง ิ for (int i = 0; i < a.length; i++) { a[i][0].setOwner(ow1); a[i][0].setPrice(50000000.0); a[i][0].show(); } } //End of main } //End of class © สงวนลิขสิทธิ์ พฤศจิกายน 2553 (ปรับปร ุงครังที่ 7 ฉบับใช้ติวภาค 2/2553) เรียบเรียงโดย วงศ์ยศ เกิดศรี (แบงค์) ้
  • 21. ANSWER 12-13 Computer Programming using Java 21 โจทย์ ข้อที่ 6 [ระดับยาก] คลาส SScanner import java.util.Scanner; import java.io.InputStream; public class SScanner { //แอตทริบว kb ิ public Scanner kb; //ตัวสร้ าง public SScanner(InputStream in) { kb = new Scanner(in); } //เมท็อด nextInt(…) public int nextInt() { return kb.nextInt(); } //เมท็อด nextLine(…) public String nextLine() { String s = ""; while (true) { s = kb.nextLine(); if(s.length() != 0) break; } return s; } } //End of class คลาส TestSScanner public class TestSScanner { public static void main(String[] args) { SScanner kb = new SScanner(System.in); System.out.print("Enter Int: "); int a = kb.nextInt(); System.out.print("Enter Str: "); String b = kb.nextLine(); System.out.println(a + "," + b); } //End of main } //End of class © สงวนลิขสิทธิ์ พฤศจิกายน 2553 (ปรับปร ุงครังที่ 7 ฉบับใช้ติวภาค 2/2553) เรียบเรียงโดย วงศ์ยศ เกิดศรี (แบงค์) ้
  • 22. 22 Computer Programming using Java ANSWER 12-13 โจทย์ ข้อที่ 7 [ระดับเทพ] 1. คลาส Fruit public class Fruit { //แอตทริบวประจําอ๊ อบเจ็คชื่อ name และ weigh ิ public String name; public double weigh; //ตัวสร้ าง 4 แบบ ดังต่ อไปนี ้ public Fruit() { name = ""; weigh = 0.0; } public Fruit(String n) { name = n; weigh = wh[(int)(Math.random() * 5)]; } public Fruit(String n, double w) { name = n; weigh = w; } public Fruit(Fruit f) { name = f.name; weigh = f.weigh; } //เมท็อดประจําอ๊ อบเจ็คชื่อ showFruit public void showFruit() { System.out.println(name + " " + weigh + " kg."); } } //End of class 2. คลาส Basket public class Basket { //แอตทริบวประจําอ๊ อบเจ็คชื่อ fruit และ count ิ public Fruit fruit[]; public int count; //ตัวสร้ างแบบไม่ มีพารามิเตอร์ public Basket() { fruit = new Fruit[10]; count = 0; } © สงวนลิขสิทธิ์ พฤศจิกายน 2553 (ปรับปร ุงครังที่ 7 ฉบับใช้ติวภาค 2/2553) เรียบเรียงโดย วงศ์ยศ เกิดศรี (แบงค์) ้
  • 23. ANSWER 12-13 Computer Programming using Java 23 //ตัวสร้ างแบบหนึ่งพารามิเตอร์ ชนิดจํานวนเต็ม public Basket(int n) { fruit = new Fruit[n]; count = 0; } //ตัวสร้ างแบบหนึ่งพารามิเตอร์ ชนิด Basket public Basket(Basket b) { fruit = new Fruit[b.fruit.length]; for (int i = 0; i < fruit.length; i++) { fruit[i] = b.fruit[i]; } count = b.count; } //เมท็อดประจําอ๊ อบเจ็คชื่อ isFull public boolean isFull() { return count == fruit.length; } //เมท็อดประจําอ๊ อบเจ็คชื่อ isEmpty public boolean isEmpty() { return count == 0; } //เมท็อดประจําอ๊ อบเจ็คชื่อ takeIn public void takeIn(Fruit f) { if (!isFull()) { fruit[count] = f; count++; } else { System.out.println("Basket Full"); } } //เมท็อดประจําอ๊ อบเจ็คชื่อ takeOut public Fruit takeOut() { if (!isEmpty()) { count--; Fruit f = fruit[count]; fruit[count] = null; return f; } else { System.out.println("Basket Empty"); return null; } } © สงวนลิขสิทธิ์ พฤศจิกายน 2553 (ปรับปร ุงครังที่ 7 ฉบับใช้ติวภาค 2/2553) เรียบเรียงโดย วงศ์ยศ เกิดศรี (แบงค์) ้
  • 24. 24 Computer Programming using Java ANSWER 12-13 //เมท็อดประจําอ๊ อบเจ็คชื่อ getTotalWeigh public double getTotalWeigh() { double weigh = 0.0; for (int i = 0; i < count; i++) { weigh += fruit[i].weigh; } return weigh; } //เมท็อดประจําอ๊ อบเจ็คชื่อ showBasket public void showBasket() { for (int i = 0; i < count; i++) { fruit[i].showFruit(); } } } //End of class 3. คลาส FruitBasket import java.util.Scanner; public class FruitBasket { //เมท็อดประจําคลาสชื่อ getFruitBasket public static Basket getFruitBasket(String f, double w, int n) { Basket bsk = new Basket(n); Fruit frt[] = new Fruit[n]; for (int i = 0; i < frt.length; i++) { if (w <= 0.0) frt[i] = new Fruit(f); else frt[i] = new Fruit(f, w); bsk.takeIn(frt[i]); } return bsk; } //เมท็อดประจําคลาสชื่อ showFruitBasket public static void showFruitBasket(Basket b) { System.out.println("Total Weigh: " + b.getTotalWeigh()); System.out.println("Total Fruit: " + b.count); System.out.println("List of Fruit: "); b.showBasket(); } //เมท็อด main public static void main(String[] args) { //สร้ างกระเช้ าผลไม้ ขึนมา 3 กระเช้ า ้ Basket x[] = new Basket[3]; x[0] = getFruitBasket("Apple", 0.12, 25); x[1] = getFruitBasket("Orange", 0.1, 30); x[2] = getFruitBasket("Melon", 0.45, 15); © สงวนลิขสิทธิ์ พฤศจิกายน 2553 (ปรับปร ุงครังที่ 7 ฉบับใช้ติวภาค 2/2553) เรียบเรียงโดย วงศ์ยศ เกิดศรี (แบงค์) ้
  • 25. ANSWER 12-13 Computer Programming using Java 25 //สร้ างกระเช้ าผลไม้ เปล่ าๆ ขึนมาอีก 6 กระเช้ า ้ Basket y[] = new Basket[6]; for(int i = 0; i < y.length; i++) { y[i] = new Basket(); int j = 0; while (!y[i].isFull()) { if (!x[j].isEmpty()) y[i].takeIn(x[j].takeOut()); if (y[i].getTotalWeigh() > 2.0) { Fruit tmp = y[i].takeOut(); break; } j++; if (j > 2) j = 0; } System.out.println("-----Basket " + (i + 1) + "-----"); showFruitBasket(y[i]); } } //End of main } //End of class โจทย์ ข้อที่ 8 [ระดับเทพ] คลาส Student public class Student { //แอตทริบว id แอตทริบว name และแอตทริบว noob ิ ิ ิ private int id; private String name; private int noob; //ตัวสร้ างแบบไม่ มีพารามิเตอร์ Student() { id = 0; name = ""; noob = 0; } //ตัวสร้ างแบบที่รับพารามิเตอร์ 3 ตัว Student(int i, String n, int x) { id = i; name = n; noob = x; } //ตัวสร้ างแบบที่รับพารามิเตอร์ เป็ นชนิด Student Student(Student s) { set(s); } © สงวนลิขสิทธิ์ พฤศจิกายน 2553 (ปรับปร ุงครังที่ 7 ฉบับใช้ติวภาค 2/2553) เรียบเรียงโดย วงศ์ยศ เกิดศรี (แบงค์) ้
  • 26. 26 Computer Programming using Java ANSWER 12-13 //เมท็อด getID(…) public int getID() { return id; } //เมท็อด getName(…) public String getName() { return name; } //เมท็อด getNoob(…) public int getNoob() { return noob; } //เมท็อด set(…) public void set(Student s) { id = s.getID(); name = s.getName(); noob = s.getNoob(); } //เมท็อด show(…) public void show() { String s = ""; if (noob == 1) s = "1-Noob"; else if (noob == 2) s = "2-Father Noob"; else if (noob == 3) s = "3-God Noob"; else if (noob == 4) s = "4-Hof Noob"; else s = "Unknown"; System.out.println(id + " " + name + " [" + s + "]"); } } //End of class คลาส Room public class Room { //แอตทริบว s ที่เป็ นอาเรย์ 2 มิตชนิด Student ิ ิ public static Student s[][] = new Student[16][40]; © สงวนลิขสิทธิ์ พฤศจิกายน 2553 (ปรับปร ุงครังที่ 7 ฉบับใช้ติวภาค 2/2553) เรียบเรียงโดย วงศ์ยศ เกิดศรี (แบงค์) ้
  • 27. ANSWER 12-13 Computer Programming using Java 27 //เมท็อด setSeat(…) public static void setSeat(Student st) { int startRow = s.length - 1 - (s.length / 4) * (4 - st.getNoob()); for (int i = startRow; i < startRow + 4; i++) { for (int j = 0; j < s[i].length; j++) { if (s[i][j].getName().equals("") && j != s[i].length / 2 && j != s[i].length / 2 - 1) { s[i][j].set(st); return; } } } System.out.println("No Reserved Seat"); } //เมท็อด showroom(…) public static void showRoom() { for (int i = 0; i < s.length; i++) { for (int j = 0; j < s[i].length; j++) { if (j == s[i].length / 2 || j == s[i].length / 2 - 1) { System.out.print(" "); } else { if (!s[i][j].getName().equals("")) System.out.print(s[i][j].getName().substring(0, 1) + " "); else System.out.print("# "); } } System.out.println(); } } //เมท็อด showStudent(…) public static void showStudent(int r, int c) { System.out.print("Seat Row " + r + " Column " + c + "t"); s[r + s.length - 2][c - 1].show(); } //เมท็อด showStudent(…) public static void showStudent() { for (int i = s.length - 1; i >= 0; i--) { for (int j = 0; j < s[i].length; j++) { if (!s[i][j].getName().equals("")) { System.out.print("Seat Row " + (s.length - i) + " Column " + (j + 1) + "t"); s[i][j].show(); } } } } © สงวนลิขสิทธิ์ พฤศจิกายน 2553 (ปรับปร ุงครังที่ 7 ฉบับใช้ติวภาค 2/2553) เรียบเรียงโดย วงศ์ยศ เกิดศรี (แบงค์) ้
  • 28. 28 Computer Programming using Java ANSWER 12-13 //เมท็อด main(…) public static void main(String[] args) { for (int i = 0; i < s.length; i++) { for (int j = 0; j < s[i].length; j++) { s[i][j] = new Student(); } } Student s1 = new Student(53300121, "Akeudom", 1); setSeat(s1); Student s2 = new Student(53300221, "Phakhin", 1); setSeat(s2); Student s3 = new Student(53300321, "Taparb", 2); setSeat(s3); Student s4 = new Student(53300421, "Ong-ard", 3); setSeat(s4); Student s5 = new Student(53300521, "Wongyos", 4); setSeat(s5); showRoom(); showStudent(); } } //End of class © สงวนลิขสิทธิ์ พฤศจิกายน 2553 (ปรับปร ุงครังที่ 7 ฉบับใช้ติวภาค 2/2553) เรียบเรียงโดย วงศ์ยศ เกิดศรี (แบงค์) ้