java

01418215 การโปรแกรมเชิงออบเจ๊กต์ ภาควิชาวิทยาการคอมพิวเตอร์ คณะวิทยาศาสตร์ ภาคต้น ปีการศึกษา 2555 - โจทย์พิเศษ ||  || - ตัวอย่างในหนังสือ InvestmentViewer2.java ให้แก้ไข เพื่อรู้จักใช้ GUI และ event listener - ตัวอย่าง RectangleComponent.java มีตัวอย่างการใช้ Timer ซึ่งจะช่วยในการทำโปรเจค - ฝึกทำด้วยตัวเอง ให้ปรับปรุง InvestmentViewer2.java ให้มี Button 3 Button เพื่อให้ผู้ใช้คลิกเลือกอัตราดอกเบี่้ย 10, 15, และ 20 เมื่อคลิกตัวใดให้ใช้อัตราดอกเบี่ยนั้นในการคำนวณ Option นิสิตสามารถเพิ่มส่วนแสดงผล โดยแสดงเงินต้น จำครั้งที่คำนวณดอกเบี้ย อัตราดอกเบี่ยเฉลี่ยที่ได้รับ ยอดเงินคงเหลือ ||=  || - โครงร่างหรือข้อกำหนดในการเขียน interface class - ประโยชน์ของ Interface ในการนำมาใช้เพื่อให้เกิดคุณสมบัติ Polymorphism - ตัวอย่างการใช้ Listener ของจาวา (มีทั้งเป็น Interface และ class) - เมื่อใช้ Interface จะมีการเปลี่ยน type (ประเภทข้อมูล) หรือ cast แบบใหน auto cast แบบใหน ต้อง cast ถ้า cast ผิด ออบเจ็กต์ โปรแกรมตายจะมีวิธีตรวจสอบได้อย่างไร - เทคนิคการเขียน Listener class เขียนแยกเป็นคลาส/ หรือ เป็น Inner class เวลาใช้ต้องสร้างออบเจ็กต์ หรือ เขียนแบบนำไป implement UI ที่ต้องการใช้ listener - ขั้นตอนที่สำคัญในการเขียน code เพื่อให้ UI สามารถรับคำสั่งจากผู้ใช้มีขั้นตอนอะไรบ้าง - Measurable และ Measurer ต่างกันตรงใหน
 * 8/10/2012 || [[file:final-score01418215.pdf|คะแนนสอบไล่]] [[file:Total-score01418215.pdf|คะแนนรวมทั้งหมด]] [[file:project-score.pdf|คะแนนโครงงาน]] [[file:practice418215.pdf|คะแนนภาคปฎิบัติ]] [[file:cs215-lab2.pdf|คะแนนสอบภาคปฎิบัติ 2]] ||  ||
 * 18/9/2012 || [[file:jhtp4_12.ppt|เพิ่มเติม slides]] ||  ||
 * 3/9/2012 ||< [[file:src.rar|ตัวอย่าง Exception]] ||  ||
 * 26/8/2012 || - Post ข้อสอบภาคปฏิบัติ [[file:OOPMidtermAM.pdf|ภาคเช้า]] และ[[file:OOPMidtermPM.pdf|ภาคบ่าย]]
 * = 25/8/2012 ||< สรุปโจทย์ที่นิสิตไม่ทำ (อยู่ท้ายหน้านี้)
 * =  ||= เอกสารประกอบการเรียน ครึ่งหลัง ||=   ||
 * || สรุปประเด็นบทที่ 8

นิสิตต้องตอบได้ พร้อมยกตัวอย่างประกอบ โดยเฉพาะเรื่อง การ cast หรือการเปลี่ยน type ควรมีตัวอย่างทั้งถูกและผิด ||  ||
 * || [[file:ch09.ppt|บทที่ 9]] ||  ||
 * || [[file:ch10.ppt|บทที่ 10]] ||  ||
 * || [[file:ch17.ppt|บทที่ 17]] เพิ่ม[[file:ch19.ppt| Multithread]] ||  ||
 * = 17/8/2012 || ผลสอบภาคปฏิบัติ  ||=   ||
 * || มีนิสิตลอกกัน ดังนั้น นิสิตที่เป็นต้นฉบับให้เพื่อนคัดลอก และนิสิตที่คัดลอกเพื่อนให้ไปลงทะเบียนสารภาพบาป ที่เว็บ [|(Click)]

นิสิตต้องลงทะเบียนภายในวันที่ 20 ส.ค. 2555 เวลา 23.59 น. ถ้าไม่ลงทะเบียนและตรวจพบ (ตอนนี้มีรายชื่อคนที่คัดลอกอยู่แล้ว แต่ยังไม่เปิดเผย) จะให้ Drop หรือ F ในภายหลังถ้าไม่แจ้งให้ทราบ

- นิสิตที่ลงทะเบียนแจ้งการคัดลอก คะแนนจะเป็นไปตามเกณฑ์ที่กำหนด ||  ||

หัวข้อโครงงาน

 * ===**ตู้ปลา **=== ||
 * ในตู้ปลามี object ต่าง ๆ คือ ปลา (มีหลายพันธุ์) เครื่องเติมออกซิเจน สาหร่าย ต้นไม้ แต่ละ object สามารถเคลื่อนไหวได้ ปลาสามารถว่าย จากซ้ายไปขวา หรือ บนลงล่าง ||
 * เกมส์รถแข่ง ||
 * มีรถแข่งรูปแบบต่างๆ กัน จำนวนรถแข่งสามารถเพิ่มได้ สูงสุด 5 คัน รถแต่ละคันมีความเร็วไม่เท่ากัน และต้องแตกต่างกันทุกครั้งที่มีการประมวลผล ||
 * === โลกของเรา === ||
 * ข้อกำหนดของระบบ : มีระบบสุรยจักรวาล ซึ่งมีดาวพระเคราะห์ 9 ดวง และโลกจะมีดาวบริวาร (พระจันทร์) ดาวพระเคราะห์ทุกดวงเคลื่อนที่ได้ การออกแบบจอภาพ ที่ให้วัตถุต่างๆ เคลื่อนที่ด้วยความเร็วแตกต่างกันได้ ||
 * เครืืองขายบัตรโดยสาร BTS แบบอัตโนมัติ ||
 * ออบเจ็กต์ ประกอบด้วยบัตรโดยสาร BTS ที่นิสิตต้องออกแบบให้มีสับคลาสที่แตกต่างกัน (ดูตัวอย่างจากแบบฝึกปฎิบัติ ) มี UI ให้ผู้ซื้อบัตร บันทึกจำนวนเงิน (ตามเงินบาท คือ เติมเหรีญได้ 5 และ 10 และ ธนบัตร 10, 20, 50, 100, 500, 1000 บาท) และ จอภาพในการเลือกสถานีที่ต้องการโดยสาร (2 สถานีต้นทาง และ ปลายทาง) อัตราค่าโดยสารให้ใช้มูลจริง (ศึกษาเพิ่มเติมจากเว็บไซด์ของ BTS) และคำนวณแสดงการทอนเงิน ||

การให้คะแนน 1. ออกแบบคลาสได้ถูกต้องมี sub class and super class การการใช้ interface และคุณสมบัติของออบเจ็กต์ได้ถูกต้อง(30%) 2. ทำงานตามข้อกำหนดได้ถูกต้องหมด (40 %) ต้องการจัดข้อผิดพลาดต่าง ๆ ที่อาจเกิดขึ้น 3. การออกแบบจอภาพ (ตรงนี้นิสิตจะแตกต่างกันออกไป และเป็นคะแนนความคิดริเริ่มสร้างสรรค์) 30%

การเลือกหัวข้อ ให้นิสิตใช้รหัสนิสิต สองตัวหลัง (ตัว check digit ตัวสุดท้ายออก) และหารด้วย 4 เหลือ เศษ 0 ทำ ตู้ปลา เศษ 1 ทำเกมส์รถแข่ง เศษ 2 ทำ โลกของเรา และเศษ 3 เครื่องขายบัตร BTS

ถ้านิสิต ทำงานเป็นกลุ่ม แต่ความแตกต่างไม่มาก โดยเฉพาะส่วนของ การออกแบบจอภาพ ที่แตกต่างไม่มาก จะได้คะแนนเท่ากับได้จากการตรวจหารด้วยจำนวนนิสิตในกลุ่มทำงานรวมกัน ถ้านิสิตจ้างทำและตรวจสอบพบ ได้ F ทันที และส่งเรื่องให้พักการศึกษาหนึ่งภาคการศึกษา นิสิตสามารถรวมกันในการศึกษาและออกแบบ แต่ถ้าเหมือนกันทุกประการ ใช้ code แบบเดียวกัน ออกแบบคลาสเหมือนกัน จะได้ F ทันทีเช่นกัน

การส่งงาน 1. ออกแบบคลาส ต่างๆ วันที่ 5 ก.ย. 2555 2. โปรแกรมเบื้องต้น ตรวจโดย TA วันที่ 20 ก.ย. 2555 โดรงงานนี้นิสิตต้องศึกษาเพิ่มเติม เรื่องของ Thread เพื่อให้เกิดภาพเคลื่อนไหว

เงื่อนไขอื่น 1. ห้ามเอา object ไป extends Panel 2. ต้องออกกแบบคลาสให้มี inheritance/interface ถ้าไม่มีไม่ได้คะแนน

Link อื่นที่เกี่ยวข้อง โจทย์ที่สังแล้วนิสิตไม่ทำไม่ตอบ > 1. จงเขียนคลาส เอกสารสิ่งพิมพ์ ตำรา ทั้งภาษาไทย ภาษาอังกฤษ วารสาร นิตยสาร > 2. new operator มีไว้เพื่ออะไร > 3. การเขียนโปรแกรมเชิงวัตถุต่างจาก structure ตรงใหน > 4. จงเขียนชุดคำสั่งในการจอง เอกสารต่างๆ ที่กำหนดไว้ในข้อหนึ่ง > 5. ตัวแปรชุดในข้อ 4 สร้าง ออบเจ็กต์เพื่อเอกสารเอกสารต่างๆ กันอย่างละ 5 รายการ
 * เกณฑ์การตรวจข้อสอบภาคปฏิบัติ
 * โจทย์สำหรับนิสิตที่ยังเรียนไม่เข้าใจ คนที่เข้าใจแล้วไม่ต้องตอบ
 * ให้นำตัวอย่าง Investment view2 โดยเพิ่ม Button หลายๆ Button และเมื่อคลิก ตัองนำอัตราดอกเบี้ืยไปปรับปรังตามปุ่มที่คลิก ไม่แนะนำให้จัดการ event ภายในปุ่ม แต่ให้เขียนคลาส และสามารถนำไปใช้ได้ทุก Button
 * ให้นิสิตนำโจทย์ภาคปฎิบัติไปทำต่อ