cs215-13

รายละเอียดวิชา 418215 การโปรแกรมเชิงวัตถุ ภาคต้น ปีการศึกษา 2556

ด้วยการสอนในวิชานี้ เป็นการสอนสำหรับนิสิตที่ตกค้างของหลักสูตรเก่า และนิสิตส่วนใหญ่ได้ผ่านการเรียนรายวิชานี้มาอย่toc างน้อย 2 ครััง ดังนั้นการเรียนการสอนจะเน้นไปการถามตอบประเด็นปัญหาที่นิสิตไม่เข้าใจ =กิจกรรมการเรียน CashRegister= หน่วยงานแห่งหนึ่งต้องการผลิตเครื่องขายสินค้าอัตโนมัติ ทั้งนี้บริษัทต้องการผลิตเพื่อให้แน่ใจว่าสามารถนำตัวแบบไปพัฒนาตัวแบบอื่นๆ ได้ และบริษัทต้องการพัฒนาระบบงานที่สามารถควบคุมเครื่องขายสินค้าทั้งหมด เช่นต้องการทราบว่ามีเครื่องขายสินค้าสร้างขึ้นกี่เครื่อง และแต่ละเครื่องขายสินค้า หรือ รับเงินมาแล้วเท่าไร ในตอนเริ่มต้น บริษัท ต้องการ ออกแบบเครื่องขายสินค้าอัตโนมัติ สองเครื่อง ดังรายละเอียด
 * เครื่องขายน้ำดิ่มอัตโนมัติ
 * รับชำระเป็นเงินเหรียญ (1 บาท 2 บาท 5 บาท และ 10 บาท)
 * การซื้อน้ำไม่มีข้อจำกัด โดยขายลิตระ 1 บาท
 * ไม่มีระบบการทอนเงิน
 * มีระบบการบันทึกยอดขายทั้งหมด
 * เครื่องเติมเงินโทรศัพท์อัตโนมัติ
 * เติมเงินได้ครั้งละ 50, 100, 200, 300 และ 500
 * รับชำระเป็นธนบัตร 20, 50, 100, และ 500 บาท เท่านั้น
 * รับเฉพาะธนบัตรเท่านั้น
 * มีระบบทอนเงิน
 * มีระบบบันทึกยอดขายตามประเภทผู้ให้บริการ เช่น DTAC มียอดเงิน xxxx บาท หรือ TRUE มียอดเติมเงิน xxx บาท เป็นต้น
 * มีระบบให้เลือกเติมเงินตามผู้ให้บริการ เช่น DTAC, TRUE, AIS เป็นต้น

เงื่อนไขการออกแบบ
 * ต้องมี abstract เมทธอด
 * ควรมีเมทธอดที่มีการ Override
 * เมทธอด toString สำหรับส่งคืนรายละเอียดของเครื่องขายสินค้า ที่เป็นข้อมูลที่จำเป็นสำหรับผู้ซื้อ
 * เมทธอด equals ในการเปรียบเทียบจำนวนเงินในเครื่องขายสินค้าอัตโนมัติ

**ประมวลการสอน** ดู วิดีโอ http://wannik.wordpress.com/2012/05/18/wannik-academy/#more-2579


 * = ครั้งที่ || วันที่ || เนื้อหา บรรยาย || เนื้อหาภาคปฎิบัติ ||
 * = 1 || 12, 14 มิ.ย. 56 || การเขียนโปรแกรมเชิงวัตถุเบื้องต้น [|(บทที่ 1)] (นิสิตอ่านเอง)Graphical User Interfaces ([[file:ch17.ppt|บทที่ 17)]] || - อ่านทำความเข้าโจทย์- ออกแบบ UI ของ Banking system โดยมีฟังก์ชัน การเปิดบัญชี ฝาก/ถอน สอบถามยอด และ ปิดปัญหาชี และรายงานสรุป ||
 * = 2 || 19, 21 มิ.ย. 56 || Graphical User Interfaces (บทที่ 17)Event Handling (งด 21 มิ.ย.)สอนชดเชย 23 มิ.ย. 9.30 – 12.30 น. || ออกแบบ UI ของ Banking system (ต่อ)จอภาพ สำหรับเปิดบัญชีใหม่ โดยใช้ radio box or combo box เลือกประเภทบัญชีจอภาพ ฝากถอนโอนเงินจอภาพแสดงการปิดบัญชีจอภาพการค้นคืนเฉพาะบัญชีจอภาพแสดงการค้นคืนเฉพาะบัญชีที่มียอดฝากสูงสุดจอภาพแสดงสรุปปริมาณของสมุดบัญชีแต่ละประเภท(รายละเอียด Model ยังไม่ต้องมีก่อน แต่ต้องแสดงว่า Data ที่รับจาก interface ส่งไป Model ได้อย่างไร ) ||
 * = 3 || 26, 28 มิ.ย. 56 || การโปรแกรมเชิงวัตถุ [[file:ch02.ppt|(บทที่ 2 ]])งด 26 มิ.ย || Banking System ศึกษาเรื่องของคลาส ||
 * = 4 || 3, 5 ก.ค. 56 || ข้อมูลพื้นฐานภาษาจาวา ([|บทที่ 3]) || การแปลงข้อมูลประเภทต่างๆ ||
 * = 5 || 10, 12 ก.ค. 56 || การออกแบบคลาสเบื้องต้น ([|บทที่ 7]) || ออกแบบคลาสไดอะแกรม ||
 * = 6 || 24, 26 ก.ค. 56 || Interfaces and Polymorphism ([|บทที่ 8])Interfaces and Polymorphism (บทที่ 8 ต่อ)งด 31 ก.ค. ชดเชยวันที่ 4 ส.ค. 56 เวลา 9.30 - 12.30 น. || การใช้ Data Set ในการจัดเก็บข้อมูล ||
 * = 7 || 7, 9 ส.ค. 56 || การใช้คำสั่งทางเลือก (if) [|(บทที่ 4)] ||  ||
 * = 8 || 10 – 18 ส.ค. 56 || **สอบกลางภาค** || 1 – 5 ส.ค. พิธีพระราชทานปริญญาบัตร ||
 * = 9 || 10 ส.ค. 56 || สอบภาคปฏิบัติครั้งที่ 1 (การใช้ interface, basic class) ||  ||
 * = 10 || 13 ส.ค. 57 || สอบข้อเขียน เวลา 9.00 – 12.00 น ||  ||
 * = 11 || 21, 23 ส.ค. 56 || การใช้คำสั่งควบคุมแบบวนซ้ำ (loop) ([|บทที่ 5] ||  ||
 * = 12 || 28, 30 ส.ค. 56 || การใช้ตัวแปรชุด ([|บทที่ 6] || ปรับปรุง Data set ให้จัดเก็บข้อมูลแบ ||
 * = 13 || 4, 6 ก.ย. 56 || การใช้ตัวแปรชุด (ต่อ) ||  ||
 * = 14 || 11, 13 ก.ย. 56 || การสืบทอด ([|บทที่ 9] || การออกแบบสับคลาส ของ Banking System ||
 * = 15 || 11, 13 ก.ย. 56 || การสืบทอด ([|บทที่ 9] ต่อ ||  ||
 * =  || 25, 27 ก.ย. 56 || การจัดการข้อผิดพลาด ([|บทที่ 10] || เพิ่มการจัดการข้อผิดพลาด ||
 * = 16 ||  || ส่งโครงงาน ||   ||
 * =  || 28 ก.ย. 56 || เวลา 9.00 – 12.00 สอบภาคปฏิบัติ ||   ||
 * =  || 1 ต.ค. 56 || เวลา 9.00 - 12. 00 สอบไล่ ||   ||
 * = xxxxxxx || xxxxxxxxxxxxx || xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx ||  ||