2110101 : Lab5 - do-while, while, for loops

 

สิ่งที่ต้องการ

Lab5.java เป็นโปรแกรมพิมพ์ปฏิทิน ซึ่งรับเลขปี ค.ศ. และ เลขเดือนทางแป้นพิมพ์ ตัวอย่างเช่นหากป้อน 2002 และ 7  จะได้ปฏิทินข้างล่างนี้
  
-----------------------------
        July(2002)
-----------------------------
 SUN MON TUE WED THU FRI SAT
       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
=============================
Lab5.java มีคำสั่งจัดการเรื่องการรับข้อมูลจากแป้นพิมพ์แล้ว พิมพ์หัวและท้าย (ชื่อเดือน คำย่อของวัน ขีดเส้น) แล้ว ที่ยังขาดอยู่ (และเป็นภาระของปฏิบัติการครั้งนี้) ก็คือ การจัดรูปแบบการพิมพ์เลขวันต่างๆ ของเดือนนี้ให้ถูกต้อง  โดยสามารถอ้างอิงตัวแปรสองตัว ซึ่งได้รับการตั้งค่าให้เรียบร้อยแล้วดังนี้ 
  • firstDay เก็บว่าวันที่ 1 ของเดือนเป็นวันอะไร (มีค่า 1 คือวันอาทิตย์  2 คือวันจันทร์   3 คือวันอังคาร  ... 7 คือวันเสาร์) เช่นวันแรกของเดือน 7 ปี 2002 คือวันจันทร์ จะได้ firstDay = 2
  • numDays เก็บจำนวนวันของเดือน เช่นเดือน 7 ของปี 2002 มี 31 วัน จะได้ numDays = 31

นักเรียนสามารถเรียก JLabIO.format เพื่อเปลี่ยนจำนวนเต็มให้เป็น String ที่มีความยาวเป็นจำนวนที่ต้องการได้ เช่น

  • JLabIO.format( 7, 3 ) จะได้  "  7"  ซึ่งคือ string ที่มีสามตัวอักษร สองตัวแรกเป็น blank ตามด้วย 7
  • JLabIO.format( 31, 3 ) จะได้  " 31"  ซึ่งคือ string ที่มีสามตัวอักษร ตัวแรกเป็น blank ตามด้วย 31

เขียนคำสั่งเพื่อแสดงปฏิทินเฉพาะส่วนที่เป็นเลขวันในรูปแบบที่กำหนดให้ข้างล่างนี้ (ซึ่งตรงกับที่แสดงในตัวอย่างข้างบน)

  • พื้นที่ของการพิมพ์ปฏิทินในแต่ละบรรทัดแบ่งเป็น 7 ส่วน (สำหรับ 7 วัน) แต่ละส่วนกินเนื้อที่ 4 ตัวอักษร ให้แสดงเลขวันในแต่ละส่วนแบบชิดขวา  (JLabIO.format ช่วยจัดรูปแบบตรงนี้ได้)

คะแนนเต็ม : 10 คะแนน

  • เขียนโปรแกรม  10 คะแนน  (ระบบตรวจให้อัตโนมัติ โดยทดสอบเดือนสุ่ม 5 เดิอนๆ ละ 2 คะแนน)

เวลาปฏิบัติการ : 45 นาที