246
MessageBoxIcon.Warning
01.using System;
02.using System.Collections.Generic;
03.using System.ComponentModel;
04.using System.Data;
05.using System.Drawing;
06.using System.Linq;
07.using System.Text;
08.using System.Windows.Forms;
09
10.namespace WindowsFormsApplication
11.{
12.public partial class frmMain : Form
13.{
14.// By https://www.thaicreate.com (mr.win)//
15.
16.public frmMain()
17.{
18.InitializeComponent();
19.}
20.
21.private void btnHome_Click(object sender, EventArgs e)
22.{
23.this.Hide();
24.frmHome f = new frmHome();
25.f.Show();
26.}
27.
28.private void btnExit_Click(object sender, EventArgs e)
29.{
247
30.if (MessageBox.Show("Are you sure to exit?", "Confirm.", MessageBoxButtons.YesNo,
MessageBoxIcon.Question, MessageBoxDefaultButton.Button1) == DialogResult.Yes)
31.{
32.Application.Exit();
33.}
34.}
35.}
36.}
frmHome
248
แบบฝึกหดั /เฉลย
ตอนท่ี 1 คำส่งั จงตอบคำถามต่อไปนใี้ หถ้ ูกตอ้ ง
ข้อท่ี 1 บรษิ ัท วรี ะ อเิ ลก็ ทรอนกิ ส์ จำกัด ตอ้ งการคำนวณหาสว่ นลดของสนิ คา้ ของบรษิ ทั โดยมีเง่ือนไขใน
การคำนวณหาสว่ นลดดังน้ี
ถ้าซอื้ น้อยกวา่ 500 บาท ไมล่ ดราคา (หมายถึงนอ้ ยกวา่ หรือเท่ากับ 499)
ถา้ ซือ้ ระหวา่ ง 500 – 2,000 บาท ใหส้ ่วนลด 3%
ถา้ ซอ้ื ระหว่าง 2,001 – 4,000 บาท ใหส้ ว่ นลด 5%
ถา้ ซอ้ื ระหวา่ ง 4,001 – 6,000 บาท ใหส้ ว่ นลด 7%
ถา้ ซอ้ื มากว่า 6,000 บาทข้นึ ไป ใหส้ ว่ นลด 10%
รายละเอียดขอ้ มลู ประกอบดว้ ย รหสั สินคา้ , รายการสนิ คา้ , จำนวนสินคา้ , ราคาสินคา้ , ราคา
รวม, สว่ นลดสินคา้ , ราคาหลงั หกั สว่ นลด
โคต๊ โปรแกรม
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
namespace WindowsFormsApplication11_1
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void label1_Click(object sender, EventArgs e)
{
}
249
private void label6_Click(object sender, EventArgs e)
{
}
private void label2_Click(object sender, EventArgs e)
{
}
private void label3_Click(object sender, EventArgs e)
{
}
private void label4_Click(object sender, EventArgs e)
{
}
private void label5_Click(object sender, EventArgs e)
{
}
private void button3_Click(object sender, EventArgs e)
{
textBox1.Clear();
textBox2.Clear();
textBox3.Clear();
textBox4.Clear();
textBox5.Clear();
textBox6.Clear();
}
private void button2_Click(object sender, EventArgs e)
{
Close();
}
int code,quan;
250
double price, total, discount,nettotal;
private void button1_Click(object sender, EventArgs e)
{
quan = int.Parse(textBox3.Text);
price = double.Parse(textBox4.Text);
total = quan * price;
if (total <= 499)
{
discount = 0;
nettotal = total - discount;
textBox5.Text = total.ToString("##,###.00");
textBox6.Text = discount.ToString("##,###.00");
textBox7.Text = nettotal.ToString("##,###.00");
}
else
if (total <= 2000)
{
discount = total*0.03;
nettotal = total - discount;
textBox5.Text = total.ToString("##,###.00");
textBox6.Text = discount.ToString("##,###.00");
textBox7.Text = nettotal.ToString("##,###.00");
}
else
if (total <= 4000)
{
discount = total * 0.05;
nettotal = total - discount;
textBox5.Text = total.ToString("##,###.00");
textBox6.Text = discount.ToString("##,###.00");
textBox7.Text = nettotal.ToString("##,###.00");
}
else
if (total <= 6000)
251
{
discount = total * 0.07;
nettotal = total - discount;
textBox5.Text = total.ToString("##,###.00");
textBox6.Text = discount.ToString("##,###.00");
textBox7.Text = nettotal.ToString("##,###.00");
}
else
{
discount = total * 0.10;
nettotal = total - discount;
textBox5.Text = total.ToString("##,###.00");
textBox6.Text = discount.ToString("##,###.00");
textBox7.Text = nettotal.ToString("##,###.00");
}
}
}
}
ผลลพั ธโ์ ปรแกรม
ถ้าซ้อื น้อยกว่า 500 บาท ไมล่ ดราคา (หมายถงึ นอ้ ยกว่าหรอื เท่ากับ 499)
252
กว่า 6,000 บาทข้นึ ไป ใหส้ ่วนลด 10%
โคต๊ ปมุ่ เคลยี ค่า
textBox1.Clear();
textBox2.Clear();
textBox3.Clear();
textBox4.Clear();
textBox5.Clear();
textBox6.Clear();
โคต๊ ปุ่มจบการทำงาน
Close();
โคต๊ ปมุ่ คำนวณ
int code,quan;
double price, total, discount,nettotal;
private void button1_Click(object sender, EventArgs e)
{
quan = int.Parse(textBox3.Text);
price = double.Parse(textBox4.Text);
total = quan * price;
if (total <= 499)
{
discount = 0;
nettotal = total - discount;
textBox5.Text = total.ToString("##,###.00");
textBox6.Text = discount.ToString("##,###.00");
253
textBox7.Text = nettotal.ToString("##,###.00");
}
else
if (total <= 2000)
{
discount = total*0.03;
nettotal = total - discount;
textBox5.Text = total.ToString("##,###.00");
textBox6.Text = discount.ToString("##,###.00");
textBox7.Text = nettotal.ToString("##,###.00");
}
else
if (total <= 4000)
{
discount = total * 0.05;
nettotal = total - discount;
textBox5.Text = total.ToString("##,###.00");
textBox6.Text = discount.ToString("##,###.00");
textBox7.Text = nettotal.ToString("##,###.00");
}
else
if (total <= 6000)
{
discount = total * 0.07;
nettotal = total - discount;
textBox5.Text = total.ToString("##,###.00");
textBox6.Text = discount.ToString("##,###.00");
textBox7.Text = nettotal.ToString("##,###.00");
}
else
{
discount = total * 0.10;
nettotal = total - discount;
254
textBox5.Text = total.ToString("##,###.00");
textBox6.Text = discount.ToString("##,###.00");
textBox7.Text = nettotal.ToString("##,###.00");
}
เอกสารอา้ งอิง
หนังสอื เรยี น รหสั 20204-2108 การเขยี นโปรแกรมเชิงวตั ถเุ บือ้ งตน้ ของสำนักพมิ พเ์ มืองไทย
จำกัด
ภาคผนวก (ถา้ มี)
255
ใบงานท่ี 11 หน่วยท่ี 11
รหัสวิชา 20204-2108 ช่อื วชิ า การเขียนโปรแกรมเชิง ภาคเรียนที่ 1
วัตถเุ บ้อื งต้น
ชอื่ หน่วย การเขยี นโปรแกรมในโหมด Windows Forms เวลารวม 12 ชั่วโมง
Application
ชอ่ื งาน การเขยี นโปรแกรมในโหมด Windows Forms Application จำนวน 4 ชวั่ โมง
จดุ ประสงคก์ ารเรยี นรู้
จดุ ประสงคก์ ารเรียนรู้
จุดประสงคท์ ัว่ ไป
1. เพอื่ มคี วามรคู้ วามเข้าใจการเขยี นโปรแกรมดว้ ย Windows Forms Application
2. เพือ่ มคี วามรู้ความเข้าใจเขียนโปรแกรมโดยใช้คอลโทรล Button
3. เพ่ือมคี วามรู้ความเขา้ ใจเขียนโปรแกรมโดยใชค้ อลโทรล Label
4. เพ่ือมีความรคู้ วามเขา้ ใจเขียนโปรแกรมโดยใช้คอลโทรล Textbox
5. เพื่อมคี วามรู้ความเขา้ ใจเขยี นโปรแกรมโดยใชค้ อลโทรล Picture box
จุดประสงค์เชงิ พฤตกิ รรม (ความรู้ ทกั ษะ คุณธรรม จรยิ ธรรม จรรยาบรรณวชิ าชพี )
1. บอกขัน้ ตอนการเขยี นโปรแกรมดว้ ย Windows Forms Application
2. เขยี นโปรแกรมโดยใช้คอลโทรล Button ได้ถูกต้อง
3. เขียนโปรแกรมโดยใชค้ อลโทรล Label ไดถ้ กู ต้อง
4. เขียนโปรแกรมโดยใช้คอลโทรล Textbox ได้ถกู ตอ้ ง
5. เขยี นโปรแกรมโดยใช้คอลโทรล (Picture box) ไดถ้ กู ตอ้ ง
6. เขยี นโปรแกรมโดยใชค้ ำสงั่ เง่อื นไข If ไดถ้ ูกตอ้ ง
สมรรถนะรายหน่วย
แสดงความรเู้ กี่ยวกบั การออกแบบและการเขียนโปรแกรมในโหมด Windows Forms
Application
เคร่อื งมือ วัสดุ – อุปกรณ์
1. เคร่ืองคอมพิวเตอร์ PC หรอื Notebook
2. โปรเจค็ เตอร์
3. หนงั สอื
256
ลำดบั ขั้นตอนการปฏบิ ตั ิงาน
1. ใหน้ กั ศกึ ษาแบ่งกลุ่มตามความเหมาะสม เพื่อศึกษาและอภปิ ราย
1.1 อธบิ ายความร้เู กย่ี วกบั ความเขา้ ใจการเขียนโปรแกรมในโหมด Windows Forms
Application
1.2 เขียนรูปพรอ้ มอธิบายความเขา้ ใจการเขียนโปรแกรมในโหมด Windows Forms
Application
2. เขยี นอภิปรายและวเิ คราะห์ใส่กระดาษ
3. นำผลงานสง่ ครูผสู้ อนเพอื่ ประเมินผล
ภาพประกอบ
ข้อควรระวัง
ผเู้ รยี นควรตรวจสอบข้อมลู ก่อนให้ถี่ถ้วน ละเอยี ด และรอบคอบกอ่ น เพ่อื ปอ้ งกนั ความผิดพลาดก่อน
การสง่ งาน
ขอ้ เสนอแนะ (ถา้ มี)
นักศกึ ษาควรมภี าพประกอบการนำเสนองาน และสามารถอธิบายเน้อื หาใหส้ อดคลอ้ งกับภาพให้ถูกตอ้ ง
การประเมนิ ผล (ต้องระบเุ กณฑ์การประเมินใหช้ ัดเจน)
1. สังเกตผู้เรยี นมคี วามสนใจ เกิดความเขา้ ใจในสาระการเรยี นรู้ ตลอดจนแสดงความกระตือรอื ร้น
ในการแสดงความคดิ เห็นและสรปุ สาระการเรยี นรปู้ ระจำหนว่ ย
2. ทำใบงานไดอ้ ย่างถูกต้อง ทนั เวลาท่ีกำหนด ใบงานสะอาดและเป็นระเบยี บ
3. ผู้เรยี นทำแบบฝึกหดั หลงั เรียนได้ถกู ต้อง โดยไดค้ ะแนน 50% เปน็ อยา่ งต่ำ
เอกสารอ้างองิ
หนังสอื เรยี น รหสั 20204-2108 การเขียนโปรแกรมเชิงวตั ถเุ บ้ืองต้นของสำนักพมิ พเ์ มืองไทย จำกัด
257
ใบกจิ กรรมที่ 11 หนว่ ยท่ี 11
รหัสวชิ า 20204-2108ชอ่ื วชิ า การเขียนโปรแกรมเชิง ภาคเรียนที่ 1
วัตถเุ บ้อื งตน้
ช่อื หน่วย การเขยี นโปรแกรมในโหมด Windows Forms เวลารวม 12 ชว่ั โมง
Application
ช่อื งาน การเขยี นโปรแกรมในโหมด Windows Forms Application จำนวน 4 ชวั่ โมง
จดุ ประสงคก์ ารเรยี นรู้
จุดประสงค์การเรยี นรู้
จุดประสงคท์ ่วั ไป
1. เพอ่ื มคี วามร้คู วามเขา้ ใจการเขยี นโปรแกรมด้วย Windows Forms Application
2. เพอ่ื มคี วามรู้ความเข้าใจเขยี นโปรแกรมโดยใช้คอลโทรล Button
3. เพอ่ื มคี วามร้คู วามเขา้ ใจเขยี นโปรแกรมโดยใช้คอลโทรล Label
4. เพื่อมคี วามรูค้ วามเขา้ ใจเขียนโปรแกรมโดยใชค้ อลโทรล Textbox
5. เพื่อมีความรู้ความเขา้ ใจเขยี นโปรแกรมโดยใช้คอลโทรล Picture box
จดุ ประสงคเ์ ชิงพฤตกิ รรม (ความรู้ ทกั ษะ คณุ ธรรม จรยิ ธรรม จรรยาบรรณวชิ าชีพ)
1. บอกขนั้ ตอนการเขียนโปรแกรมดว้ ย Windows Forms Application
2. เขียนโปรแกรมโดยใช้คอลโทรล Button ไดถ้ กู ตอ้ ง
3. เขยี นโปรแกรมโดยใชค้ อลโทรล Label ไดถ้ ูกตอ้ ง
4. เขยี นโปรแกรมโดยใช้คอลโทรล Textbox ได้ถูกต้อง
5. เขียนโปรแกรมโดยใช้คอลโทรล (Picture box) ไดถ้ กู ตอ้ ง
6. เขยี นโปรแกรมโดยใช้คำสงั่ เงอื่ นไข If ได้ถูกต้อง
สมรรถนะรายหนว่ ย
แสดงความรเู้ กย่ี วกับการออกแบบและการเขยี นโปรแกรมในโหมด Windows Forms
Application
เครือ่ งมอื วัสดุ – อปุ กรณ์
1. เคร่ืองคอมพวิ เตอร์ PC หรอื Notebook
2. โปรเจ็คเตอร์
3. หนังสอื
258
ลำดับกจิ กรรม
1. ผู้เรียนตอ้ งให้ความสนใจในการศกึ ษา เพือ่ หาเทคนิค วิธกี าร หรอื หลกั การงา่ ยเพื่อให้หาคำตอบ
ได้อย่างถูกต้อง และรวดเร็ว โดยการ ตั้งใจฟังหลักการ เทคนิควธิ ีการทีค่ รูผู้สอนสรุปในขณะที่ทำการ
สอน และนำข้อสงสัยซกั ถามครใู นการเรยี นทกุ ครง้ั ทเ่ี กดิ ความสับสน และไมเ่ ขา้ ใจ
2. ผู้มีการทบทวนบทเรียน ตลอดเพ่ือเสรมิ สร้างความเข้าใจอย่างแท้จรงิ
3. ผเู้ รียนหมนั่ ทำใบงาน แบบฝกึ หัด และแกไ้ ขขอ้ ทผี่ ิดใหถ้ กู ตอ้ งเสมอ
4. ผู้เรียนต้องสร้างมโนภาพให้เกิดความคิดรวบยอดในสาระการเรียนรู้และเทคนิควิธีการพร้อมกับ
ความจำเป็นในการนำไปประยุกต์ใช้ให้เกิดขึ้นโดยตนเองให้ได้เพือ่ เกิดความรู้ความเข้าใจอย่างแท้จริง
ไม่ใช่เกดิ จากการท่องจำ
5. ผู้เรียนต้องดำเนินการตามกิจกรรมหรืองานที่ได้รับมอบหมาย ให้เสร็จสิ้นภายในระยะเวลาที่
กำหนด และฝกึ ฝนตนเองเสมอ เมอื่ ไดร้ ับมอบหมายงานมา
การประเมนิ ผล (ตอ้ งระบเุ กณฑ์การประเมนิ ใหช้ ดั เจน)
1. สังเกตผู้เรยี นมีความสนใจ เกดิ ความเข้าใจในสาระการเรยี นรู้ ตลอดจนแสดงความกระตอื รือร้นใน
การแสดงความคิดเหน็ และสรุปสาระการเรยี นรู้ประจำหน่วย
2. ทำใบงานได้อย่างถกู ตอ้ ง ทนั เวลาทีก่ ำหนด ใบงานสะอาดและเปน็ ระเบยี บ
3. ผ้เู รียนทำแบบฝึกหดั หลังเรียนได้ถกู ต้อง โดยไดค้ ะแนน 50% เปน็ อย่างตำ่
เอกสารอ้างองิ
หนงั สอื เรยี น รหสั 20204-2108 การเขียนโปรแกรมเชงิ วัตถเุ บ้อื งตน้ ของสำนักพิมพเ์ มืองไทย จำกดั
259
ใบปฏิบัตงิ านที่ 11 หนว่ ยที่ 11
รหัสวิชา 20204-2108ชอ่ื วชิ า การเขียนโปรแกรมเชิง ภาคเรยี นท่ี 1
วตั ถุเบอ้ื งตน้ เวลารวม 12 ช่วั โมง
ชือ่ หนว่ ย การเขยี นโปรแกรมในโหมด Windows
Forms Application
ชือ่ งาน การเขียนโปรแกรมในโหมด Windows Forms Application จำนวน 4 ชั่วโมง
จุดประสงค์การเรยี นรู้
จดุ ประสงค์การเรยี นรู้
จดุ ประสงค์ทวั่ ไป
1. เพอื่ มคี วามร้คู วามเขา้ ใจการเขยี นโปรแกรมด้วย Windows Forms Application
2. เพ่ือมีความร้คู วามเขา้ ใจเขยี นโปรแกรมโดยใชค้ อลโทรล Button
3. เพื่อมีความรคู้ วามเข้าใจเขียนโปรแกรมโดยใชค้ อลโทรล Label
4. เพอ่ื มคี วามรคู้ วามเขา้ ใจเขียนโปรแกรมโดยใชค้ อลโทรล Textbox
5. เพอ่ื มคี วามร้คู วามเข้าใจเขยี นโปรแกรมโดยใชค้ อลโทรล Picture box
จดุ ประสงคเ์ ชิงพฤตกิ รรม (ความรู้ ทกั ษะ คุณธรรม จรยิ ธรรม จรรยาบรรณวิชาชีพ)
1. บอกขนั้ ตอนการเขียนโปรแกรมดว้ ย Windows Forms Application
2. เขยี นโปรแกรมโดยใชค้ อลโทรล Button ได้ถกู ต้อง
3. เขยี นโปรแกรมโดยใช้คอลโทรล Label ได้ถกู ต้อง
4. เขยี นโปรแกรมโดยใช้คอลโทรล Textbox ไดถ้ กู ต้อง
5. เขยี นโปรแกรมโดยใชค้ อลโทรล (Picture box) ได้ถกู ต้อง
6. เขียนโปรแกรมโดยใชค้ ำสง่ั เง่ือนไข If ได้ถกู ตอ้ ง
สมรรถนะรายหนว่ ย
แสดงความรเู้ ก่ียวกับการออกแบบและการเขยี นโปรแกรมในโหมด Windows Forms
Application
เคร่อื งมือ วสั ดุ – อปุ กรณ์
1. เครอื่ งคอมพิวเตอร์ PC หรือ Notebook
2. โปรเจค็ เตอร์
3. หนังสือ
ลำดบั ข้ันตอนการปฏิบตั งิ าน
1. ผูเ้ รยี นค้นหาข้อมลู จากในอนิ เตอร์เนต็ ตามเร่อื งท่ไี ด้รับมอบหมายมาจาครผู สู้ อน
2. เม่ือผเู้ รียนไดร้ บั ขอ้ มลู เรียบรอ้ ยแล้ว ให้ผเู้ รียน นำขอ้ มลู นนั้ มาเรียบเรยี งใหเ้ ปน็ ระเบยี บ สวยงาม ให้
สามารถเข้าใจได้งา่ ย โดยจัดทำในรปู แบบเล่มรายงาน
260
ภาพประกอบ
ขอ้ ควรระวงั
ผู้เรียนควรตรวจสอบขอ้ มลู กอ่ นใหถ้ ีถ่ ว้ น ละเอียด และรอบคอบกอ่ น เพ่ือปอ้ งกันความผดิ พลาดก่อน
การสง่ งาน
ขอ้ เสนอแนะ
นกั ศกึ ษาควรมภี าพประกอบการนำเสนองาน และสามารถอธิบายเนือ้ หาให้สอดคล้องกบั ภาพให้
ถูกตอ้ ง
การประเมนิ ผล
1. สังเกตผเู้ รียนมีความสนใจ เกดิ ความเขา้ ใจในสาระการเรยี นรู้ ตลอดจนแสดงความกระตอื รอื รน้ ใน
การแสดงความคดิ เห็นและสรปุ สาระการเรียนรปู้ ระจำหนว่ ย
2. ทำใบงานได้อยา่ งถกู ต้อง ทนั เวลาทกี่ ำหนด ใบงานสะอาดและเปน็ ระเบียบ
3. ผู้เรยี นทำแบบฝกึ หดั หลงั เรียนไดถ้ กู ต้อง โดยได้คะแนน 50% เป็นอย่างตำ่
เอกสารอา้ งอิง
หนังสือเรียน รหสั 20204-2108 การเขียนโปรแกรมเชงิ วตั ถเุ บื้องต้นของสำนักพิมพเ์ มอื งไทย จำกัด
261
ใบมอมหมายงานท่ี 11 หน่วยที่ 11
รหสั วิชา 20204-2108ชื่อวชิ า การเขียนโปรแกรมเชิง ภาคเรยี นที่ 1
วตั ถุเบอ้ื งตน้ เวลารวม 12 ช่ัวโมง
ชอื่ หน่วย การเขยี นโปรแกรมในโหมด Windows
Forms Application
ชื่องาน การเขยี นโปรแกรมในโหมด Windows Forms Application จำนวน 4 ช่วั โมง
จุดประสงคก์ ารเรยี นรู้
จุดประสงค์การเรียนรู้
จุดประสงค์ทัว่ ไป
1. เพอื่ มีความรคู้ วามเขา้ ใจการเขียนโปรแกรมด้วย Windows Forms Application
2. เพอ่ื มคี วามรูค้ วามเขา้ ใจเขียนโปรแกรมโดยใชค้ อลโทรล Button
3. เพือ่ มีความรู้ความเข้าใจเขยี นโปรแกรมโดยใชค้ อลโทรล Label
4. เพ่ือมคี วามรูค้ วามเข้าใจเขียนโปรแกรมโดยใชค้ อลโทรล Textbox
5. เพือ่ มคี วามรคู้ วามเขา้ ใจเขียนโปรแกรมโดยใช้คอลโทรล Picture box
จดุ ประสงค์เชงิ พฤตกิ รรม (ความรู้ ทกั ษะ คณุ ธรรม จรยิ ธรรม จรรยาบรรณวชิ าชพี )
1. บอกขน้ั ตอนการเขยี นโปรแกรมด้วย Windows Forms Application
2. เขียนโปรแกรมโดยใช้คอลโทรล Button ไดถ้ กู ตอ้ ง
3. เขียนโปรแกรมโดยใช้คอลโทรล Label ได้ถกู ต้อง
4. เขยี นโปรแกรมโดยใช้คอลโทรล Textbox ไดถ้ ูกตอ้ ง
5. เขยี นโปรแกรมโดยใชค้ อลโทรล (Picture box) ไดถ้ กู ตอ้ ง
6. เขยี นโปรแกรมโดยใช้คำสง่ั เงอ่ื นไข If ได้ถกู ต้อง
สมรรถนะรายหน่วย
แสดงความรเู้ ก่ียวกับการออกแบบและการเขียนโปรแกรมในโหมด Windows Forms
Application
เครอื่ งมือ วัสดุ – อุปกรณ์
1. เครอื่ งคอมพิวเตอร์ PC หรอื Notebook
2. โปรเจ็คเตอร์
3. หนงั สอื
แนวทางการปฏิบัตงิ าน
1. ให้ผู้เรยี นปฏบิ ัตงิ านตามใบงาน ใบกิจกรรม ใบปฏิบตั งิ าน อยา่ งเคร่งครดั ตามหวั ข้อทไี่ ดร้ บั
มอบหมาย ใหเ้ สรจ็ สิ้นตามระยะเวลาทีก่ ำหนด พร้อมท้งั การจดั ทำรายงาน และนำเสนองานอยา่ ง
ถกู ต้อง ครบถว้ น เป็นระเบยี บเรยี บรอ้ ย
262
2. ให้ผู้เรียนแบง่ หน้าทก่ี บั เพือ่ นในกลุม่ ให้ชัดเจน และสามารถเข้าใจเนอื้ หาตามหัวข้อดังกล่าว ได้
อย่างถูกต้อง ครบถ้วน
ภาพประกอบ
ขอ้ ควรระวงั
ผู้เรียนควรตรวจสอบขอ้ มลู กอ่ นใหถ้ ถ่ี ้วน ละเอียด และรอบคอบกอ่ น เพอื่ ปอ้ งกนั ความผดิ พลาดก่อน
การสง่ งาน
ขอ้ เสนอแนะ
นักศกึ ษาควรมีภาพประกอบการนำเสนองาน และสามารถอธบิ ายเน้ือหาให้สอดคล้องกับภาพให้
ถูกต้อง
การประเมนิ ผล
1. สงั เกตผเู้ รียนมีความสนใจ เกดิ ความเข้าใจในสาระการเรยี นรู้ ตลอดจนแสดงความกระตือรือรน้ ใน
การแสดงความคดิ เหน็ และสรปุ สาระการเรียนร้ปู ระจำหนว่ ย
2. ทำใบงานได้อยา่ งถูกตอ้ ง ทันเวลาท่ีกำหนด ใบงานสะอาดและเปน็ ระเบียบ
3. ผู้เรียนทำแบบฝกึ หัดหลงั เรยี นไดถ้ ูกต้อง โดยไดค้ ะแนน 50% เปน็ อย่างตำ่
เอกสารอ้างองิ
หนังสือเรียน รหสั 20204-2108 การเขยี นโปรแกรมเชิงวัตถเุ บื้องต้นของสำนักพมิ พเ์ มอื งไทย จำกัด
263
แผนการจดั การเรียนรู้
หนว่ ยที่............... 12..................................... จำนวน........4..........ชัว่ โมง สัปดาหท์ ่ี.....15......
ชอ่ื วิชา การเขียนโปรแกรมเชงิ วัตถุเบือ้ งตน้
ชอ่ื หนว่ ย การสร้างคลาส
ชอ่ื เรอ่ื ง การสร้างคลาส
1. สาระสำคัญ
คลาสและออบเจก็ ต์เป็นแนวคิดพืน้ ฐานของการเขียนโปรแกรมเชิงวัตถุ ซึ่งคลาสเป็นพิมพเ์ ขยี ว หรือ
ต้นแบบที่ผู้ใช้กำหนดซึ่งวัตถุถูกสร้างขึ้น โดยพื้นฐานแล้วคลาสจะรวมฟิลด์และเมธอด (ฟังก์ชันสมาชิกซึ่ง
กำหนดการกระทำ) ไวใ้ นหน่วยเดียว คลาสและออบเจก็ ต์เปน็ ส่ิงทเี่ กย่ี วขอ้ งกนั โดยตรง คลาส คอื โคด้ (Code)
โปรแกรมทีเ่ ราเขยี นขน้ึ เพื่อทำหนา้ ทเ่ี ปน็ พิมพเ์ ขยี วของออบเจก็ ต์ การสรา้ งออบเจก็ ต์จากคลาสเราจะเรียกว่า
การอินสแตนซ์ (Instantiation) เราจะเรียกออบเจ็กตห์ น่ึงออบเจ็กต์ว่าหนึ่งอินสแตนซ์ เราสามารถสร้างออบ
เจก็ ต์ได้หลายอินสแตนซจ์ ากคลาสเพียงคลาสเดียว
2. สมรรถนะประจำหน่วย
แสดงความรเู้ กยี่ วกบั การเขยี นโปรแกรมเชงิ วตั ถุเบอื้ งตน้ ดว้ ยการออกแบบและเขยี นโปรแกรมการ
สรา้ งคลาส
3. จุดประสงคก์ ารเรยี นรู้
3.1 จดุ ประสงค์ท่ัวไป
1. เพอื่ มีความรู้ความเขา้ ใจความหมายของคลาสและออบเจก็ ต์
2. เพือ่ มีความร้คู วามเข้าใจใช้งานออบเจก็ ต์
3. เพอ่ื มีความรูค้ วามเข้าใจความหมายเอน็ แคบซเู ลชัน
4. เพื่อมคี วามรูค้ วามเขา้ ใจความหมายของการสืบทอด
5. เพือ่ มีความรคู้ วามเข้าใจความหมายของโพลีมอรฟ์ สิ
6. เพื่อมคี วามรู้ความเขา้ ใจความหมายของเมธอด
3.2 จดุ ประสงค์เชิงพฤติกรรม (ความรู้ ทักษะ คุณธรรม จริยธรรม จรรยาบรรณวชิ าชีพ)
1. อธิบายความหมายของการเขียนโปรแกรมเชงิ วตั ถไุ ด้
2. อธบิ ายความหมายของคลาสและออบเจก็ ตไ์ ด้
3. อธบิ ายความหมายของออบเจก็ ตแ์ ละไทปไ์ ด้
4. อธิบายการใช้งานออบเจก็ ตไ์ ด้
264
5. อธิบายความหมายของเอน็ แคบซเู ลชนั ได้
6. อธิบายความหมายของการสบื ทอดได้
7. อธบิ ายความหมายของโพลีมอรฟ์ สิ ได้
8. อธิบายความหมายของเมธอดได้
9. เขียนโปรแกรมแบบ OOP เบ้ืองต้นได้
4. สาระการเรียนรู้
1 คลาสและออบเจก็ ต์
2 ออบเจก็ ต์และไทป์
3 การใชง้ านออบเจ็กต์
4 เอ็นแคบซเู ลชัน
5 การสืบทอด
6 โพลีมอรฟ์ สิ
7 เมธอด
กิจกรรมครู กิจกรรมนักเรยี น
ข้นั นำเข้าสู่บทเรยี น(สปั ดาหล์ ะ 30 นาท)ี
1. ตรวจสอบรายช่อื นกั ศึกษาทเ่ี ขา้ เรียน 1. ให้ความร่วมมอื กับครใู นการตรวจสอบ
2.ใหน้ ักศึกษาคน้ คว้า การสรา้ งคลาส 2. คน้ คว้า การสร้างคลาส
3. รว่ มสนทนาเกยี่ วกับเร่ือง การสร้างคลาส 3. ร่วมสนทนาและแสดงความคดิ เหน็
ขน้ั ดำเนินการสอน(สัปดาห์ละ 180 นาที)
1. บอกจดุ ประสงคก์ ารเรยี น ฟัง ทำความเขา้ ใจและซกั ถาม
2. บรรยาย อธิบาย ยกตัวอย่าง แสดงวิธีการ ฟัง ทำความเข้าใจและปฎบิ ตั ิตาม
ปฎบิ ตั ิในแต่ ละหวั ข้อการเรียนและใหน้ กั ศึกษา ผู้เรยี นซกั ถามขอ้ สงสยั และจดบันทึก
ปฎบิ ัติไปพรอ้ มกัน รบั การประเมนิ
3. ครบู อกวธิ กี าร และแนวคิดในการปฏิบัตทิ ี่
ถกู ตอ้ งใหแ้ กผ่ เู้ รียน
4. ประเมินพฤติกรรมรายบุคคลโดยครจู ะซกั ถาม
ในแต่ละคน
265
ขน้ั สรปุ (สปั ดาหล์ ะ 30 นาที) ครูและนกั เรียนร่วมกนั สรปุ สาระสำคัญ
ครูและนกั เรียนร่วมกนั สรปุ สาระสำคัญ นักเรยี นสอบถามขอ้ สงสัย
เปิดโอกาสใหน้ ักเรยี นซักถามขอ้ สงสัย ฟงั และจดบนั ทึก
มอบหมายใหไ้ ปหดั ทำและศกึ ษาเพมิ่ เติม ทำแบบทดสอบทา้ ยบท
ทำแบบทดสอบ
5. กิจกรรมการเรยี นรู้ (สัปดาห์ท่ี......15.........)
6. สื่อและแหลง่ การเรยี นรู้
6.1 หนังสือเรียน รหสั 20204-2108การเขยี นโปรแกรมเชิงวตั ถุเบอื้ งต้นของสำนกั พิมพเ์ มืองไทย จำกดั
6.2 ใบความรู้
6.3 แบบฝึกหดั
6.4 แบบฝึกปฏิบตั ิ
6.5 แบบทดสอบหลงั เรยี น
6.7 คอมพวิ เตอร์
6.8 เครอื่ งฉายโปรเจ็คเตอร์
7. หลักฐานการเรยี นรู้
7.1 หลักฐานความรู้
ใบงาน แบบฝกึ หดั การคน้ ควา้ ข้อมลู ที่ได้รบั การเรียบเรียง สวยงาม เปน็ ระเบยี บ ถกู ตอ้ ง
7.2 หลักฐานการปฏิบตั ิงาน
ใบงาน แบบฝึกหัด รูปเล่มรายงานการคน้ คว้าข้อมูล ที่ได้รับการเรียบเรยี ง สวยงาม เป็นระเบยี บ
ถูกต้อง พร้อมทงั้ เอกสารประกอบการนำเสนองานหนา้ ชั้นเรียนของผู้เรียน และภาพประกอบ
8. การวดั และประเมนิ ผลการเรยี นรู้
8.1 เครอ่ื งมอื ประเมนิ
1. ใบงาน
2. แบบฝึกหัด
3. แบบประเมินผลงาน
4. แบบประเมินการนำเสนอผลงาน
266
8.2 เกณฑก์ ารประเมนิ วธิ ีวดั และประเมิน เกณฑก์ ารประเมนิ
เคร่ืองมอื การประเมนิ ไดค้ ะแนน
ตรวจแบบฝึกหัด รอ้ ยละ 75 ข้ึนไป
แบบฝกึ หดั ข้อละ 1 คะแนน
ถกู 1 คะแนน ได้คะแนน
แบบฝกึ ปฏิบตั ิ ไม่ถกู 0 คะแนน รอ้ ยละ 75 ข้ึนไป
ตรวจแบบฝกึ ปฏบิ ัติ
แบบทดสอบหลงั เรียน ข้อละ 1 คะแนน ได้คะแนน
ถกู 1 คะแนน รอ้ ยละ 75 ขึ้นไป
แบบสงั เกตพฤติกรรมดา้ นคณุ ธรรม ไมถ่ ูก 0 คะแนน
จริยธรรม คา่ นยิ ม และคณุ ลักษณะอนั พึง ตรวจแบบทดสอบหลงั เรียน ไดค้ ะแนน
ประสงค์ ข้อละ 1 คะแนน รอ้ ยละ 80 ขนึ้ ไป
ถกู 1 คะแนน
ไมถ่ ูก 0 คะแนน
สงั เกตพฤตกิ รรม
ดี 2 คะแนน
พอใช้ 1 คะแนน
ปรับปรงุ 0 คะแนน
9. กิจกรรมเสนอแนะ/งานทมี่ อบหมาย (ถา้ ม)ี
1. ผู้เรียนตอ้ งใหค้ วามสนใจในการศึกษา เพอ่ื หาเทคนิค วธิ กี าร หรือหลักการงา่ ยเพ่อื ให้หาคำตอบได้
อย่างถกู ต้อง และรวดเรว็ โดยการ ตง้ั ใจฟงั หลักการ เทคนิควิธกี ารที่ครผู ูส้ อนสรุปในขณะทที่ ำการสอน และ
นำขอ้ สงสัยซกั ถามครูในการเรยี นทุกครง้ั ทีเ่ กิดความสับสน และไม่เขา้ ใจ
2. ผมู้ กี ารทบทวนบทเรียน ตลอดเพอื่ เสรมิ สรา้ งความเข้าใจอยา่ งแท้จรงิ
3. ผเู้ รยี นหม่ันทำใบงาน แบบฝึกหัด และแกไ้ ขข้อทผ่ี ดิ ให้ถกู ต้องเสมอ
4. ผู้เรียนต้องสร้างมโนภาพให้เกิดความคิดรวบยอดในสาระการเรียนรู้และเทคนิควิธีการพร้อมกับ
ความจำเป็นในการนำไปประยุกต์ใช้ให้เกิดขึน้ โดยตนเองให้ได้เพ่ือเกดิ ความรู้ความเข้าใจอย่างแท้จรงิ ไมใ่ ช่
เกดิ จากการทอ่ งจำ
10. เอกสารอ้างอิง
หนังสอื เรียน รหสั 20204-2108 การเขียนโปรแกรมเชิงวตั ถเุ บอื้ งต้นของสำนักพิมพเ์ มอื งไทย จำกัด
267
ใบความรู้ท่ี 12 หน่วยท่ี 12
รหสั วิชา 20204-2108 ช่อื วิชา การเขียนโปรแกรมเชงิ
วัตถุเบ้อื งตน้ ภาคเรียนท่ี 1
ช่อื หน่วย การสรา้ งคลาส
เวลารวม 4 ชั่วโมง
ช่ือเรอื่ ง การสร้างคลาส เวลา 4 ช่ัวโมง
จดุ ประสงคก์ ารเรียนรู้
จุดประสงคก์ ารเรยี นรู้
จุดประสงค์ทวั่ ไป
1. เพอ่ื มีความรู้ความเขา้ ใจความหมายของคลาสและออบเจ็กต์
2. เพ่ือมีความร้คู วามเขา้ ใจใชง้ านออบเจก็ ต์
3. เพ่ือมคี วามรคู้ วามเข้าใจความหมายเอ็นแคบซเู ลชัน
4. เพื่อมีความรคู้ วามเขา้ ใจความหมายของการสบื ทอด
5. เพอ่ื มคี วามรูค้ วามเขา้ ใจความหมายของโพลีมอรฟ์ ิส
6. เพอ่ื มคี วามรู้ความเข้าใจความหมายของเมธอด
จดุ ประสงคเ์ ชงิ พฤตกิ รรม (ความรู้ ทกั ษะ คุณธรรม จรยิ ธรรม จรรยาบรรณวิชาชีพ)
1. อธบิ ายความหมายของการเขยี นโปรแกรมเชงิ วตั ถไุ ด้
2. อธิบายความหมายของคลาสและออบเจก็ ต์ได้
3. อธิบายความหมายของออบเจ็กต์และไทปไ์ ด้
4. อธบิ ายการใช้งานออบเจก็ ต์ได้
5. อธิบายความหมายของเอ็นแคบซเู ลชนั ได้
6. อธิบายความหมายของการสบื ทอดได้
7. อธบิ ายความหมายของโพลมี อรฟ์ สิ ได้
8. อธิบายความหมายของเมธอดได้
9. เขียนโปรแกรมแบบ OOP เบอ้ื งต้นได้
สมรรถนะรายหนว่ ย
แสดงความรเู้ กย่ี วกับการเขียนโปรแกรมเชงิ วตั ถุเบ้อื งต้น ดว้ ยการออกแบบและเขียน
โปรแกรมการสรา้ งคลาส
268
หน่วยท่ี 12 การสรา้ งคลาส
Classes
คลาส คือแม่แบบ (template) ของโปรแกรมเพอ่ื นำมาสรา้ งออบเจ็คในโปรแกรม ในการสร้าง
คลาสนน้ั จะเป็นเหมือนแมแ่ บบของสง่ิ ๆ หน่งึ ทมี่ ีอยจู่ รงิ เช่น คลาสของคน ใช้อธิบายส่วนประกอบ ลักษณะ
และการกระทำ เราใช้คลาสเพอ่ื ทจ่ี ะนำไปสร้างออบเจค็ ได้อยา่ งไมจ่ ำกดั
คณุ ไดเ้ หน็ คลาสมาในบทกอ่ นหน้าแล้วในบทเรยี นนี้ เราจะแสดงให้คุณเหน็ และเขา้ ใจอยา่ งละเอียดในบทน้ี
และการสร้างคลาสในภาษา C# นัน้ จะมรี ูปแบบดงั น้ี
class identifier {
// class members and specifications
}
ในการสร้างคลาสน้ัน เราจะใชค้ ำสง่ั class และ identifier น้นั เปน็ ช่ือของคลาสทีจ่ ะสรา้ งขน้ึ หลกั การใน
การตงั้ ชื่อคลาสน้นั เหมือนกับหลกั ในการตงั้ ชื่อตัวแปร แต่ในการประบตั ทิ ่ีดี คณุ ควรจะเรม่ิ ตน้ ชือ่ ของคลาส
ด้วยตวั พิมพใ์ หญเ่ สมอ และเริ่มตน้ คำใหม่ดว้ ยตัวพิมพ์ใหญ่ เช่น Person Car Country เป็นตน้
ในส่วนบลอคคำสังของคลาส จะเป็นส่วนในการประกาศสมาชิกของคลาส โดยคลาสจะมสี มาชกิ ได้สองแบบ
คอื ตัวแปร และเมธอด ตวั แปรสามารถเปน็ ไดท้ ง้ั และตวั แปรแบบ static นอกจากน้ี สมาชกิ ในคลาสยงั
สามารถกำหนดระดบั ความเขา้ ถึงได้
ตอ่ ไปมาดูตัวอยา่ งการสรา้ งคลาสในภาษา C#
class Car {
public static int enegyUserPerRun = 3;
String color;
private float enegy = 10;
public int speed = 0;
private int distant = 0;
public void AddEnegy () {
enegy += 10;
}
public void Run () {
if (enegy < speed * enegyUserPerRun) {
Console.WriteLine("No enough enegy to run.");
} else {
distant += (speed * enegyUserPerRun);
enegy -= enegyUserPerRun;
}
}
269
public void ShowDistance () {
Console.WriteLine("Distance runned " + distant);
}
}
ในตวั อย่างเราไดส้ รา้ งคลาสทมี่ ชี ื่อวา่ Car ซงึ่ เปน็ คลาสเกี่ยวกบั รถ โดยคลาสน้นั จะมสี มาชิกทเ่ี ป็นตวั แปร 5
ตัว และเป็นเมธอด 3 เมธอด
ตัวแปร enegyUserPerRun นน้ั เป็นตัวแปรประเภท integer เก็บสำหรบั เป็นขอ้ มูลถงึ การใชพ้ ลงั งานใน
การวิ่งและละครั้งของรถ ตวั แปรนเ้ี ปน็ static นน่ั หมายความวา่ รถทกุ คนั ทสี่ รา้ งจากคลาสนจ้ี ะใช่ตวั แปรนี้
รว่ มกัน และถา้ มกี ารเปลยี่ นแปลงค่าของตวั แปรนก้ี ็จะเปลี่ยนสำหรบั ทกุ ออบเจค็ ทีส่ ร้างจากคลาสน้ี ตวั แปร
color ใชใ้ นการเก็บสขี องรถ ว่ารถคนั น้มี ีสอี ะไร และตัวแปร enegy เปน็ ตวั แปรในการเกบ็ พลงั งานคงเหลอื
ปจั จุบนั ของรถ ตวั แปร speed เป็นความเรว็ ของรถ และตัวแปร distant บอกว่ารถคันนวี้ งิ่ ไปไดร้ ะยะทาง
เทา่ ไหรแ่ ล้ว
Class constructor
คอนสตรัคเตอร์ (Constructor) เป็นเมธอดพเิ ศษในคลาสทใ่ี ช้สำหรบั ในการกำหนดคา่ เรมิ่ ตน้ เมื่อไดท้ ำการ
สรา้ งออบเจค็ คอนสตคคั เตอร์นัน้ จะมชี ่อื ทเ่ี หมือนกบั คลาส มีการเข้าถึงเปน็ แบบ public และไมม่ สี ่วนของ
การ return คา่ กลับ ตอ่ ไปมาดูตวั อย่างการสรา้ งคอนสตคั เตอร์กับคลาสในภาษา C#
class Car {
public static int enegyUserPerRun = 3;
String color;
private float enegy = 10;
public int speed = 0;
private int distant = 0;
public Car(String c, float e, int s, int d)
{
color = c;
enegy = e;
speed = s;
distant = d;
}
public void AddEnegy () {
enegy += 10;
}
270
public void Run () {
if (enegy < speed * enegyUserPerRun) {
Console.WriteLine("No enough enegy to run.");
} else {
distant += (speed * enegyUserPerRun);
enegy -= enegyUserPerRun;
}
}
public void ShowDistance () {
Console.WriteLine("Distance runned " + distant);
}
}
จากตวั อย่างน้ันเปน็ คลาสเดียวกันกบั ทเ่ี ราสร้างก่อนหน้า โดยคณุ จะสังเกตเุ หน็ ว่า public Car(...) นัน้ กค็ ือ
คอนสตรคั เตอร์ของคลาสนี้ เพอ่ื ทจี่ ะกำหนดคา่ เรมิ่ ต้นให้กบั ออบเจค็ เมอื่ มันถกู สร้าง นอกจากนี้คณุ ยงั
สามารถมีไดห้ ลายคอนสตรคั เตอรไ์ ด้ ถา้ หากว่ามันมพี ารามเิ ตอร์ และประเภทของข้อมลุ ท่ีแตกตา่ งกัน เชน่
public Car(String c, int s)
{
color = c;
speed = s;
}
จากตวั อย่างขา้ งบนเปน็ คอนสตรคั เตอรอ์ นั ทส่ี องของคลาสน้ี โดยมรี ับพารามเิ ตอรเ์ ข้ามาเพยี งแคส่ องตัว
เนื่องจากวา่ ตัวแปร enegy ของเรานน้ั มีคา่ เริ่มตน้ แลว้ และตวั แปร distant กต็ ้องเร่มิ ตน้ จากศนู ยอ์ ยู่แลว้
ดงั น้นั ในตอนสร้างออบเจค็ คุณจะสามารถเลอื กใช้คอนสตรคั เตอรอ์ ันไหนก็ได้
271
แบบฝกึ หัด/เฉลย
ตอนที่ 1 คำสง่ั จงตอบคำถามต่อไปนใ้ี หถ้ กู ต้อง
1. สร้างคลาสสำหรบั หาผลรวมของเลข 2 จำนวน
Program.cs
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace ClassDemo
{
class Program
{
static void Main(string[] args)
{
Sum s = new Sum();
s.setVal(3, 14);
Console.WriteLine("Sum of 3 and 14 is: {0}", s.getSum());
Console.Read();
}
}
}
คำตอบ
โค๊ตโปรแกรม
Sum.cs
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace ClassDemo
{
class Sum
272
{
private int x;
private int y;
public void setVal(int val1, int val2)
{
x = val1;
y = val2;
}
public int getSum()
{
return x + y;
}
}
}
ผลลัพธ์โปรแกรม
Sum of 3 and 14 is: 17
กำหนดให้คลาส Car มี Methods ดังนี้ reFuel() , getFuel() , setSpeed() , drive() และมี
Attributes ดังนี้ fuel , maxSpeed จงสร้างคลาส Car ให้มี Methods และ Attributes
ตามที่กำหนด
คำตอบ
โค๊ตโปรแกรม
public class Car
{
public float fuel;
public int maxSpeed;
public int currentSpeed = 0;
public String color;
public void reFuel()
{
fuel = 100;
}
public float getFuel()
{
273
return fuel;
}
private void setSpeed(int speed)
{
currentSpeed = speed;
}
public void drive()
{
setSpeed(currentSpeed + 1);
if (currentSpeed >= maxSpeed)
{
currentSpeed = maxSpeed;
}
}
}
8. การทำ Method Hiding มีประโยชนอ์ ยา่ งไร
ตอบ เมธอดไฮดงิ (Method Hiding) คอื การสรา้ งเมธอดใหมท่ บั เมธอดเดมิ ประโยชน์
คอื เราสามารถนำคลาสทมี่ อี ย่แู ล้วมาใชป้ ระโยชน์ถึงแม้วา่ คลาสน้นั จะมีคณุ สมบตั ไิ มต่ รงตามทีเ่ รา
ตอ้ งการท้ังหมด
9. เมธอดตา่ งจากฟงั ก์ชันอยา่ งไร
ตอบ เมธอด (Method) เป็นองค์ประกอบอย่างหนงึ่ ของคลาส สำหรับกำหนดรูปแบบ วิธีการ
กระทำอยา่ งใดอย่างหน่ึง เช่น การคำนวณหาผลลพั ธ์ เมธอดเทยี บได้กบั ฟงั กช์ นั หรอื โพรซีเยอร์ในภาษา
โปรแกรมอ่นื ๆ
10. จงสรา้ งคลาสจากไดอแกรมตอ่ ไปนี้
คำตอบ
โคต๊ โปรแกรม
public class BankAccount {
private String owner;
274
private double balance;
public BankAccount(String n) {
owner = n; balance = 0.0;
}
public void deposit(double val) {
balance = balance + val;
}
public void withdraw(double val) {
balance = balance - val;
}
public String toString() {
return "{ Owner: " + owner + " " + " - Balance: Bath " +
balance + " }";
}
}
เอกสารอา้ งองิ
หนงั สอื เรียน รหสั 20204-2108 การเขียนโปรแกรมเชิงวตั ถเุ บ้อื งตน้ ของสำนกั พิมพเ์ มืองไทย
จำกดั
ภาคผนวก (ถ้าม)ี
275
ใบงานที่ 12 หน่วยท่ี 12
รหสั วชิ า 20204-2108 ชื่อวชิ า การเขยี นโปรแกรมเชงิ
วัตถเุ บอื้ งตน้ ภาคเรยี นท่ี 1
ชื่อหน่วย การสรา้ งคลาส
เวลารวม 4 ชั่วโมง
ชอื่ งาน การสรา้ งคลาส จำนวน 4 ชั่วโมง
จุดประสงคก์ ารเรยี นรู้
จุดประสงค์การเรียนรู้
จดุ ประสงคท์ ่ัวไป
1. เพอ่ื มีความร้คู วามเขา้ ใจความหมายของคลาสและออบเจ็กต์
2. เพือ่ มีความรู้ความเข้าใจใชง้ านออบเจก็ ต์
3. เพอื่ มคี วามร้คู วามเข้าใจความหมายเอน็ แคบซเู ลชัน
4. เพอื่ มีความรคู้ วามเขา้ ใจความหมายของการสบื ทอด
5. เพื่อมีความรคู้ วามเข้าใจความหมายของโพลีมอรฟ์ สิ
6. เพือ่ มีความรคู้ วามเขา้ ใจความหมายของเมธอด
จุดประสงคเ์ ชงิ พฤติกรรม (ความรู้ ทกั ษะ คณุ ธรรม จรยิ ธรรม จรรยาบรรณวชิ าชพี )
1. อธิบายความหมายของการเขยี นโปรแกรมเชิงวัตถุได้
2. อธบิ ายความหมายของคลาสและออบเจก็ ต์ได้
3. อธิบายความหมายของออบเจ็กตแ์ ละไทป์ได้
4. อธิบายการใชง้ านออบเจก็ ต์ได้
5. อธิบายความหมายของเอ็นแคบซเู ลชนั ได้
6. อธบิ ายความหมายของการสบื ทอดได้
7. อธิบายความหมายของโพลมี อร์ฟสิ ได้
8. อธบิ ายความหมายของเมธอดได้
9. เขยี นโปรแกรมแบบ OOP เบ้อื งต้นได้
สมรรถนะรายหน่วย
แสดงความรเู้ กีย่ วกับการเขียนโปรแกรมเชงิ วตั ถเุ บอื้ งตน้ ด้วยการออกแบบและเขยี น
โปรแกรมการสรา้ งคลาส
เคร่อื งมือ วสั ดุ – อุปกรณ์
1. เคร่อื งคอมพวิ เตอร์ PC หรือ Notebook
2. โปรเจค็ เตอร์
3. หนงั สอื
276
ลำดบั ข้ันตอนการปฏิบตั ิงาน
1. ให้นักศึกษาแบง่ กลมุ่ ตามความเหมาะสม เพื่อศกึ ษาและอภิปราย
1.1 อธบิ ายความรู้เก่ยี วกับความเขา้ ใจการสรา้ งคลาส
1.2 เขยี นรูปพรอ้ มอธิบายความเขา้ ใจการสร้างคลาส
2. เขียนอภปิ รายและวเิ คราะหใ์ ส่กระดาษ
3. นำผลงานส่งครูผสู้ อนเพอื่ ประเมนิ ผล
ภาพประกอบ
ข้อควรระวงั
ผู้เรยี นควรตรวจสอบข้อมลู กอ่ นใหถ้ ีถ่ ้วน ละเอยี ด และรอบคอบก่อน เพื่อปอ้ งกนั ความผดิ พลาดกอ่ น
การสง่ งาน
ขอ้ เสนอแนะ (ถ้าม)ี
นักศึกษาควรมภี าพประกอบการนำเสนองาน และสามารถอธบิ ายเนอ้ื หาใหส้ อดคล้องกับภาพใหถ้ กู ตอ้ ง
การประเมนิ ผล (ตอ้ งระบเุ กณฑ์การประเมนิ ใหช้ ัดเจน)
1. สงั เกตผเู้ รียนมคี วามสนใจ เกิดความเขา้ ใจในสาระการเรยี นรู้ ตลอดจนแสดงความกระตอื รือร้น
ในการแสดงความคิดเหน็ และสรุปสาระการเรยี นรปู้ ระจำหนว่ ย
2. ทำใบงานได้อยา่ งถูกต้อง ทันเวลาท่ีกำหนด ใบงานสะอาดและเป็นระเบียบ
3. ผ้เู รยี นทำแบบฝกึ หัดหลังเรียนไดถ้ กู ต้อง โดยไดค้ ะแนน 50% เปน็ อย่างตำ่
เอกสารอา้ งอิง
หนังสือเรียน รหสั 20204-2108การเขยี นโปรแกรมเชิงวตั ถเุ บอ้ื งต้นของสำนักพมิ พ์เมอื งไทย จำกัด
277
ใบกจิ กรรมท่ี 12 หน่วยท่ี 12
รหสั วิชา 20204-2108ชอ่ื วิชา การเขียนโปรแกรมเชงิ
วัตถุเบ้ืองตน้ ภาคเรยี นท่ี 1
ชือ่ หนว่ ย การสร้างคลาส
เวลารวม 4 ช่ัวโมง
ชือ่ งาน การสรา้ งคลาส จำนวน 4 ช่วั โมง
จุดประสงค์การเรยี นรู้
จดุ ประสงค์การเรียนรู้
จดุ ประสงค์ทัว่ ไป
1. เพอ่ื มคี วามร้คู วามเข้าใจความหมายของคลาสและออบเจ็กต์
2. เพือ่ มคี วามรูค้ วามเข้าใจใช้งานออบเจก็ ต์
3. เพอ่ื มคี วามรคู้ วามเขา้ ใจความหมายเอน็ แคบซเู ลชนั
4. เพอ่ื มีความรคู้ วามเขา้ ใจความหมายของการสืบทอด
5. เพอ่ื มคี วามรคู้ วามเข้าใจความหมายของโพลีมอรฟ์ ิส
6. เพื่อมีความรู้ความเขา้ ใจความหมายของเมธอด
จดุ ประสงค์เชงิ พฤติกรรม (ความรู้ ทกั ษะ คุณธรรม จรยิ ธรรม จรรยาบรรณวิชาชพี )
1. อธิบายความหมายของการเขยี นโปรแกรมเชิงวัตถไุ ด้
2. อธบิ ายความหมายของคลาสและออบเจก็ ตไ์ ด้
3. อธบิ ายความหมายของออบเจ็กต์และไทป์ได้
4. อธิบายการใชง้ านออบเจก็ ตไ์ ด้
5. อธิบายความหมายของเอน็ แคบซเู ลชนั ได้
6. อธบิ ายความหมายของการสบื ทอดได้
7. อธบิ ายความหมายของโพลมี อร์ฟสิ ได้
8. อธิบายความหมายของเมธอดได้
9. เขียนโปรแกรมแบบ OOP เบ้ืองตน้ ได้
สมรรถนะรายหน่วย
แสดงความรเู้ กี่ยวกับการเขียนโปรแกรมเชงิ วัตถุเบอ้ื งต้น ดว้ ยการออกแบบและเขยี น
โปรแกรมการสรา้ งคลาส
เคร่ืองมือ วัสดุ – อุปกรณ์
1. เครื่องคอมพวิ เตอร์ PC หรอื Notebook
2. โปรเจ็คเตอร์
3. หนงั สอื
278
ลำดับกจิ กรรม
1. ผู้เรยี นตอ้ งให้ความสนใจในการศึกษา เพอื่ หาเทคนิค วธิ ีการ หรอื หลกั การงา่ ยเพื่อให้หาคำตอบ
ได้อย่างถูกต้อง และรวดเร็ว โดยการ ตั้งใจฟังหลักการ เทคนิควธิ ีการที่ครูผู้สอนสรปุ ในขณะที่ทำการ
สอน และนำขอ้ สงสัยซกั ถามครูในการเรียนทุกครั้งทเี่ กิดความสบั สน และไมเ่ ขา้ ใจ
2. ผมู้ ีการทบทวนบทเรียน ตลอดเพื่อเสริมสร้างความเข้าใจอยา่ งแทจ้ รงิ
3. ผู้เรียนหมน่ั ทำใบงาน แบบฝึกหดั และแกไ้ ขขอ้ ท่ีผดิ ให้ถูกต้องเสมอ
4. ผู้เรียนต้องสร้างมโนภาพให้เกิดความคิดรวบยอดในสาระการเรียนรูแ้ ละเทคนิควิธกี ารพร้อมกับ
ความจำเป็นในการนำไปประยุกต์ใช้ให้เกิดขึ้นโดยตนเองให้ไดเ้ พื่อเกิดความรู้ความเข้าใจอย่างแท้จริง
ไม่ใช่เกดิ จากการทอ่ งจำ
5. ผู้เรียนต้องดำเนินการตามกิจกรรมหรืองานที่ได้รับมอบหมาย ให้เสร็จสิ้นภายในระยะเวลาท่ี
กำหนด และฝึกฝนตนเองเสมอ เมอ่ื ได้รบั มอบหมายงานมา
การประเมินผล (ตอ้ งระบเุ กณฑ์การประเมนิ ใหช้ ดั เจน)
1. สงั เกตผเู้ รยี นมคี วามสนใจ เกดิ ความเข้าใจในสาระการเรยี นรู้ ตลอดจนแสดงความกระตอื รอื รน้ ใน
การแสดงความคิดเหน็ และสรุปสาระการเรยี นรปู้ ระจำหนว่ ย
2. ทำใบงานได้อย่างถูกตอ้ ง ทันเวลาทก่ี ำหนด ใบงานสะอาดและเป็นระเบียบ
3. ผเู้ รียนทำแบบฝึกหัดหลังเรยี นได้ถูกต้อง โดยได้คะแนน 50% เป็นอย่างตำ่
เอกสารอา้ งอิง
หนงั สอื เรียน รหสั 20204-2108 การเขยี นโปรแกรมเชงิ วัตถเุ บื้องต้นของสำนักพิมพเ์ มืองไทย จำกัด
279
ใบปฏบิ ัตงิ านท่ี 12 หน่วยท่ี 12
รหัสวิชา 20204-2108 ชื่อวิชา การเขียนโปรแกรมเชิง
วตั ถเุ บือ้ งต้น ภาคเรยี นที่ 1
ชื่อหนว่ ย การสร้างคลาส
เวลารวม 4 ชว่ั โมง
ช่อื งาน การสรา้ งคลาส จำนวน 4 ช่ัวโมง
จุดประสงค์การเรียนรู้
จุดประสงคก์ ารเรยี นรู้
จดุ ประสงค์ทั่วไป
1. เพอื่ มีความรคู้ วามเข้าใจความหมายของคลาสและออบเจ็กต์
2. เพ่อื มคี วามรู้ความเขา้ ใจใชง้ านออบเจก็ ต์
3. เพอ่ื มีความร้คู วามเขา้ ใจความหมายเอ็นแคบซเู ลชนั
4. เพอ่ื มคี วามรู้ความเข้าใจความหมายของการสบื ทอด
5. เพื่อมคี วามรคู้ วามเขา้ ใจความหมายของโพลีมอรฟ์ ิส
6. เพ่อื มคี วามรคู้ วามเขา้ ใจความหมายของเมธอด
จดุ ประสงค์เชิงพฤติกรรม (ความรู้ ทกั ษะ คุณธรรม จรยิ ธรรม จรรยาบรรณวชิ าชพี )
1. อธบิ ายความหมายของการเขียนโปรแกรมเชงิ วตั ถไุ ด้
2. อธิบายความหมายของคลาสและออบเจก็ ตไ์ ด้
3. อธิบายความหมายของออบเจก็ ต์และไทป์ได้
4. อธิบายการใชง้ านออบเจก็ ตไ์ ด้
5. อธิบายความหมายของเอน็ แคบซเู ลชนั ได้
6. อธิบายความหมายของการสบื ทอดได้
7. อธิบายความหมายของโพลมี อรฟ์ สิ ได้
8. อธิบายความหมายของเมธอดได้
9. เขยี นโปรแกรมแบบ OOP เบ้อื งตน้ ได้
สมรรถนะรายหน่วย
แสดงความรเู้ กีย่ วกบั การเขยี นโปรแกรมเชงิ วตั ถุเบ้อื งตน้ ดว้ ยการออกแบบและเขียน
โปรแกรมการสร้างคลาส
เครอื่ งมอื วัสดุ – อุปกรณ์
1. เคร่ืองคอมพวิ เตอร์ PC หรอื Notebook
2. โปรเจค็ เตอร์
3. หนงั สือ
280
ลำดับขั้นตอนการปฏิบตั ิงาน
1. ผ้เู รยี นคน้ หาขอ้ มลู จากในอนิ เตอร์เน็ต ตามเรอื่ งทีไ่ ด้รับมอบหมายมาจาครูผสู้ อน
2. เมอื่ ผเู้ รยี นไดร้ ับขอ้ มลู เรียบร้อยแลว้ ใหผ้ เู้ รยี น นำขอ้ มูลนน้ั มาเรียบเรียงใหเ้ ป็นระเบียบ สวยงาม ให้
สามารถเขา้ ใจไดง้ า่ ย โดยจดั ทำในรปู แบบเลม่ รายงาน
ภาพประกอบ
ข้อควรระวงั
ผ้เู รียนควรตรวจสอบข้อมลู กอ่ นให้ถ่ถี ว้ น ละเอียด และรอบคอบกอ่ น เพื่อป้องกันความผิดพลาดกอ่ น
การสง่ งาน
ขอ้ เสนอแนะ
นักศึกษาควรมีภาพประกอบการนำเสนองาน และสามารถอธิบายเน้ือหาให้สอดคลอ้ งกบั ภาพให้
ถูกต้อง
การประเมินผล
1. สังเกตผเู้ รยี นมีความสนใจ เกิดความเขา้ ใจในสาระการเรยี นรู้ ตลอดจนแสดงความกระตอื รือร้นใน
การแสดงความคิดเหน็ และสรปุ สาระการเรียนรู้ประจำหนว่ ย
2. ทำใบงานได้อยา่ งถกู ตอ้ ง ทนั เวลาท่ีกำหนด ใบงานสะอาดและเป็นระเบยี บ
3. ผู้เรียนทำแบบฝกึ หดั หลงั เรียนไดถ้ ูกต้อง โดยไดค้ ะแนน 50% เป็นอย่างตำ่
เอกสารอา้ งองิ
หนังสือเรียน รหสั 20204-2108 การเขียนโปรแกรมเชงิ วตั ถเุ บื้องต้นของสำนกั พิมพเ์ มืองไทย จำกดั
281
ใบมอมหมายงานท่ี 12 หน่วยที่ 12
รหัสวิชา 20204-2108 ช่อื วิชา การเขียนโปรแกรมเชิง
วตั ถเุ บือ้ งต้น ภาคเรียนท่ี 1
ชื่อหนว่ ย การสร้างคลาส
เวลารวม 4 ชั่วโมง
ช่อื งาน การสรา้ งคลาส จำนวน 4 ชวั่ โมง
จดุ ประสงคก์ ารเรยี นรู้
จุดประสงคก์ ารเรยี นรู้
จดุ ประสงค์ทั่วไป
1. เพอื่ มีความรคู้ วามเข้าใจความหมายของคลาสและออบเจก็ ต์
2. เพ่อื มคี วามรู้ความเขา้ ใจใชง้ านออบเจก็ ต์
3. เพอ่ื มีความร้คู วามเขา้ ใจความหมายเอ็นแคบซเู ลชนั
4. เพอ่ื มคี วามรู้ความเข้าใจความหมายของการสบื ทอด
5. เพื่อมคี วามรคู้ วามเขา้ ใจความหมายของโพลีมอรฟ์ สิ
6. เพ่อื มคี วามรคู้ วามเขา้ ใจความหมายของเมธอด
จดุ ประสงค์เชิงพฤติกรรม (ความรู้ ทกั ษะ คุณธรรม จรยิ ธรรม จรรยาบรรณวิชาชีพ)
1. อธบิ ายความหมายของการเขียนโปรแกรมเชงิ วัตถไุ ด้
2. อธิบายความหมายของคลาสและออบเจก็ ตไ์ ด้
3. อธิบายความหมายของออบเจ็กต์และไทปไ์ ด้
4. อธิบายการใชง้ านออบเจก็ ตไ์ ด้
5. อธิบายความหมายของเอน็ แคบซเู ลชันได้
6. อธิบายความหมายของการสบื ทอดได้
7. อธิบายความหมายของโพลมี อร์ฟสิ ได้
8. อธิบายความหมายของเมธอดได้
9. เขยี นโปรแกรมแบบ OOP เบอื้ งต้นได้
สมรรถนะรายหน่วย
แสดงความรเู้ กีย่ วกบั การเขียนโปรแกรมเชงิ วตั ถุเบอ้ื งต้น ดว้ ยการออกแบบและเขียน
โปรแกรมการสร้างคลาส
เครอื่ งมอื วัสดุ – อุปกรณ์
1. เคร่ืองคอมพวิ เตอร์ PC หรอื Notebook
2. โปรเจค็ เตอร์
3. หนงั สือ
282
แนวทางการปฏิบตั ิงาน
1. ให้ผูเ้ รียนปฏบิ ตั งิ านตามใบงาน ใบกิจกรรม ใบปฏิบตั งิ าน อย่างเครง่ ครดั ตามหัวขอ้ ที่ได้รบั
มอบหมาย ใหเ้ สรจ็ ส้ินตามระยะเวลาทก่ี ำหนด พรอ้ มท้งั การจดั ทำรายงาน และนำเสนองานอย่าง
ถูกตอ้ ง ครบถว้ น เปน็ ระเบียบเรียบรอ้ ย
2. ใหผ้ ูเ้ รียนแบง่ หนา้ ทก่ี บั เพื่อนในกลุ่มให้ชดั เจน และสามารถเข้าใจเนอ้ื หาตามหวั ข้อดังกลา่ ว ได้
อย่างถูกต้อง ครบถ้วน
ภาพประกอบ
ขอ้ ควรระวัง
ผเู้ รยี นควรตรวจสอบขอ้ มลู กอ่ นให้ถ่ถี ว้ น ละเอียด และรอบคอบกอ่ น เพอ่ื ป้องกันความผดิ พลาดก่อน
การสง่ งาน
ขอ้ เสนอแนะ
นกั ศกึ ษาควรมภี าพประกอบการนำเสนองาน และสามารถอธิบายเนื้อหาให้สอดคลอ้ งกับภาพให้
ถกู ต้อง
การประเมนิ ผล
1. สังเกตผเู้ รยี นมีความสนใจ เกิดความเข้าใจในสาระการเรยี นรู้ ตลอดจนแสดงความกระตอื รือร้นใน
การแสดงความคดิ เหน็ และสรปุ สาระการเรียนรู้ประจำหนว่ ย
2. ทำใบงานได้อยา่ งถูกตอ้ ง ทันเวลาทกี่ ำหนด ใบงานสะอาดและเป็นระเบียบ
3. ผเู้ รียนทำแบบฝกึ หัดหลังเรียนไดถ้ ูกต้อง โดยไดค้ ะแนน 50% เปน็ อยา่ งต่ำ
เอกสารอา้ งอิง
หนังสือเรยี น รหสั 20204-2108 การเขยี นโปรแกรมเชิงวัตถเุ บือ้ งตน้ ของสำนักพิมพเ์ มอื งไทย จำกดั
283
แผนการจัดการเรยี นรู้
หน่วยท่ี............... 13..................................... จำนวน........8..........ชั่วโมง สปั ดาห์ท่ี.....16-17......
ชอื่ วิชา การเขียนโปรแกรมเชงิ วตั ถเุ บอ้ื งต้น
ชือ่ หนว่ ย การสรา้ งกราฟกิ
ชื่อเรือ่ ง การสรา้ งกราฟิก
1. สาระสำคญั
กราฟิก (Graphic) ภาษา C# จะเรียกใช้งาน GDI+ (Graphics Device Interface Plus) เป็นกราฟ
ฟิกส์ไลบราร่ี ซึ่ง Microsoft ได้ทำการจัดเตรียมไว้ให้นักพัฒนาโปรแกรมได้เรียกใช้งานอย่างง่ายดายและ
สะดวกรวดเร็ว สำหรบั ทำงานทางด้านกราฟฟิกส์ ซ่งึ GDI+ นั้นมคี ณุ สมบัตเิ ป็น OOP โดยสบูรณ์ GDI+ จะถูก
ตดิ ต้งั มาพรอ้ มกบั วินโดวส์ทกุ รนุ่ ในปจั จบุ ัน
2. สมรรถนะประจำหนว่ ย
แสดงความรเู้ ก่ยี วกบั การเขียนโปรแกรมเชิงวตั ถุเบอ้ื งตน้ ด้วยการสร้างกราฟิก
3. จุดประสงคก์ ารเรยี นรู้
3.1 จดุ ประสงค์ท่วั ไป
1. เพอื่ มคี วามรู้ความเขา้ ใจการสร้างกราฟิก
3.2 จุดประสงค์เชิงพฤติกรรม (ความรู้ ทักษะ คุณธรรม จริยธรรม จรรยาบรรณวชิ าชพี )
1. อธบิ ายระบบพิกัดด้านกราฟิกได้
2. อธิบายเมธอดในการสรา้ งกาฟกิ ได้
3. อธิบายออบเจคพ้ืนฐานทางกราฟิกได้
4. อธิบายและใชง้ านเมธอดวาดเส้นตรงได้
5. อธิบายและใชง้ านเมธอดวาดเสน้ โค้งได้
6. อธิบายและใช้งานเมธอดวาดรปู สเ่ี หลี่ยมได้
7. อธบิ ายและใช้งานเมธอดวาดรปู หลายเหล่ยี มได้
8. อธิบายและใช้งานเมธอดวาดวงกลมและวงรไี ด้
9. อธบิ ายและใช้งานเมธอดไลส่ ไี ด้
10. อธบิ ายและใชง้ านเมธอดวาดตวั อกั ษรได้
11.เขียนโปรแกรมแสดงผลกราฟกิ ดว้ ย GDi+ เบอ้ื งตน้ ได้
284
4. สาระการเรียนรู้
1 ระบบพิกดั ด้านกราฟกิ
2 เมธอดในการสร้างกาฟกิ
3 ออบเจคพืน้ ฐานทางกราฟิก
4 การวาดเสน้ ตรง
5 การวาดเสน้ โค้ง
6 การวาดรูปสเี่ หล่ียม
7 การวาดรูปหลายเหล่ยี ม
8 การวาดวงกลมและวงรี
9 การไล่สี
10 การวาดตวั อักษร
กิจกรรมครู กจิ กรรมนักเรยี น
ข้นั นำเข้าสู่บทเรียน(สปั ดาหล์ ะ 30 นาท)ี
1. ตรวจสอบรายช่อื นกั ศกึ ษาทเี่ ขา้ เรียน 1. ใหค้ วามรว่ มมอื กับครใู นการตรวจสอบ
2.ให้นกั ศกึ ษาค้นคว้า การสร้างกราฟิก 2. คน้ ควา้ การสรา้ งกราฟกิ
3. รว่ มสนทนาเกย่ี วกับเรื่อง การสรา้ งกราฟกิ 3. ร่วมสนทนาและแสดงความคดิ เห็น
ขั้นดำเนินการสอน(สปั ดาหล์ ะ 180 นาที)
1. บอกจดุ ประสงค์การเรียน ฟงั ทำความเข้าใจและซักถาม
2. บรรยาย อธบิ าย ยกตวั อยา่ ง แสดงวธิ ีการ ฟงั ทำความเขา้ ใจและปฎบิ ัติตาม
ปฎบิ ัตใิ นแต่ ละหัวข้อการเรียนและให้นักศกึ ษา ผู้เรยี นซักถามขอ้ สงสัยและจดบนั ทกึ
ปฎิบตั ิไปพร้อมกนั รับการประเมิน
3. ครบู อกวธิ กี าร และแนวคดิ ในการปฏิบัตทิ ี่
ถกู ต้องให้แกผ่ เู้ รียน
4. ประเมินพฤติกรรมรายบคุ คลโดยครจู ะซักถาม
ในแต่ละคน
285
ข้นั สรุป(สปั ดาหล์ ะ 30 นาท)ี ครูและนกั เรียนร่วมกันสรปุ สาระสำคัญ
ครแู ละนกั เรยี นร่วมกันสรปุ สาระสำคญั นักเรยี นสอบถามขอ้ สงสัย
เปิดโอกาสใหน้ ักเรียนซกั ถามข้อสงสัย ฟังและจดบันทึก
มอบหมายใหไ้ ปหัดทำและศกึ ษาเพม่ิ เติม ทำแบบทดสอบท้ายบท
ทำแบบทดสอบ
5. กิจกรรมการเรยี นรู้ (สัปดาหท์ .ี่ .....16-17.........)
6. สื่อและแหลง่ การเรยี นรู้
6.1 หนงั สอื เรยี น รหสั 20204-2108การเขียนโปรแกรมเชงิ วตั ถุเบ้อื งต้นของสำนกั พมิ พเ์ มืองไทย จำกดั
6.2 ใบความรู้
6.3 แบบฝกึ หดั
6.4 แบบฝึกปฏบิ ตั ิ
6.5 แบบทดสอบหลงั เรยี น
6.7 คอมพิวเตอร์
6.8 เครอ่ื งฉายโปรเจ็คเตอร์
7. หลักฐานการเรียนรู้
7.1 หลักฐานความรู้
ใบงาน แบบฝึกหัด การคน้ คว้าข้อมูล ทไ่ี ดร้ บั การเรียบเรียง สวยงาม เปน็ ระเบยี บ ถกู ตอ้ ง
7.2 หลกั ฐานการปฏิบัติงาน
ใบงาน แบบฝกึ หัด รูปเล่มรายงานการค้นคว้าข้อมูล ที่ได้รบั การเรียบเรยี ง สวยงาม เป็นระเบยี บ
ถูกต้อง พรอ้ มท้งั เอกสารประกอบการนำเสนองานหนา้ ชน้ั เรียนของผู้เรยี น และภาพประกอบ
8. การวดั และประเมนิ ผลการเรียนรู้
8.1 เครื่องมอื ประเมิน
1. ใบงาน
2. แบบฝึกหัด
3. แบบประเมนิ ผลงาน
4. แบบประเมนิ การนำเสนอผลงาน
8.2 เกณฑก์ ารประเมนิ
286
เครือ่ งมอื การประเมนิ วธิ ีวัดและประเมนิ เกณฑ์การประเมิน
แบบฝกึ หดั ไดค้ ะแนน
ตรวจแบบฝกึ หดั ร้อยละ 75 ขน้ึ ไป
แบบฝกึ ปฏบิ ตั ิ ข้อละ 1 คะแนน
ถกู 1 คะแนน ได้คะแนน
แบบทดสอบหลังเรียน ไม่ถกู 0 คะแนน ร้อยละ 75 ข้ึนไป
ตรวจแบบฝึกปฏิบัติ
แบบสงั เกตพฤติกรรมด้านคุณธรรม ขอ้ ละ 1 คะแนน ไดค้ ะแนน
จรยิ ธรรม คา่ นยิ ม และคณุ ลักษณะอนั พงึ ถูก 1 คะแนน รอ้ ยละ 75 ขนึ้ ไป
ประสงค์ ไม่ถูก 0 คะแนน
ตรวจแบบทดสอบหลงั เรยี น ได้คะแนน
ข้อละ 1 คะแนน ร้อยละ 80 ข้นึ ไป
ถกู 1 คะแนน
ไม่ถูก 0 คะแนน
สังเกตพฤติกรรม
ดี 2 คะแนน
พอใช้ 1 คะแนน
ปรบั ปรงุ 0 คะแนน
9. กิจกรรมเสนอแนะ/งานท่ีมอบหมาย (ถ้าม)ี
1. ผู้เรียนต้องใหค้ วามสนใจในการศกึ ษา เพื่อหาเทคนิค วิธกี าร หรือหลกั การงา่ ยเพื่อใหห้ าคำตอบได้
อย่างถูกต้อง และรวดเรว็ โดยการ ตงั้ ใจฟงั หลกั การ เทคนิควธิ ีการท่คี รูผู้สอนสรุปในขณะท่ที ำการสอน และ
นำข้อสงสยั ซักถามครใู นการเรียนทุกคร้ังทีเ่ กิดความสับสน และไมเ่ ขา้ ใจ
2. ผมู้ กี ารทบทวนบทเรยี น ตลอดเพอื่ เสรมิ สรา้ งความเขา้ ใจอย่างแท้จรงิ
3. ผเู้ รียนหมัน่ ทำใบงาน แบบฝกึ หดั และแก้ไขขอ้ ทผี่ ดิ ใหถ้ กู ต้องเสมอ
4. ผู้เรียนต้องสร้างมโนภาพให้เกิดความคิดรวบยอดในสาระการเรียนรู้และเทคนิควิธีการพร้อมกบั
ความจำเป็นในการนำไปประยุกตใ์ ชใ้ ห้เกิดข้ึนโดยตนเองให้ได้เพือ่ เกิดความรู้ความเข้าใจอย่างแท้จรงิ ไมใ่ ช่
เกดิ จากการทอ่ งจำ
10. เอกสารอ้างอิง
หนังสอื เรียน รหสั 20204-2108 การเขียนโปรแกรมเชงิ วัตถเุ บื้องตน้ ของสำนักพิมพเ์ มืองไทย จำกัด
287
ใบความรู้ท่ี 13 หนว่ ยท่ี 13
รหสั วชิ า 20204-2108 ชอื่ วชิ า การเขียนโปรแกรมเชงิ ภาคเรยี นท่ี 1
วัตถเุ บือ้ งตน้
ชือ่ หนว่ ย การสรา้ งกราฟกิ เวลารวม 8 ชว่ั โมง
ช่ือเรือ่ ง การสรา้ งกราฟิก เวลา 4 ชวั่ โมง
จุดประสงคก์ ารเรยี นรู้
จุดประสงคก์ ารเรียนรู้
จดุ ประสงคท์ ่ัวไป
1. เพอื่ มคี วามรูค้ วามเข้าใจการสร้างกราฟกิ
จดุ ประสงคเ์ ชงิ พฤตกิ รรม (ความรู้ ทักษะ คณุ ธรรม จรยิ ธรรม จรรยาบรรณวิชาชีพ)
1. อธบิ ายระบบพิกดั ด้านกราฟกิ ได้
2. อธบิ ายเมธอดในการสร้างกาฟิกได้
3. อธิบายออบเจคพนื้ ฐานทางกราฟกิ ได้
4. อธิบายและใชง้ านเมธอดวาดเส้นตรงได้
5. อธิบายและใชง้ านเมธอดวาดเสน้ โค้งได้
6. อธิบายและใช้งานเมธอดวาดรปู สเ่ี หลย่ี มได้
7. อธบิ ายและใช้งานเมธอดวาดรปู หลายเหลย่ี มได้
8. อธิบายและใช้งานเมธอดวาดวงกลมและวงรีได้
9. อธิบายและใช้งานเมธอดไลส่ ไี ด้
10. อธบิ ายและใชง้ านเมธอดวาดตัวอกั ษรได้
11.เขียนโปรแกรมแสดงผลกราฟกิ ด้วย GDi+ เบอ้ื งตน้ ได้
สมรรถนะรายหนว่ ย
แสดงความรเู้ กี่ยวกบั การเขยี นโปรแกรมเชิงวัตถเุ บอื้ งตน้ ดว้ ยการสร้างกราฟิก
หน่วยท่ี 13 การสร้างกราฟกิ
เกี่ยวกบั GDI+
GDI+ (Graphics Device Interface Plus) เป็นกราฟฟิกสไ์ ลบราร่ี ซง่ึ Microsoft จัดเตรียมไว้ใหน้ กั พัฒนา
โปรแกรมไดใ้ ช้ทำงานดา้ นกราฟฟกิ ส์ โดยท่ี GDI+ จะมลี ักษณะเปน็ OOP เตม็ ตวั
กอ่ นทีจ่ ะมี GDI+ ไมโครซอฟท์มไี ลบรารีช่ อ่ื GDI ซงึ่ อยูใ่ นไฟล์ gdi32.dll ติดตงั้ มาบน Windows ทกุ ตัว
จนกระทัง่ มาถึงยุค Windows XP ทางไมโครซอฟท์ก็ไดป้ รบั ปรงุ GDI ให้มคี วามสามารถมากขนึ้ โดยใหช้ ่อื
วา่ GDI+ และยงั คงใช้ตอ่ มาจนถงึ วนิ โดวสร์ นุ่ ปัจจุบัน
ความสามารถของ GDI+
ความสามารถของ GDI+ จะมอี ยู่ 3 ส่วนหลักๆ คือ
288
Vector graphics เปน็ การสร้างกราฟฟกิ ส์ 2 มติ ิ ด้วยรปู ทรงเรขาคณติ พน้ื ฐาน เชน่ เสน้ ตรง(Line) เส้นโคง้
(Curve) สเี่ หลีย่ ม(Rectangle) วงรี (Ellipse) เป็นต้น
Imaging นอกจากความสามารถในการวาดภาพด้วยรปู ทรงเรขาคณิตแล้ว GDI+ ยังมีความสามารถในดา้ น
การ แสดงผล, Load/Save ไฟล์ภาพชนิดต่างๆ ในรปู ของ bitmap (bitmap ในทนี่ ห้ี มายถึงไฟลภ์ าพทุก
ชนดิ ทแ่ี สดงเปน็ pixel และไม่สามารถอธบิ ายดว้ ยรปู ทรงเรขาคณติ อย่างง่ายๆ ได้ เชน่ ภาพถา่ ย ภาพ
สแกน เปน็ ต้น)
Typology เปน็ การจัดการเกย่ี วกบั ฟอนต์ ซ่ึงมีความสามารถในการแสดงผลแบบ anti aliasing ทำใหข้ อบ
ของตวั อักษรดูเรียบขนึ้ มากกว่าการเขียนโปรแกรมด้วย GDI
ระบบพิกดั ใน GDI+
ใน GDI+ จะมีระบบพกิ ัดท่ใี ช้งานอยเู่ ปน็ จำนวน 3 ระบบ คอื World coordinate, Page coordinate
และ Device coordinate
World coordinate จะทำงานกบั ระบบหน่วยท่ใี ช้ในชวี ติ ประจำวนั เช่น หนว่ ยมิลลเิ มตร หรอื หน่วยนว้ิ
เปน็ ต้น
Page coordinate จะทำงานกับระบบ coordinate บนหนา้ กระดาษ และจะสามารถพิมพอ์ อกทาง
เคร่ืองพมิ พ์ตามขนาดทกี่ ำหนดบน page coordinate
Device coordinate จะทำงานกับ pixel บนจอหรือบนเครื่องพิมพ์
GDI+ (Graphics Device Interface Plus) เปน็ กราฟฟิกสไ์ ลบรารี่ ซง่ึ Microsoft จัดเตรยี มไว้ให้นกั พฒั นา
โปรแกรมไดใ้ ชท้ ำงานดา้ นกราฟฟิกส์ โดยที่ GDI+ จะมลี ักษณะเปน็ OOP เต็มตวั
กอ่ นท่ีจะมี GDI+ ไมโครซอฟท์มีไลบราร่ชี อื่ GDI ซง่ึ อยูใ่ นไฟล์ gdi32.dll ติดตง้ั มาบน Windows ทกุ ตัว
จนกระท่งั มาถึงยคุ Windows XP ทางไมโครซอฟทก์ ็ไดป้ รบั ปรงุ GDI ใหม้ คี วามสามารถมากขนึ้ โดยใหช้ อื่
วา่ GDI+ และยงั คงใชต้ อ่ มาจนถงึ วินโดวส์ร่นุ ปัจจบุ นั
2.2. ความสามารถของ GDI+
ความสามารถของ GDI+ จะมอี ยู่ 3 สว่ นหลกั ๆ คอื
• Vector graphics เปน็ การสร้างกราฟฟกิ ส์ 2 มิติ ด้วยรปู ทรงเรขาคณติ พน้ื ฐาน เช่น เส้นตรง(Line)
เส้นโค้ง (Curve) สเ่ี หลยี่ ม(Rectangle) วงรี (Ellipse) เป็นตน้
• Imaging นอกจากความสามารถในการวาดภาพดว้ ยรูปทรงเรขาคณิตแลว้ GDI+ ยงั มีความสามารถ
ในดา้ นการ แสดงผล, Load/Save ไฟล์ภาพชนดิ ต่างๆ ในรปู ของ bitmap (bitmap ในทนี่ ้ี
หมายถึงไฟล์ภาพทกุ ชนดิ ที่แสดงเปน็ pixel และไม่สามารถอธบิ ายด้วยรปู ทรงเรขาคณติ อยา่ ง
ง่ายๆ ได้ เชน่ ภาพถา่ ย ภาพสแกน เปน็ ตน้ )
• Typology เปน็ การจัดการเกยี่ วกบั ฟอนต์ ซง่ึ มคี วามสามารถในการแสดงผลแบบ anti aliasing ทำ
ให้ขอบของตัวอกั ษรดูเรยี บขึ้นมากกวา่ การเขียนโปรแกรมดว้ ย GDI
289
2.3. ระบบพิกดั ใน GDI+
ใน GDI+ จะมรี ะบบพกิ ดั ท่ีใชง้ านอยเู่ ป็นจำนวน 3 ระบบ คอื World coordinate, Page coordinate
และ Device coordinate
• World coordinate จะทำงานกบั ระบบหน่วยทีใ่ ชใ้ นชีวติ ประจำวัน เช่น หน่วยมลิ ลเิ มตร หรอื
หนว่ ยนวิ้ เปน็ ต้น
• Page coordinate จะทำงานกบั ระบบ coordinate บนหนา้ กระดาษ และจะสามารถพิมพ์ออก
ทางเครอ่ื งพมิ พ์ตามขนาดที่กำหนดบน page coordinate
• Device coordinate จะทำงานกบั pixel บนจอหรอื บนเครอ่ื งพมิ พ์
3. การทดลอง
เริ่มตน้ กบั C# และ GDI+
1. เรยี กโปรแกรม Visual Studio
2. สร้าง Project ใหม่ เปน็ ชนิด C# โดยมีชอื่ project คือ GDIPlus_1
รปู ที่ 1 การสร้าง Project ชนิด Windows Form App (.NET Framework)
290
3. เมื่อ Wizard สร้าง Project เสรจ็ แล้ว จะนำเรามาทห่ี นา้ ตา่ ง Form1.cs[Design] ให้คลกิ ที่ปมุ่
Events ของ Properties pane ตาม (1) และ Double click ที่ Paint ตาม (2)
รูปท่ี 2 การเพิม่ event ใหก้ บั Paint
4. เพอ่ื ให้โปรแกรมของเราสามารถใชง้ าน GDI+ ในการวาดภาพ 2D ได้ ใหท้ ำการเพ่ิม “using
System.Drawing.Drawing2D;” ลงในบรรทดั ที่ 10 ดังรปู
291
รูปท่ี 3 การเพม่ิ using System.Drawing.Drawing2D;
5. ใหเ้ พ่ิมบรรทัดต่อไปนล้ี งในฟังก์ชัน private void Form1_Paint(object sender,
PaintEventArgs e)
5.1 สรา้ ง Object ของกราฟกิ ส์ โดยคำสงั่ Graphics g = e.Graphics; ซ่งึ Object ชอ่ื e ถกู ส่งผ่านมาทาง
argument ของฟงั กช์ ัน
5.2 เพม่ิ ออบเจกต์ของปากกา สีนำ้ เงนิ ขนาด 2 พกิ เซล ด้วยคำสง่ั Pen = new Pen(Color.Blue, 2);
5.3 วาดส่ีเหลี่ยมดว้ ยคำสั่ง g.DrawRectangle(bluepen, 10, 10, 100, 100);
5.4 คนื หนว่ ยความจำใหร้ ะบบโดยการลบออบเจ็กต์ปากกาสีน้ำเงิน โดยคำส่ัง bluepen.Dispose();
รูปที่ 4 ตัวอยา่ งการแกไ้ ขเมธอด Form1_Paint
292
6. ทดลอง Build และ Run โปรแกรมและบนั ทกึ ผล
บนั ทึกผลการทดลอง
3.1 การใช้สี
3.1.1 การใชส้ ีโดยการผสมค่าสี
7. เพมิ่ Code ตอ่ ไปนล้ี งในฟงั กช์ ัน private void Form1_Paint(object sender, PaintEventArgs
e)
รปู ท่ี 5 การใชส้ โี ดยการผสมคา่ สี
รนั โปรแกรมและบันทกึ ผล
บนั ทึกผลการทดลอง
3.1.2 การใชส้ ี โดยการใชเ้ มธอด FromName
เพม่ิ Code ต่อไปนลี้ งในฟงั กช์ ัน private void Form1_Paint(object sender, PaintEventArgs e)
รปู ที่ 6 การใช้สี โดยการใช้เมธอด FromName
293
รนั โปรแกรมและบนั ทกึ ผล
บนั ทกึ ผลการทดลอง
3.2 การใชป้ ากกา
3.2.1 ขนาดและสีของปากกา
การทดลองเปลย่ี นขนาดและสีของปากกา โดยใช้ properties Width และ Color
รปู ที่ 7 ขนาดและสขี องปากกา
รนั โปรแกรมและบนั ทกึ ผล
บันทกึ ผลการทดลอง
3.2.2 ชนดิ ของปากกาเปน็ เส้นประ
เปล่ยี นชนดิ ของปากกาเป็นเสน้ ประ
รปู ที่ 8 เปลีย่ นชนดิ ของปากกาเปน็ เสน้ ประ
รนั โปรแกรมและบนั ทกึ ผล
บนั ทกึ ผลการทดลอง
3.2.3 การใช้ปากกา (Pen) รว่ มกบั แปรงทาสี (Brush)
เขียนโปรแกรมใช้ปากการ่วมกับแปรงทาสี
294
รูปท่ี 9 การใช้ปากการ่วมกบั แปรงทาสี
รันโปรแกรมและบันทกึ ผล
บนั ทกึ ผลการทดลอง
3.2.4 ใช้ Pen รว่ มกบั HatchBrush เพอื่ สร้างลายเส้นแบบตา่ งๆ
ใช้ Pen ร่วมกับ HatchBrush เพอื่ สร้างลายเส้นแบบตา่ งๆ
รูปที่ 10 ใช้ Pen ร่วมกับ HatchBrush เพอ่ื สร้างลายเสน้ แบบตา่ งๆ
295
รันโปรแกรมและบนั ทกึ ผล
บันทกึ ผลการทดลอง
3.3 การวาดเสน้ ตรง
3.3.1 การวาดเสน้ ตรงเช่อื มตอ่ ระหว่างจุด จำนวน 2 จดุ
การวาดเสน้ ตรง เปน็ การเชอื่ มตอ่ ระหวา่ งจุด จำนวน 2 จุด โดยใช้ออบเจกต์ Pen เปน็ ตัวกำหนดลักษณะ
ของเสน้ ให้แก้ไข code ตอ่ ไปน้ใี นฟังก์ชัน private void Form1_Paint(object sender,
PaintEventArgs e)
รปู ที่ 11 การวาดเส้นตรงเช่ือมต่อระหวา่ งจุด จำนวน 2 จดุ
รันโปรแกรมและบันทกึ ผล
บนั ทกึ ผลการทดลอง
3.3.2 การวาดเส้นตรงดว้ ย pen style และ brush
การวาดเสน้ ตรงดว้ ย pen style และ brush
รูปท่ี 12 การวาดเส้นตรงดว้ ย pen style และ brush
รนั โปรแกรมและบนั ทกึ ผล
บนั ทกึ ผลการทดลอง
3.3.3 การกำหนดจุดปลายของเสน้ ตรงด้วย style แบบต่างๆ
การกำหนดจุดปลายของเส้นตรงด้วย style แบบตา่ งๆ