Lab10-ArrayOfObjects
5530138821 น.ส.ณัชชา บุญธนาพิบูลย์ (COM22023) (20/2/2556 (12:01:59))
MiniQuiz + TestScript |
JLab>javac Date.java Member.java MyMain.java
JLab>
JLab>java Selftest
JLab> test1DateConstructor : ok ok ok ok ok ok ok ok ok ok (1.0/1.0)
JLab> test2DateCompare : ok ok ok ok ok ok ok ok ok ok (1.0/1.0)
JLab> test3MemberConstructor : ok ok ok ok ok ok ok ok ok ok (1.0/1.0)
JLab> test4SortByBirthDate : ok ok ok ok ok ok ok ok ok ok (1.0/1.0)
JLab> : -----------------------------
JLab> : คุณได้ 4.0 คะแนน (เต็ม 4.0)
JLab> : -----------------------------
JLab> :<POINT>4.0</POINT> (<TOTAL>4.0</TOTAL> )
JLab>
ได้ 4 คะแนน |
Source Code |
public class Date {
public int d;
public int m;
public int y; // พ.ศ.
public Date(int d0, int m0, int y0) {
// เพื่อความง่าย ไม่ต้องตรวจสอบว่า วัน เดือน ปี ที่ได้รับเป็นจำนวนที่ถูกต้องหรือไม่
d = d0;
m = m0;
y = y0;
}
//-------------------------------------------------------
public static int compare(Date d1, Date d2) {
// -1 เมื่อ d1 เป็นวันที่ที่มาก่อน d2
// 0 เมื่อ d1 เป็นวันที่เดียวกับ d2
// +1 เมื่อ d1 เป็นวันที่ที่อยู่หลัง d2
if (d1.d < d2.d) return -1;
else if (d1.d > d2.d) return 1;
else if (d1.m < d2.m) return -1;
else if (d1.m > d2.m) return 1;
else if (d1.y < d2.y) return -1;
else if (d1.y > d2.y) return 1;
else
return 0;
}
//-------------------------------------------------------
public static boolean equals(Date d1, Date d2) {
return d1 != null && d2 != null &&
d1.y == d2.y && d1.m == d2.m && d1.d == d2.d;
}
}
public class Member {
public String id;
public String name;
public String bloodGroup;
public Date birthDate;
public Member(String i, String n, String bg, Date bd) {
// เพื่อความง่าย ไม่ต้องตรวจสอบว่า ข้อมูลทั้งหลายที่ได้รับถูกต้องหรือไม่
id = i;
name = n;
bloodGroup = bg;
birthDate = bd;
}
public static boolean equals(Member m1, Member m2) {
return m2 != null &&
m1.id.equals(m2.id) &&
m1.name.equals(m2.name) &&
m1.bloodGroup.equals(m2.bloodGroup) &&
m2.birthDate != null && Date.equals(m1.birthDate, m2.birthDate);
}
}
import java.util.Scanner;
import java.io.*;
public class MyMain {
public static void main(String[] args) throws IOException {
Member[] members = readMemberFile("members.txt");
sortByBirthDate(members);
showMembers(members);
}
//-----------------------------------------------------------------------
public static void sortByBirthDate(Member[] m) {
// เรียงลำดับสมาชิกตาง ๆ ในอาเรย์ m ตามอายุสมาชิก จากอายุมากไปอายุน้อย
Member a;
for (int i = m.length-1; i >=1; i--) {
for (int j = 0; j < i; j++) {
if(Date.compare(m[j].birthDate,m[j+1].birthDate)>0){
a = m[j];
m[j] = m[j + 1];
m[j + 1] = a;
}
}
}
}
//-----------------------------------------------------------------------
public static Member[] readMemberFile(String file) throws IOException {
Scanner f = new Scanner(new File(file));
int n = f.nextInt();
Member[] members = new Member[n];
for (int i = 0; i < n; i++) {
String id = f.next();
String bloodGroup = f.next();
int d = f.nextInt();
int m = f.nextInt();
int y = f.nextInt();
String name = f.nextLine();
members[i] = new Member(id, name, bloodGroup, new Date(d, m, y));
}
f.close();
return members;
}
//-----------------------------------------------------------------------
public static void showMembers(Member[] members) {
for (int i = 0; i < members.length; i++) {
System.out.println(members[i].id + " " +
members[i].bloodGroup + " " +
members[i].birthDate.d + " " +
members[i].birthDate.m + " " +
members[i].birthDate.y + " " +
members[i].name);
}
}
}
|
SM=0, CM=8, ST=9, KY=593, TR=60:00
ERR = 60:00 ;
ERR = 60:00 ;
ERR = 60:00 1006,1021,1021,1152,1021,1021,1021,1152,1021,1152,;
ERR = 60:00 ;
ERR = 60:00 ;
ERR = 60:00 ;
|
|