ช่วยหน่อยค่ะ เครียดมากกกก
ใครก็ได้ค่ะ ช่วยเขียนโค้ดจากโจทย์นี้ให้หน่อยค่ะ
\"ขอบคุณล่วงหน้าค่ะ\"
1. ให้เขียนคลาสและโปรแกรมทดสอบคลาสที่ทำงานดังต่อไปนี้ คลาส Histogram ทำหน้าที่เก็บค่าความถี่ของชุดตัวเลขที่มีค่าตั้งแต่ 1 10 นอกจากนี้ยังสามารถแสดงผลลัพธ์ของความถี่เป็นกราฟ Histogram โดยใช้ * แทน 1 ค่าความถี่ โดยคลาส Histogram จะมีตัวแปรวัตถุที่เก็บค่าความถี่ของแต่ละตัวเลข (1 10) มีชนิดเป็นอาร์เรย์ของเลขจำนวนเต็ม และมีเมท็อด - add(int k) เพื่อเพิ่มค่าตัวเลขจำนวนเต็ม 1 ตัวเพื่อเก็บเป็นค่าความถี่ - plot() เพื่อแสดงกราฟ - getSum() เพื่อคำนวณและคืนค่าผลรวมของตัวเลขชุดนี้ - getAverage() เพื่อคำนวณและคืนค่าเฉลี่ยของตัวเลขชุดนี้ - getStdev() เพื่อคำนวณและคืนค่าเบี่ยงเบนมาตรฐาน
หมายเหตุ เนื่องจากสูตรที่ให้นี้คำนวณกับแต่ละตัวเลข (xi) แต่คลาส Histogram เก็บค่าความถี่ ดังนั้นจึงต้องดัดแปลงสูตรข้างต้นให้คำนวณกับค่าความถี่แทนได้ คลาสทดสอบทำหน้าที่อ่านข้อมูลชุดตัวเลขจำนวนเต็มมีค่าตั้งแต่ 1 10 โดยอ่านทีละตัวเลขจากผู้ใช้ (ตรวจสอบค่าที่นำเข้าว่าอยู่ระหว่าง 1 10 ก่อนหากผิดพลาดจะไม่เพิ่มเลขนั้นใน Histogram) หลังการนำเข้าแต่ละตัวเลขให้เพิ่มเลขนั้นเข้าไปในวัตถุของคลาส Histogram การนำเข้าตัวเลขถือว่าสิ้นสุด เมื่อผู้ใช้ใส่ตัวเลข 0
ตัวอย่างเช่น หากผู้ใช้ใส่ชุดตัวเลข 2 3 4 7 9 2 3 5 7 8 9 9 9 10 0 เมื่อทดสอบจะได้ค่าต่าง ๆ ที่คำนวณได้ และกราฟดังนี้ Sum : 87.0 Average: 6.214 Stdev : 2.833
10 * 9 **** 8 * 7 ** 6 5 * 4 * 3 ** 2 ** 1 หมายเหตุ เมท็อด nextInt ของ Scanner จะอ่านค่าตัวเลขให้ทีละ 1 จำนวน หากใส่ ตัวเลขหลายค่าในบรรทัดเดียว nextInt จะคืนค่าตัวเลขทีละจำนวนให้
|