เอกสารประกอบการสอน วชิ าการเขยี นโปรแกรมคอมพิวเตอร (11-413-202) 181 13.3 การอา นขอ มูลจาก text file จากหัวขอที่ผานมาไดทำการสรางไฟลเรียบรอยแลว ในหัวขอนี้จะเปนการทดสอบการอา น ไฟลจ าก Test.txt โดยการใชคลาส BufferedReader สำหรับการอานไฟลท ี่ละบรรทดั และแสดงออก ทางจอภาพ ดงั รูปที่ 13.5 รูปท่ี 13.5 ตัวอยา งโปแกรมการอา นไฟล จากตวั อยางเปนวธิ กี ารอานไฟลอ ยางงา ย แตม กี ารใชค ลาสจากไลบราร่มี ากมายเพ่ือใชใ นการ อา นไฟล จากน้นั ประกาศออบเจ็คของคลาส Path ช่ือ file สำหรบั เกบ็ ท่อี ยขู องไฟล ประกาศออบเจ็ค reader เปนออบเจ็คของคลาส BufferedReader สำหรับใชอา นไฟลแลวเปดไฟลเพ่ืออานดวยคำส่ัง Files.newBufferedReader() โดยสงอากิวเมนตเปนอยูของไฟล และ charset เปนแบบ StandardCharsets.UTF_8 เพื่อใหโปรแกรมอานไดทุกภาษา จากนั้นตัวแปร line จะเก็บขอความ จากการอานไฟล Test.text ไวช่วั คราวทลี ะบรรทัด _________________________________________________________________________ เรยี บเรยี งโดย: อาจารยภรู วิ ัฒน เลศิ ไกร สาขาระบบสารสนเทศ คณะเทคโนโลยกี ารจดั การ
182 เอกสารประกอบการสอน วิชาการเขยี นโปรแกรมคอมพิวเตอร (11-413-202) ในคำสั่ง while จะเปนการอานไฟลโดยใชคำสั่ง reader.readLine() ซึ่งจะทำการอานไฟล ทีละบรรทัดมาเกบ็ ไวในตัวแปร line แลว แสดงขอ ความทีอ่ านไดท างจอภาพทีละบรรทัด จนกวาคาที่ สงกลับมาจะมคี า เปน null จงึ สนิ้ สุดการทำงานของคำสง่ั while เมื่อโปรแกรมอานไฟลเสร็จสิ้นแลวจะตองทำการปดไฟลที่กำลังใชงานเสมอดวยเมธอด close() เพื่อใหโปรแกรมอื่นสามารถใชงานไฟลนั้นได จากในตัวอยางจึงสามารถอานขอความจาก Test.txt ไดผ ลลพั ธ ดงั รปู ท่ี 13.6 รปู ท่ี 13.6 ผลลพั ธการรันโปรแกรมการอา นไฟล 13.4 การเขียนขอ มูลลง text file ในหัวขอนี้จะเปนการเขียนขอมูลลงไปบน text file สำหรับภาษา Java สามารถใชคลาส BufferWriter ในการเขียนขอ มูลลงไปในไฟลไ ด ดังรูปท่ี 13.7 _________________________________________________________________________ เรียบเรยี งโดย: อาจารยภ ูรวิ ัฒน เลิศไกร สาขาระบบสารสนเทศ คณะเทคโนโลยีการจดั การ
เอกสารประกอบการสอน วิชาการเขียนโปรแกรมคอมพวิ เตอร (11-413-202) 183 รูปท่ี 13.7 ตวั อยา งโปแกรมการเขยี นไฟล สำหรบั การเขยี นขอมูลลงไฟลจะเริม่ ตน ดว ยการนำเขา ไลบรารี่ทจ่ี ำเปน สำหรบั การเขียนไฟล และทำการอานที่อยูของไฟล (path) เก็บไวที่ออบเจ็ค file และสรางออบเจ็ค writer สำหรับเขยี น ไฟลโ ดยสงอากิวเมนต 2 ตวั คอื ทอี่ ยไู ฟล (path) และโหมดการเขยี นแบบ UTF-8 ในคำสั่ง for จะวนซ้ำเพื่อเขยี นขอความ “Hello” ตามดวยเลขจำนวนรอบ 10 ครั้ง ลงใน ไฟล Test.txt และปดไฟลด วยเมธอด close() เมอ่ื เขยี นขอมลู ลงไฟลเสรจ็ ส้นิ แลว จะไดผ ลลัพธขอมูล ที่อยูในไฟลตามรปู ท่ี 13.8 _________________________________________________________________________ เรียบเรยี งโดย: อาจารยภ ูริวฒั น เลิศไกร สาขาระบบสารสนเทศ คณะเทคโนโลยกี ารจดั การ
184 เอกสารประกอบการสอน วชิ าการเขียนโปรแกรมคอมพิวเตอร (11-413-202) รปู ท่ี 13.8 ผลลัพธการรันตวั อยา งโปรแกรมการเขยี นไฟล จะสังเกตเห็นวาขอมลู เดมิ หายไป เนือ่ งจากวิธีการนจ้ี ะเปนการเขยี นทับขอ มลู เดิมที่มีอยูหาก ตองการเขียนขอมูลลงไฟลตอจากขอมูลเดิมที่มีอยูแลว จะตองเพิ่มอากิวเมนตตัวท่ี 3 ที่คำสั่ง Files.newBufferedWriter(); ตวั อยา งโปรแกรม ดงั รปู ที่ 13.9 รปู ที่ 13.9 ตัวอยางการเขยี นไฟลต อจากขอมูลเดมิ _________________________________________________________________________ เรยี บเรยี งโดย: อาจารยภ ูรวิ ัฒน เลิศไกร สาขาระบบสารสนเทศ คณะเทคโนโลยีการจดั การ
เอกสารประกอบการสอน วชิ าการเขยี นโปรแกรมคอมพวิ เตอร (11-413-202) 185 ในตัวอยางมกี ารเปลย่ี นแปลงขอ ความท่ีเขยี นลงไฟลเ ปน “Java” ตามดวยเลขจำนวนรอบ ซ่งึ คำสั่งในการเขียนจะทำงานทง้ั หมด 5 คร้ัง จึงไดผลลพั ธ ดงั รูปที่ 13.20 รูปที่ 13.10 ผลลัพธการรนั โปรแกรมเขียนไฟลต อจากขอ มลู เดิม _________________________________________________________________________ เรยี บเรยี งโดย: อาจารยภรู วิ ฒั น เลศิ ไกร สาขาระบบสารสนเทศ คณะเทคโนโลยีการจดั การ
186 เอกสารประกอบการสอน วชิ าการเขียนโปรแกรมคอมพิวเตอร (11-413-202) แบบฝก หัดบทท่ี 13 1. จงเขียนโปรแกรมเพอ่ื สรา งไฟลช ่อื programming.txt ไวในโปรเจคโฟลเดอร จากนนั้ ทำการเปลย่ี น ชื่อไฟลเปน computer.txt และ อาน path ของไฟลโดยการใชเมธอดในคลาส File โดยใชคำสั่งใน คลาส File สกั เกตผลลพั ธและอภปิ รายผลการทำงานของโปรแกรม 2. จงเขียนโปรแกรมเพอ่ื เขยี นขอมลู ลงไฟลจากโจทยใ นขอ ที่ 1 โดยผใู ชกรอกขอมูลตวั เลขจำนวนเต็ม 2 จำนวน หาผลรวมเลขสองจำนวน และเขียนขอมูลทั้งหมดลงในไฟล เชน 5 + 5 = 10 ทำวนซ้ำ จำนวน 10 รอบ 5. เขียนขอ มลู ลงไฟลว า “Computer Programming with Java” ตอ จากขอมลู เดิม ในโจทยขอ ที่ 2 จากนั้นอานขอมูลทั้งหมดจากไฟลแสดงทางจอภาพ สักเกตขอผิดพลาดพรอมทั้งอภิปรายผลการ ทำงานของโปรแกรม _________________________________________________________________________ เรียบเรยี งโดย: อาจารยภรู ิวฒั น เลิศไกร สาขาระบบสารสนเทศ คณะเทคโนโลยีการจัดการ
เอกสารประกอบการสอน วิชาการเขียนโปรแกรมคอมพิวเตอร (11-413-202) 187 วธิ กี ารสอนและกิจกรรม 1. สอนแบบบรรยายโดยใชสอ่ื ประกอบการสอน 2. ใหน กั ศกึ ษามสี วนรว มในกจิ กรรมระหวา งการเรียนการสอนโดยใชว ธิ กี ารถาม-ตอบ 3. ปฏบิ ตั ิการเขยี นโปรแกรมการสรางไฟล อา นไฟล และเขยี นไฟล เอกสารประกอบ เอกสารประกอบการสอน บทท่ี 13 การจดั การไฟล สอื่ การสอน สอ่ื ประกอบการสอน ไฟลนำเสนอ power point บทที่ 13 การจดั การไฟล โสตทัศนวัสดุ เครื่องฉายโปรเจคเตอร งานทม่ี อบหมาย 1. ศึกษาการทำงานเก่ยี วกับไฟล การสรา งไฟล อา นไฟล และเขยี นไฟล 2. แบบฝก หัดการเขียนโปรแกรมเกย่ี วกบั การทำงานกบั ไฟลเ บอ้ื งตน การวัดผล 1. สังเกตพฤตกิ รรมการเรียนในหอ งเรยี น 2. สงั เกตพฤติกรรมการมสี วนรว มในกจิ กรรมระหวางการเรียนการสอนในการถาม-ตอบ 3. ตรวจงานทม่ี อบหมาย 4. ทดสอบตามจดุ ประสงคก ารสอน บันทกึ การสอนและขอ สงั เกต …………………………………………………………………………………………………………………………………………… …………………………………………………………………………………………………………………………………………… …………………………………………………………………………………………………………………………………………… …………………………………………………………………………………………………………………………………………… _________________________________________________________________________ เรยี บเรยี งโดย: อาจารยภรู วิ ฒั น เลศิ ไกร สาขาระบบสารสนเทศ คณะเทคโนโลยกี ารจดั การ
188 เอกสารประกอบการสอน วิชาการเขยี นโปรแกรมคอมพวิ เตอร (11-413-202) _________________________________________________________________________ เรยี บเรยี งโดย: อาจารยภรู วิ ฒั น เลิศไกร สาขาระบบสารสนเทศ คณะเทคโนโลยีการจัดการ
เอกสารประกอบการสอน วชิ าการเขียนโปรแกรมคอมพวิ เตอร (11-413-202) 189 สัปดาหท่ี 15-16 ใบเตรียมการสอน เวลา 4 ชว่ั โมง บทท่ี 14 ตัวอยา งโปรแกรมกรณศี กึ ษา 14.1 การแลกเปล่ียนเงนิ ตราตา งประเทศ 14.2 เอพไี อ (API) 14.3 การเพ่ิมไลบรารี่ Java 14.4 โปรแกรมแลกเปล่ยี นสกุลเงินตางประเทศ จดุ ประสงคก ารสอน 14.1 สามารถเพิ่มไลบราร่ี Java เพ่ือใชง านในการเขียนโปรแกรม 14.2 สามารเขยี นโปรแกรมเพอื่ เรียกใชขอมูลจากเซริ ฟเวอรท ่ใี หบ รกิ ารได 14.3 สามารถปรับปรงุ แกไขโปรแกรมใหม ปี ระสิทธิภาพการใชงาน _________________________________________________________________________ เรียบเรียงโดย: อาจารยภ รู ิวัฒน เลศิ ไกร สาขาระบบสารสนเทศ คณะเทคโนโลยกี ารจดั การ
190 เอกสารประกอบการสอน วิชาการเขียนโปรแกรมคอมพวิ เตอร (11-413-202) บทที่ 14 ตัวอยา งโปรแกรมกรณีศึกษา ในบทนี้จะเปน ตัวอยางการเขียนโปรแกรมกรณศี ึกษาอัตราการแลกเปล่ียนเงินตราระหวาง ประเทศ ซึ่งการแลกเปลี่ยนเงินตรานั้นเปนพื้นฐานในการทำธุรกิจสำหรับบริษัทที่มีการคาระหวาง ประเทศ อตั ราการแลกเปล่ยี นมกี ารผนั ผวนตลอดเวลา ในตวั อยา งโปรแกรมน้ีจะเปนโปรแกรมท่ีผูใช สามารถเลือกเงินตราชนิดหนึ่งเปลี่ยนเปนเงินชนิดหนึ่งโดยใช Application program interface (API) ทท่ี ำใหโปรแกรมมกี ารปรบั เปลยี่ นอัตราแลกเปล่ยี นตามตลาดโดยมีทฤษฎีท่เี กยี่ วขอ งดงั ตอ ไปน้ี 14.1 การแลกเปลย่ี นเงนิ ตราตางประเทศ การแลกเปลี่ยนเงินตราตางประเทศ คือ เชน อัตราแลกเปลี่ยนระหวางเงินบาทกับเงิน ดอลลารสงิ คโปรของประเทศสิงคโ ปร คือ 23 บาทตอ 1 ดอลลารสงิ คโ ปร เปนตน บริษทั สว นใหญจ ะ ประสบกับความผันผวนของอัตราแลกเปลี่ยนในแตละวัน ความผันผวนนั้นจะสงผลทั้งทางตรงและ ทางออมตอกระแสเงินสด รายได คาใชจาย และงบการเงินโดยรวมของบริษัทที่ทำการคาระหวาง ประเทศ ประเทศไทยไดเปลี่ยนมาใชระบบอัตราแลกเปลี่ยนลอยตัวแบบมีการจัดการ (Managed Float) ต้ังแตว ันที่ 2 กรกฎาคม 2540 เปนตนมา โดยธนาคารแหงประเทศไทย (ธปท.) มแี นวทางการ บรหิ ารจดั การอัตราแลกเปลย่ี นเพอื่ ดแู ลเสถยี รภาพ โดยไมไดก ำหนดเปา หมายวาอตั ราแลกเปล่ียนควร จะอยู ณ คาใดคา หนึ่งโดยเฉพาะ แตจ ะคอยตดิ ตามและดูแลใหอตั ราแลกเปล่ียนเคลอ่ื นไหวสอดคลอง กับพืน้ ฐานทางเศรษฐกิจ และไมผนั ผวนมากเกินไป จนเปน อปุ สรรคตอ การปรับตวั ของภาคเศรษฐกิจ และกอ ใหเกิดผลกระทบดานลบทีร่ นุ แรงตอระบบเศรษฐกจิ การเงนิ ตัวอยา งเชน อัตราการแลกเปล่ยี น เงนิ ระหวางประเทศในวนั ท่ี 25 มถิ นุ ายน 2562 ดงั รปู ที่ 14.1 _________________________________________________________________________ เรยี บเรยี งโดย: อาจารยภ ูริวฒั น เลศิ ไกร สาขาระบบสารสนเทศ คณะเทคโนโลยกี ารจดั การ
เอกสารประกอบการสอน วิชาการเขยี นโปรแกรมคอมพิวเตอร (11-413-202) 191 รปู ท่ี 14.1 อตั ราการแลกเปลี่ยนเงินตราตางประเทศวันท่ี 25 มถิ ุนายน 2562 แหลง ท่ีมา: www.bot.or.th/Thai/FinancialMarkets/_layouts/Application/ExchangeRate/ExchangeRate.aspx 14.2 เอพไี อ (API) Application program interface หรือที่เรียกสั้น ๆ API คือ ชองทางการเชื่อมตอระหวาง เว็บไซตหน่งึ ไปยังอกี เว็บไซตห น่ึง หรอื เปน การเชอ่ื มตอ ระหวา งผูใชง านกับ Server หรือจาก Server เชอ่ื มตอ ไปหา Server ซงึ่ API นเ้ี ปรียบไดเปนภาษาคอมพิวเตอรท ที่ ำใหค อมพวิ เตอรสามารถสื่อสาร และแลกเปลย่ี นขอมูลกนั ไดอยางอสิ ระ โดยทำหนา ทชี่ ว ยในการเขาถงึ ขอมลู ตาง ๆ หรือจะเปนการนำ ขอมูลตา ง ๆ ออกจากเว็บไซต หรือจะเปนการสงขอมลู ไปยังเว็บไซต โดยเจา ของเวบ็ ไซตที่มี API จะ กำหนดวิธกี ารเขาถึงบริการตาง ๆ ของทางเวบ็ ไซต API ประกอบไปดว ย 2 สวนหลัก ๆ คอื ขอกำหนดที่จะอธิบายการแลกเปลี่ยนขอมูลระหวางโปรแกรม ซึ่งทำออกมาใน ลกั ษณะเอกสาร (document) เพ่อื บอกวา request/response ตองเปนอยา งไร _________________________________________________________________________ เรยี บเรียงโดย: อาจารยภูริวัฒน เลิศไกร สาขาระบบสารสนเทศ คณะเทคโนโลยกี ารจดั การ
192 เอกสารประกอบการสอน วิชาการเขยี นโปรแกรมคอมพวิ เตอร (11-413-202) ซอฟตแ วรท ี่เขียนขึน้ ตามขอ กำหนด และทำการเผยแพรอ อกไปใหใชงาน ตัวอยางโปรแกรมในบทนี้จะใช API จาก ExchangeRate-API ซึ่งเปนเว็บเซิรฟเวอรสำหรับ ใหบริการอัตราการแลกเปลี่ยนเงินตราตางประเทศ โดยการสงคำขอเปนเงินตราสกุลหน่ึง เว็บเซิรฟเวอรจะสงขอมูลอัตราแลกเปลี่ยนสกุลเงนิ ตาง ๆ มาให โดยที่ผูใชหรือผูเ ขียนโปรแกรมไม จำเปน ตองสมคั รสมาชิกหรือสรางบัญชีผูใช (account) ขึ้นมาเพ่ือขอใชงาน และมีตัวอยางการเขยี น คำสงั่ การใชง าน API ดวยภาษาตา ง ๆ ดังรูปที่ 14.2 รูปท่ี 14.2 ExchangeRate-API แหลง ทมี่ า: https://www.exchangerate-api.com/docs/java-currency-api สำหรบั การทดลองใช API นก้ี ็สามารถทำไดโ ดยการใชโ ปรแกรมบราวเซอรแ ละเขา ไปยงั เวบ็ ไซต https://api.exchangerate-api.com/v4/latest/THB จะไดผลลพั ธ ดังรปู ท่ี 14.3 รูปที่ 14.3 ตัวอยางการใช API _________________________________________________________________________ เรียบเรยี งโดย: อาจารยภ รู ิวฒั น เลิศไกร สาขาระบบสารสนเทศ คณะเทคโนโลยกี ารจดั การ
เอกสารประกอบการสอน วิชาการเขียนโปรแกรมคอมพิวเตอร (11-413-202) 193 จากรูปเปนอัตราแลกเปลี่ยนเงินตราที่สงกลับมาจากเว็บเซิรฟเวอร โดยแสดงอัตรา แลกเปลีย่ นสกุลเงินบาทไทย (THB) 1 บาท กบั เงินตราสกลุ อนื่ ๆ พรอ มท้งั แสดงขอ มูล ดงั น้ี base คือ สกลุ เงนิ ทสี่ งคำขอไปยังเว็บเซิรฟ เวอร date คือ วนั ทเี่ ขาใชบ ริการเว็บเซิรฟ เวอร time_last_updated คือ ครง้ั ทป่ี รับปรงุ ขอมลู rate คือ อตั ราแลกเปลีย่ นสกุลเงนิ 1 หนวย ตอ สกลุ เงินอ่นื ๆ ขอมูลท่ีเว็บเซิรฟเวอรสงกลับมาใหนั้นจะอยูในรูปแบบของ JSON (JavaScript Object Notation) ซึ่งเปนวิธีการที่ทำให JavaScript แลกเปลี่ยนขอมูลกับเว็บเซิรฟเวอร ไดอยางสะดวก JSON ถูกสรางขึ้นจากชุดขอมูลของ literal object notation ใน JavaScript ซึ่ง JSON จะใช [ ] แทนอาเรยและใช { } แทนแฮช ( hash หรือ associate array ) แตละสมาชิกคั่นดวย comma (,) และแตล ะ ชื่อสมาชกิ คั่นดวย colon (:) รปู แบบของ JSON ทีเ่ วบ็ เซิรฟเวอรส ง มาใหนัน้ อา นไดย าก สำหรับแอพพลิเคช่ัน Chrome จะ มีสว นขยาย (extension) ที่ทำใหส ามารถอา นรูปแบบของ JSON ไดง ายขึน้ โดยการติดต้งั สว นขยายชอ่ื JSON Formatter ตามรูปที่ 14.4 สามารถตดิ ตง้ั ไดจาก https://chrome.google.com/webstore/detail/json- formatter/bcjindcccaagfpapjjmafapmmgkkhgoa รปู ท่ี 14.4 สวนขยาย JSON Formatter _________________________________________________________________________ เรยี บเรียงโดย: อาจารยภูรวิ ัฒน เลิศไกร สาขาระบบสารสนเทศ คณะเทคโนโลยกี ารจดั การ
194 เอกสารประกอบการสอน วชิ าการเขียนโปรแกรมคอมพวิ เตอร (11-413-202) เมื่อติดตั้งเสร็จเรียบรอยแลวใหทำการรีเฟรชหนาเว็บไซตใหม จะแสดงรูปแบบ JSON ท่ี สามารถอานไดง า ยขึน้ ดงั รปู ที่ 14.5 รปู ที่ 14.5 ผลการใช JSON Formatter 14.3 การเพ่ิมไลบรารี่ Java เพือ่ ใชงาน Java เปนการเขียนโปรแกรมที่มีลักษณะเปนคลาสและออบเจ็ค ในหัวขอที่ผานมาเว็บ เซริ ฟเวอรสงขอมูลกลบั มาใหอ ยูในรูปแบบ JSON การจะใชง าน JSON ในภาษา Java น้นั จะตองเอา ขอ มูลที่ไดมาใสใ นออบเจ็คตามรูปแบบของภาษา Java ซง่ึ ในตวั อยางนจี้ ะเปน การใชไลบรารี่อืน่ ทไี่ มได อยูใน JDK ของ Java คือ org-json-java.jar เปน jar ไฟลท ่ผี ูเ ขียนโปรแกรมสามารถดาวนโหลดและ ตดิ ต้งั เพ่มิ เตมิ ได ดงั ตอ ไปน้ี https://code.google.com/archive/p/org-json-java/downloads _________________________________________________________________________ เรยี บเรียงโดย: อาจารยภ รู วิ ฒั น เลศิ ไกร สาขาระบบสารสนเทศ คณะเทคโนโลยีการจดั การ
เอกสารประกอบการสอน วิชาการเขยี นโปรแกรมคอมพวิ เตอร (11-413-202) 195 รปู ท่ี 14.6 ไลบราร่ี org-json-java แหลงท่มี า: https://code.google.com/archive/p/org-json-java/downloads เมอ่ื ดาวนโ หลดเสรจ็ เรียบรอ ยแลว ขั้นตอนตอไปจะเปนการสรางโปรเจคใหมส ำหรบั การเขยี น โปแกรมอตั ราแลกเปลี่ยนเงินตราตางประเทศและเพิม่ ไลบราร่ี org-json-java สำหรับใชใ นการเขียน โปรแกรม ดงั รปู ที่ 14.7 – 14.14 รปู ที่ 14.7 สรางโปรเจคชอ่ื CaseStudy_CurrencyExchange _________________________________________________________________________ เรียบเรยี งโดย: อาจารยภูรวิ ัฒน เลศิ ไกร สาขาระบบสารสนเทศ คณะเทคโนโลยกี ารจัดการ
196 เอกสารประกอบการสอน วิชาการเขียนโปรแกรมคอมพิวเตอร (11-413-202) รูปท่ี 14.8 โครงสรา งโปรเจค CaseStudy_CurrencyExchange การเพม่ิ ไลบราร่ีโดยคลกิ ทเ่ี มนู File จากน้ันเลอื ก Project Structure รูปที่ 14.9 การเพิ่มไลบรารใ่ี นโปรแกรม IntelliJ IDEA (1) _________________________________________________________________________ เรยี บเรียงโดย: อาจารยภูริวัฒน เลิศไกร สาขาระบบสารสนเทศ คณะเทคโนโลยกี ารจดั การ
เอกสารประกอบการสอน วชิ าการเขียนโปรแกรมคอมพิวเตอร (11-413-202) 197 รูปที่ 14.10 การเพิ่มไลบรารใี่ นโปรแกรม IntelliJ IDEA (2) เลอื กเมนู Libraries คลกิ เคร่ืองหมาย (+) จากน้นั เลอื ก Java รปู ที่ 14.11 การเพิ่มไลบรารใี่ นโปรแกรม IntelliJ IDEA (3) เลอื กไลบราร่ี org.json-20120521.jar ที่ดาวนโ หลดไวจ ากขนั้ ตอนที่ผานมา และคลิกปุม OK _________________________________________________________________________ เรียบเรยี งโดย: อาจารยภ ูริวฒั น เลศิ ไกร สาขาระบบสารสนเทศ คณะเทคโนโลยีการจดั การ
198 เอกสารประกอบการสอน วชิ าการเขียนโปรแกรมคอมพิวเตอร (11-413-202) รูปท่ี 14.12 การเพม่ิ ไลบรารใ่ี นโปรแกรม IntelliJ IDEA (4) เลือกโมดูลทต่ี อ งการเพ่มิ ไลบราร่ีในที่นี้ คอื โปรเจค CaseStudy_CurrenctExChange รูปท่ี 14.13 การเพิ่มไลบรารใ่ี นโปรแกรม IntelliJ IDEA (5) คลิกปมุ OK เพ่อื ยืนยนั การเพมิ่ ไลบรารี่ในโปรเจค _________________________________________________________________________ เรียบเรยี งโดย: อาจารยภ ูริวัฒน เลศิ ไกร สาขาระบบสารสนเทศ คณะเทคโนโลยีการจัดการ
เอกสารประกอบการสอน วิชาการเขยี นโปรแกรมคอมพวิ เตอร (11-413-202) 199 รูปที่ 14.14 การเพ่มิ ไลบรารใี่ นโปรแกรม IntelliJ IDEA (6) จากรูป 14.14 จะแสดงใหเห็นวาไลบรารี่ org-json-java ถูกเพิ่มเขามายังโปรเจค CaseStudy_CurrencyExchange เรียบรอยแลว ในหัวขอตอไปจะเปนตัวอยางโปรแกรมที่เรียกใช API จากเวบ็ เซิรฟเวอรเ พื่อแสดงอตั ราแลกเปลีย่ นเงินตราตา งประเทศ 14.4 โปรแกรมแลกเปลย่ี นสกุลเงนิ ตางประเทศ โปรแกรมแลกเปลี่ยนสกุลเงินตางประเทศ จะประกอบไปดวย 2 คลาส คือ ExchangeAPI และ CurrencyExchange ตามคลาสไดอะแกรมตอไปน้ี รปู ที่ 14.15 คลาสไดอะแกรมโปแกรมแลกเปลยี่ นสกลุ เงินตางประเทศ _________________________________________________________________________ เรยี บเรียงโดย: อาจารยภรู ิวัฒน เลิศไกร สาขาระบบสารสนเทศ คณะเทคโนโลยีการจดั การ
200 เอกสารประกอบการสอน วิชาการเขียนโปรแกรมคอมพวิ เตอร (11-413-202) คลาส ExchangeAPI ใชสำหรับติดตอกบั เซิรฟ เวอร แลวนำขอมูลท่ไี ดจ ากเซริ ฟเวอรมาเก็บไว ในออบเจ็คของคลาส สวน CurrenyExchange เปนคลาสที่ทำหนาที่ติดตอสื่อสารกับผูใช โดยมี System Flowchart ดังรปู ที่ 14.14 รูปที่ 14.16 System Flowchart โปแกรมแลกเปลีย่ นสกุลเงินตางประเทศ โปรแกรมจะรับสกุลเงินปจจุบันจากผูใช เชน THB หากไมพบสกุลเงินที่ผูใชกรอกขอมูล โปรแกรมจะแจงขอผดิ พลาดใหผ ใู ชท ราบ จากนัน้ จะรับจำนวนเงนิ ทต่ี องการแลกเปลีย่ น และรับสกุล เงินใหมเชน USD หากโปรแกรมตรวจสอบแลว วามีสกุลเงินที่ผใู ชต อ งการจะทำการคำนวณอัตราสกุล เงนิ ใหมและแสดงทางจอภาพใหผใู ชท ราบ ดงั รูปที่ 14.17 _________________________________________________________________________ เรียบเรยี งโดย: อาจารยภูรวิ ฒั น เลิศไกร สาขาระบบสารสนเทศ คณะเทคโนโลยีการจัดการ
เอกสารประกอบการสอน วิชาการเขียนโปรแกรมคอมพวิ เตอร (11-413-202) 201 _________________________________________________________________________ เรยี บเรยี งโดย: อาจารยภูรวิ ัฒน เลศิ ไกร สาขาระบบสารสนเทศ คณะเทคโนโลยีการจัดการ
202 เอกสารประกอบการสอน วชิ าการเขียนโปรแกรมคอมพิวเตอร (11-413-202) รูปที่ 14.17 คลาส ExchangeAPI จากตวั อยางโปรแกรมในคลาส ExchangeAPI ทำการประกาศ attribute ของคลาสคอื base date lastUpdate และ eachRate ใชสำหรับเก็บขอมูลของออบเจ็คที่ถูกสรางขึ้นมาจากคลาส ExchangeAPI ในคลาสน้ีมกี ารเรียกใชไ ลบรารมี่ ากมายท่จี ำเปน ตองใชสำหรบั การตดิ ตอกบั เซริ ฟ เวอร เชน URL HttpUrlConnection และ MalformedURLException จากนั้นหากสามารถเชื่อมตอ เซิรฟเวอรไดจะทำการอานขอมูลที่เซิรฟ เวอรสงกลับมาใหโดยการใชคลาส BufferReader และนำ ขอมูลนนั้ มากำหนดใหกับ attribute ของคลาสโดยการใชงาน JSONObject คลาสตามท่ไี ดเพมิ่ ไลบรา ร่ีไวใ นข้ันตอนทผี่ า นมา _________________________________________________________________________ เรียบเรียงโดย: อาจารยภ ูริวฒั น เลิศไกร สาขาระบบสารสนเทศ คณะเทคโนโลยีการจัดการ
เอกสารประกอบการสอน วิชาการเขียนโปรแกรมคอมพวิ เตอร (11-413-202) 203 เมธอด getConnection(); ใชสำหรับเชื่อมตอกับเซิรฟเวอร เมธอด getBase(); สำหรับ เรียกดูขอมูลสกุลเงินหลกั ที่สงคำรองขอไปยังเซิรฟเวอร เมธอด getDate(); สำหรับเรียกดูวันที่ของ อัตราแลกเปลี่ยนกุลเงิน เมธอด getLastUpdate(); สำหรับเรียกดูครั้งที่ปรับปรุงขอมูล และเมธอด getEachRate(); ใชสำหรบั เรียกดูอตั ราแลกเปล่ียนสกุลเงินตามที่ผูใ ชงานเปน ผูกำหนด ดงั รูปท่ี 14.18 รูปท่ี 14.18 คลาส CurrencyExchange สำหรับคลาส CurrencyExchange เปนคลาสที่ติดตอกับผูใช มีการประกาศออบเจ็คของ คลาส ExchangeAPI และคลาส Scanner โดยรับคาสกุลเงินเก็บไวในตัวแปร currentCurrency จากน้นั เรียกใชเมธอด getConnection(); หาก expression เปน false จะแสดงขอความเพ่ือแจงให ผูใชทราบวาเซิรฟเวอรไมรองรบั สกุลเงินที่ระบุ ถา expression เปน true จะทำงานตอโดยการรบั จำนวนเงินที่ผูใชตองการแลกเปลี่ยนไวในตัวแปร amount และรับสกุลเงินใหมไวในตัวแปร _________________________________________________________________________ เรียบเรยี งโดย: อาจารยภรู วิ ฒั น เลิศไกร สาขาระบบสารสนเทศ คณะเทคโนโลยกี ารจดั การ
204 เอกสารประกอบการสอน วชิ าการเขียนโปรแกรมคอมพวิ เตอร (11-413-202) newCurrency จากนัน้ หากโปรแกรมสามารถรบั ขอมลู จากเซิฟรเ วอรไ ด จะทำการคำนวณแปลงสกุล เงินดวยอัตราแลกเปลีย่ นโดยเรียกใชเมธอด getEachRate(); เมื่อทำการรันโปรแกรมโดยผูใชกรอก ขอมลู สกุลเงนิ ปจ จบุ ันเปน THB จำวนวเงนิ 10,000 บาท สกุลเงินใหมเปน USD จะไดผลลพั ธ ดงั รูปท่ี 14.17 รปู ที่ 14.19 ผลลัพธการรนั โปรแกรมแลกเปลี่ยนสกุลเงินตา งประเทศ จากตัวอยางเปน การใชงาน API เบื้องตนดวยภาษา Java โดยมีการใชค ำสั่งหลากหลาย เชน if-else try-catch การสรางคลาสและออบเจ็ค เปน ตน ซงึ่ จะสามารถเปน พ้ืนฐานใหผ เู ขยี นโปรแกรม สามารถศึกษาและเรยี นรพู ฒั นาตอยอดในการเขยี นโปรแกรมในภาษาอ่นื ๆ ได ภาษาคอมพวิ เตอรน้ัน มกี ารพัฒนาอยูตลอดเวลา มเี ครือ่ งมือใหม และเกิดภาษาใหม ๆ ขึน้ ตามเทคโนโลยที เ่ี ปลยี่ นไป ดังนั้น ผเู ขียนโปรแกรมจะตอ งพฒั นาตนเองอยตู ลอดเวลาเพือ่ ใหท นั กับเทคโนโลยีทเี่ ปลยี่ นแปลงอยางรวดเรว็ รูจักประยุกตใชเครื่องมือ คำสั่งตาง ๆ ในการเขียนโปรแกรมเพื่อใหโปรแกรมที่พัฒนานั้นมี ประสทิ ธิภาพและใชงานไดต ามความตองการของผใู ชงาน _________________________________________________________________________ เรียบเรยี งโดย: อาจารยภูริวัฒน เลิศไกร สาขาระบบสารสนเทศ คณะเทคโนโลยีการจดั การ
เอกสารประกอบการสอน วิชาการเขยี นโปรแกรมคอมพิวเตอร (11-413-202) 205 แบบฝกหัดบทที่ 14 จากตัวอยางโปรแกรมขางตนนั้นยังไมสมบูรณ เนื่องจากในกรณีที่ผูใชกรอกสกุลเงินที่ เซิรฟเวอรไมรองรับโปรแกรมจะหยุดทำงาน และโปรแกรมจะทำงานไดเพียงหนึ่งครั้งเทานั้น หาก ตองการใชง านอีกจะตอ งรนั โปรแกรมใหมเ สมอ จากเหตผุ ลดงั กลาว จึงแกไ ขโปรแกรมแลกเปลยี่ นสกลุ เงนิ ตางประเทศใหมีความสมบรู ณย ่ิงขึ้น ดงั น้ี 1. ในกรณที ี่ผูใ ชก รอกสกุลเงนิ ที่เซิรฟเวอรไมรองรบั โปรแกรมจะตองแจงใหผูใชท ราบเพือ่ กรอกขอมลู ใหม 2. ปรบั ปรงุ โปรแกรมใหเ ปน ลักษณะเลอื กฟง กชัน โดยใหผ ใู ชเ ลอื กฟงกชันทจ่ี ะใชงานโปรแกรม เชน #### Exchange Currency System #### 1. Exchange. 2. See all currency rate. 3. Exit _________________________________________________________________________ เรียบเรียงโดย: อาจารยภ ูรวิ ัฒน เลศิ ไกร สาขาระบบสารสนเทศ คณะเทคโนโลยีการจัดการ
206 เอกสารประกอบการสอน วชิ าการเขียนโปรแกรมคอมพิวเตอร (11-413-202) วิธกี ารสอนและกจิ กรรม 1. สอนแบบบรรยายโดยใชส่ือประกอบการสอน 2. ใหน ักศกึ ษามสี ว นรว มในกจิ กรรมระหวางการเรยี นการสอนโดยใชว ธิ กี ารถาม-ตอบ 3. ปฏบิ ัตกิ ารเขียนโปรแกรมเพ่ือปรบั ปรุงตวั อยางโปรแกรมกรณศี กึ ษา เอกสารประกอบ เอกสารประกอบการสอน บทที่ 14 กรณศี กึ ษา Currency Exchange System ส่อื การสอน สอื่ ประกอบการสอน ไฟลนำเสนอ power point บทที่ 14 ตวั อยางโปรแกรม กรณศี ึกษา โสตทศั นวสั ดุ เครอื่ งฉายโปรเจคเตอร งานที่มอบหมาย 1. ศึกษาตวั อยางโปรแกรมกรณีศึกษา การใช API และ JSON 2. แบบฝก หดั แกไ ขปรับปรงุ ตัวอยางโปรแกรมกรณศี ึกษา การวดั ผล 1. สงั เกตพฤตกิ รรมการเรียนในหอ งเรยี น 2. สังเกตพฤติกรรมการมสี ว นรว มในกจิ กรรมระหวางการเรยี นการสอนในการถาม-ตอบ 3. ตรวจงานทมี่ อบหมาย 4. ทดสอบตามจุดประสงคก ารสอน บนั ทึกการสอนและขอ สงั เกต …………………………………………………………………………………………………………………………………………… …………………………………………………………………………………………………………………………………………… …………………………………………………………………………………………………………………………………………… …………………………………………………………………………………………………………………………………………… _________________________________________________________________________ เรียบเรียงโดย: อาจารยภูริวฒั น เลศิ ไกร สาขาระบบสารสนเทศ คณะเทคโนโลยกี ารจดั การ
เอกสารประกอบการสอน วชิ าการเขียนโปรแกรมคอมพิวเตอร (11-413-202) 207 บรรณานุกรม ธรี วฒั น ประกอบผล. (2017). เขยี นโปรแกรมเชิงวัตถุภาษา Java ฉบับสมบรู ณ. กรุงเทพฯ: ซิมพลฟิ าย, สนพ. บัญชา ปะสีละเตสงั . (2018). การเขียนโปรแกรมดวย Java สำหรบั ผเู ร่ิมตน. กรงุ เทพฯ: ซีเอ็ดยเู คชัน่ , บมจ. บุรนิ ทร, ร., & ขวญั ชนก, ร. (2560, October 5). ผังงาน (Flowchart Diagram). Retrieved May 9, 2561, from ThaiAll.com: http://www.thaiall.com/flowchart/indexo.html สุดา เธยี รมนตรี. (2557). คมู อื เรียนเขียนโปรแกรมภาษา Java ฉบับสมบรู ณ (2nd Edition) +CD. กรุงเทพฯ: Infopress Group. อรพิน ประวตั บิ รสิ ุทธ.์ิ (2561). คูมือเขียนโปรแกรมดว ยภาษา JAVA ฉบับสมบูรณ. กรุงเทพฯ: Provision. Box Single. (2556, กนั ยายน 12). ทำความรูจ กั กบั JSON คอื อะไร. Retrieved Faburay 20, 2562, from Box Single: http://www.boxsingle.com/?page=Blog.ShowBlogDetail&blogID=13 Mindphp. (2560, มีนาคม 14). Java คืออะไร จาวา คือภาษาคอมพิวเตอร สำหรบั เขียนโปรแกรมเชิงวัตถุ. Retrieved พฤษภาคม 10, 2561, from mindphp.com: https://www.mindphp.com/คูมือ/73-คอื อะไร/2185-java-คืออะไร.html Techtalkthai. (2561, สิงหาคม 8). IEEE เผย 10 ภาษา Programming ยอดนยิ มประจำป 2018. Retrieved พฤษภาคม 5, 2561, from techtalkthai: https://www.techtalkthai.com/ieee-reveals-top-10- popular-programming-languages-2018/ ExchangeRate-API. (2018, June 9). How To Use Our Java Exchange Rates API. Retrieved from Exchange Rate API ExchangeRate-API: https://www.exchangerate-api.com/docs/java- currency-api FreeCodeCamp. (2018, January 16). Here are the best programming languages to learn in 2018. (FreeCodeCamp, Editor) Retrieved May 2018, 5, from FreeCodeCamp: https://www.freecodecamp.org/news/best-programming-languages-to-learn-in-2018- ultimate-guide-bfc93e615b35/ Javatpoint. (n.d.). Java Tutorial. Retrieved April 10, 2018, from Javatpoint.com: https://www.javatpoint.com/java-tutorial Learnjavaonline. (n.d.). Learn java online. Retrieved April 22, 2018, from LearnJava: https://www.learnjavaonline.org/ Oracle. (n.d.). Java™ Platform, Standard Edition 8. Retrieved May 8, 2018, from Java™ Platform, Standard Edition 8: https://docs.oracle.com/javase/8/docs/api/index.html _________________________________________________________________________ เรยี บเรียงโดย: อาจารยภ ูริวัฒน เลศิ ไกร สาขาระบบสารสนเทศ คณะเทคโนโลยกี ารจดั การ
208 เอกสารประกอบการสอน วิชาการเขยี นโปรแกรมคอมพิวเตอร (11-413-202) บรรณานุกรม Oracle. (n.d.). The Java™ Tutorials. Retrieved April 10, 2018, from Oracle Java Documentation: https://docs.oracle.com/javase/tutorial/java/ Peter, A. (n.d.). Java 101 - File I/O. Retrieved May 12, 2018, from Amondora: https://arnondora.in.th/java-101-file-io Rishabh, P. (n.d.). Java Programming Basics. Retrieved May 2018, 9, from GeeksforGeeks: https://www.geeksforgeeks.org/java-programming-basics/ Thaicreate. (2017, March 27). Java and JSON (Create/Parser). Retrieved มิถุนายน 9, 2018, from thaicreate: https://www.thaicreate.com/java/java-json-create.html Tutorialspoint. (n.d.). Java Tutorials. Retrieved April 24, 2018, from tutorialspoint.com: https://www.tutorialspoint.com/java/ W3Schools. (n.d.). Java Tutorial. Retrieved April 23, 2018, from W3Schools.com: https://www.w3schools.com/java/default.asp _________________________________________________________________________ เรยี บเรียงโดย: อาจารยภ ูริวฒั น เลศิ ไกร สาขาระบบสารสนเทศ คณะเทคโนโลยีการจัดการ
Search
Read the Text Version
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
- 36
- 37
- 38
- 39
- 40
- 41
- 42
- 43
- 44
- 45
- 46
- 47
- 48
- 49
- 50
- 51
- 52
- 53
- 54
- 55
- 56
- 57
- 58
- 59
- 60
- 61
- 62
- 63
- 64
- 65
- 66
- 67
- 68
- 69
- 70
- 71
- 72
- 73
- 74
- 75
- 76
- 77
- 78
- 79
- 80
- 81
- 82
- 83
- 84
- 85
- 86
- 87
- 88
- 89
- 90
- 91
- 92
- 93
- 94
- 95
- 96
- 97
- 98
- 99
- 100
- 101
- 102
- 103
- 104
- 105
- 106
- 107
- 108
- 109
- 110
- 111
- 112
- 113
- 114
- 115
- 116
- 117
- 118
- 119
- 120
- 121
- 122
- 123
- 124
- 125
- 126
- 127
- 128
- 129
- 130
- 131
- 132
- 133
- 134
- 135
- 136
- 137
- 138
- 139
- 140
- 141
- 142
- 143
- 144
- 145
- 146
- 147
- 148
- 149
- 150
- 151
- 152
- 153
- 154
- 155
- 156
- 157
- 158
- 159
- 160
- 161
- 162
- 163
- 164
- 165
- 166
- 167
- 168
- 169
- 170
- 171
- 172
- 173
- 174
- 175
- 176
- 177
- 178
- 179
- 180
- 181
- 182
- 183
- 184
- 185
- 186
- 187
- 188
- 189
- 190
- 191
- 192
- 193
- 194
- 195
- 196
- 197
- 198
- 199
- 200
- 201
- 202
- 203
- 204
- 205
- 206
- 207
- 208
- 209
- 210
- 211
- 212
- 213
- 214
- 215
- 216
- 217
- 218
- 219
- 220
- 221
- 222
- 223
- 224
- 225
- 226
- 227
- 228