Grader
คำอธิบาย
- ปฏิบัติการนี้ต้องการให้เขียนคลาสชื่อ Grader ที่มีไว้ผลิตอ็อบเจกต์ซึ่งทำหน้าที่เก็บข้อมูลคะแนนนักเรียนและให้บริการตัดเกรดด้วย มีข้อมูลประจำอ็อบเจกต์และตัวสร้างดังนี้
public class Grader { Student[] students; // เก็บข้อมูลของนักเรียน (ลองรายละเอียดของ Studentเอง) int size; // เก็บจำนวนนักเรียน double a, b, c, d; // เก็บเกณฑ์การตัดเกรด
public Grader(int n, double a0, double b0, double c0, double d0) { students = new Student[n]; // สร้างอาเรย์เตรียมไว้เก็บนักเรียน size = 0; // เริ่มต้นยังไม่มีนักเรียน จำนวนนักเรียนเป็น 0 a = a0; b = b0; c = c0; d = d0; } ...
คลาสนี้มีตัวสร้างและเมท็อดประจำอ็อบเจกต์ให้บริการดังนี้
- Grader(int n, double a, double b, double c, double d)
ตัวสร้างตัวตรวจที่สร้างที่เก็บคะแนนนักเรียนได้มากสุด n และมีเกณฑ์การตัดเกรดตามที่ระบุในพารามิเตอร์ a, b, c, d (ขอมีแค่ 5 เกรด จากตัวอย่างคือ ถ้าได้คะแนนตั้งแต่ 80 ขึ้นไป ได้ A, ถ้าได้คะแนนตั้งแต่ 70 แต่ไม่ถึง 80 ได้ B, ถ้าได้คะแนนตั้งแต่ 60 แต่ไม่ถึง 70 ได้ C, ถ้าได้คะแนนตั้งแต่ 50 แต่ไม่ถึง 60 ได้ D และถ้าน้อยกว่า 50 ได้ F)
- String grade(double point)
คืนเกรดที่คำนวณจากคะแนน point ตามเกณฑ์ที่กำหนดให้ในตัวสร้าง
- void add(String id, double point)
เพิ่มนักเรียนที่มีเลขประจำตัว id และได้คะแนน point
double average() คืนค่าเฉลี่ยของคะแนน
- double stdev()
คืนค่าเบี่ยงเบนมาตรฐานของคะแนน
- void printSortedByID()
แสดงข้อมูลของนักเรียนทุกคนทางจอภาพ โดยแสดงเรียงตามลำดับของเลขประจำตัวจากน้อยไปมาก
- ดูตัวอย่างการใช้งานข้างล่างนี้ประกอบความเข้าใจ
Grader gd = new Grader(20, 80, 70, 60, 50); gd.add("5310012121", 89); gd.add("5310214821", 80); gd.add("5310312321", 71); gd.add("5310391221", 54); gd.add("5310442921", 63); gd.add("5310437621", 75); System.out.println("Average = " + gd.average()); System.out.println("Stdev = " + gd.stdev()); gd.printSortedByID();
Grader g = new Grader(8,80,70,60,50);
จะได้อ็อบเจกต์ดังรูป
- อย่าลืมว่า การ new Students[8] ได้แค่อาเรย์ 8 ช่อง ไว้เก็บตัวอ้างอิงอ็อบเจกต์นักเรียน ไม่ได้สร้างอ็อบเจกต์นักเรียนใดๆ เมื่อ add ข้อมูลเพิ่มจึงจะสร้างอ็อบเจกต์นักเรียนเพิ่มในอาเรย์ เช่น หลังทำคำสั่ง
g.add("153",75) จะได้

- ให้สังเกตว่า การ add สร้างและเก็บอ็อบเจกต์นักเรียนในช่องที่ 0 ของอาเรย์ ค่าของตัวแปร size ถูกเพิ่มขึ้นอีก 1 ถ้าเพิ่มนักเรียนอีกคนด้วย g.add("346",63) คราวนี้อ็อบเจกต์ใหม่จะถูกเก็บต่อจากตัวหลังสุด โดยตำแหน่งของช่องที่เราจะเก็บก็คือ ค่าของตัวแปร size (ซึ่งตอนนี้เก็บ 1) คือเก็บในช่อง 1 ของอาเรย์ จึงเปลี่ยนดังแสดงข้างล่างนี้ และตัวแปร size ก็เปลี่ยนเป็น 2

คะแนนเต็ม : 5 คะแนน
- เมื่อต้องการให้ระบบทดสอบและให้คะแนน ให้กดปุ่ม F6 (เมท็อดละ 1 คะแนน)
เวลาปฏิบัติการ : 60 นาที
การทดสอบย่อยนี้ใช้ซอฟต์แวร์ปฏิบัติการจาวา JLab (http://www.cp.eng.chula.ac.th/~somchai/JLab)
|