Week 2 GPA DB by CSV
บทความนี้จะมีความต่อเนื่องจาก บทความที่แล้ว (Week 1) โดยบทความนี้จะกล่าวถึง การ Export CSV จาก Google Speadsheet และนำไปเป็นชุดข้อมูล ที่จะใช้ในโปรแกรมคำนวณเกรด ต่อไป
ขั้นตอนการ Export CSV
แล้วเราก็จะได้ไฟล์ CSV จาก Google Spreadsheet มาโดยข้างในไฟล์จะมีข้อมูลลักษณะนี้
Course Id,Course Name,Year,Semester,Credit,Section,Grade,Grade(Score)
010013001,INTRODUCTION TO ENGINEERING,2559,1,1,1,B,3.0
010123102,PROGRAMMING FUNDAMENTALS,2559,1,3,1,A,4.0
010123130,COMPUTER ENGINEERING EXPLORA,2559,1,1,1,A,4.0
040203111,ENGINEERING MATHEMATICS I,2559,1,3,4,B,3.0
040313005,PHYSICS I,2559,1,3,3,B,3.0
040313006,PHYSICS LABORATORY I,2559,1,1,4,A,4.0
เมื่อได้ไฟล์ที่เราต้องการแล้ว ต่อไปจะเป็นการอธิบายการเขียนโปรแกรมคำนวณเกรดและเก็บข้อมูลจาก CSV
โดยโปรแกรมนี้จะเขียนด้วย ภาษา Python (3) และมีการใช้ Libraries ต่างๆดังนี้
วิธีการติดตั้งโปรแกรม
- เปิด Terminal หรือ cmd
- ตรวจสอบว่าบนเครื่องได้ติดตั้ง pip (Python Package Installer)ไว้หรือยัง
- หากยังไม่ได้ติดตั้งให้ทำตามเอกสารนี้ครับ https://pip.pypa.io/en/latest/installing/
- หากติดตั้งแล้วให้ใช้คำสั่งที่ Terminal => "pip install gradedb"
- ทดสอบว่า Package ได้ถูกติดตั้งอย่างสมบูรณ์ => "pip show gradedb"
หรือ terminal เท่านั้น (เป็นข้อจำกัดของ PyInquirer)
วิธีการเริ่มต้นใช้งาน
- เปิด Terminal หรือ cmd
- ใช้คำสั่ง "gradedb" หรือ "gradedb filename.csv" ซึ่ง filename.csv ก็คือ ที่อยู่ของไฟล์ CSV ที่เราเตรียมไว้ใช้งาน
และนี่คือหน้าตาของโปรแกรมตอนเริ่มการทำงาน
เมื่อเริ่มต้นการทำงานก็จะเจอกับเมนูให้เลือกการทำงาน โดยจะมีให้เลือก 6 ตัวเลือก ประกอบไปด้วย
- Insert เป็น Mode การเพิ่มวิชาเรียนเข้าสู่ฐานข้อมูล
- Update เป็น Mode การแก้ไขฐานข้อมูลที่มีอยู่
- Summary เป็นการแสดงฐานข้อมูลปัจจุบัน
- Calculate GPA เป็นการคำนวณเกรดเฉลี่ยทั้งหมดหรือในแต่ละเทอม
- Save and Close เป็นการ Save ฐานข้อมูลปัจจุบันลงไปที่ไฟล์ CSV และทำการปิดโปรแกรม
- Close เป็นการปิดโปรแกรม
อธิบายการออกแบบระบบของโปรแกรม
อธิบายการทำงานของแต่ละ Mode
Insert Modeเมื่อทำการเลือก Mode นี้แล้วนั้นก็จะพบกับคำถามต่อไป ก็คือคำถามเกี่ยวกับรายละเอียดของวิชาที่เราต้องการที่จะเพิ่ม โดยรายละเอียดที่ต้องการก็จะมีดังนี้
- Course Id (รหัสวิชา)
- Course Name (ชื่อรายวิชา)
- Year (ปีการศึกษา)
- Semester (ภาคการศึกษา)
- Credit (หน่วยกิต)
- Section (ตอนเรียน)
- Grade (เกรด)
Update Mode
เมื่อเลือก Update Mode แล้วก็จะคำถามให้ป้อนเลขหรือลำดับของวิชาในฐานข้อมูลที่ต้องการแก้ไขข้อมูล
และเมื่อเราเลือกวิชาที่ต้องการแล้วก็จะมีคำถามต่อไปขึ้นมา โดยจะมีรายละเอียดเช่นเดียวกับตอนอยู่ใน Insert Mode แต่คำตอบจะถูก fill ด้วยข้อมูลที่มีอยู่แล้วในฐานข้อมูล (Default)
Summary Mode
สำหรับ Mode เป็นแค่การแสดงฐานข้อมูลปัจจุบันขึ้นมาเท่านั้น
Calculate GPA Mode
เป็น Mode การคำนวณเกรดเฉลี่ยหรือ GPA โดยสามารถคำนวณได้ทั้งแบบสะสมหรือแบบประจำภาค และเมื่อเข้าสู่ Mode นี้ก็จะเจอตัวเลือกว่าต้องการจะคำนวณเกรดของเทอมไหน
ในส่วนของการคำนวณนั้น เนื่องจากโปรแกรมนี้มีวิธีการเก็บข้อมูลแบบ DataFrame ทำให้เราสามารถนำบางส่วนของข้อมูลทั้งหมด เช่น Column ของหน่วยกิต กับ Column ของเกรด(แต้ม) มาทำการคำนวณได้ โดยสูตรพื้นฐานการคำนวณเกรดเฉลี่ยนั้นก็คือ
ผลรวมของผลคูณระหว่างแต้มคะแนนและหน่วยกิต / ผลรวมของหน่วยกิตโดยเมื่อเลือกเทอมที่ต้องการแล้วก็จะมีตัวเลือกให้เลือก ระหว่าง คำนวณแบบสะสม (Cumulative) หรือคำนวณแบบประจำภาค (Semester)
หากเป็นการคำนวณเกรดเฉลี่ยแบบสะสม จะเป็นคำนวณที่เริ่มตั้งแต่เทอมแรกจนถึงเทอมที่เลือก เช่นหากต้องการที่จะคำนวณแบบสะสมใน ภาคการศึกษาที่ 2560 ภาคการศึกษาที่ 1 โปรแกรมจะต้องเริ่มหาผลรวมตั้งแต่ ภาคการศึกษาที่ 2559 ภาคการศึกษาที่ 1 จนถึง ภาคการศึกษาที่ 2560 ภาคการศึกษาที่ 1
แต่ถ้าหากเป็นการคำนวณเกรดเฉลี่ยแบบประจำภาค จะสามารถคำนวณโดยทำการ filter ฐานข้อมูลก่อนเป็นลำดับแรกโดยจะ filter จาก ปีการศึกษา และ ภาคการศึกษาที่ต้องการ
เป็นการบันทึกฐานข้อมูลที่อยู่ใน Memory ลงไปในไฟล์ CSV เพื่อให้ครั้งต่อไปที่เปิดโปรแกรมก็จะข้อมูลที่เป็นปัจจุบันหลังจากที่ได้แก้ไขไปแล้ว แล้วทำการปิดโปรแกรม
Close
เป็นการปิดโปรแกรมโดยที่ไม่บันทึกข้อมูลปัจจุบัน
Source Code ของโปรแกรมสามารถดูได้ที่
GitHub
Bitbucket
ไม่มีความคิดเห็น:
แสดงความคิดเห็น