名稱:

星期一, 12月 19, 2005

Lab 12-12-2005 (1) Constructor

import java.io.*;
public class Lab1212
{
private String month;
private int day;
private int year;
public Lab1212()
{
month="January";
day=1;
year=1000;
}
public Lab1212(int monthInt,int day,int year)
{
setDate(monthInt,day,year);
}
public Lab1212(String monthString,int day,int year)
{
setDate(monthString,day,year);
}
public Lab1212(int year)
{
setDate(1,1,year);
}
public Lab1212(Lab1212 aDate)
{
if(aDate==null)
{
System.out.println("Fatal Error.");
System.exit(0);
}
month=aDate.month;
day=aDate.day;
year=aDate.year;
}
public void setDate(int monthInt,int day,int year)
{
if(dateOK(monthInt,day,year))
{
this.month=month(monthInt);
this.day=day;
this.year=year;
}
else
{
System.out.println("Fatal Error");
System.exit(0);
}
}
public void setDate(String monthString,int day,int year)
{
if(dateOK(monthString,day,year))
{
this.month=monthString;
this.day=day;
this.year=year;
}
else
{
System.out.println("Fatal Error");
System.exit(0);
}
}
public void setDate(int year)
{
setDate(1,1,year);
}
private boolean dateOK(int monthInt,int dayInt,int yearInt)
{
return((monthInt>=1)&&(monthInt<=12)&&(dayInt>=1)&&(dayInt<=31)
&&(yearInt>=1000)&&(yearInt<=9999));
}
private boolean dateOK(String monthString,int dayInt,int yearInt)
{
return(monthOK(monthString)&&(dayInt>=1)&&(dayInt<=31)
&&(yearInt>=1000)&&(yearInt<=9999));
}
private boolean monthOK(String month)
{
return(month.equals("January")||month.equals("February")
||month.equals("March")||month.equals("April")
||month.equals("May")||month.equals("June")
||month.equals("July")||month.equals("August")
||month.equals("September")||month.equals("October")
||month.equals("November")||month.equals("December"));
}
public void readInput()throws IOException
{
boolean tryAgain=true;
BufferedReader keyboard=new BufferedReader(new InputStreamReader(System.in));
while(tryAgain)
{
System.out.println("Enter month, day, and year.");
System.out.println("Do not use a comma.");
String monthInput=keyboard.readLine();
int dayInput=keyboard.read();
int yearInput=keyboard.read();
if(dateOK(monthInput,dayInput,yearInput))
{
setDate(monthInput,dayInput,yearInput);
tryAgain=false;
}
else
System.out.println("Illegal date. Reenter input.");
}
}
public void writeOutput()
{
System.out.println(month+" "+day+", "+year);
}
public void setMonth(int month)
{
if((month<=0)||(month>12))
{
System.out.println("Fatal Error");
System.exit(0);
}
else
this.month=month(month);
}
public void setMonth(String month)
{
this.month=month;
}
public void setDay(int day)
{
if((day<=0)||(day>31))
{
System.out.println("Fatal Error");
System.exit(0);
}
else
this.day=day;
}
public void setYear(int year)
{
if((year<=9999))
{
System.out.println("Fatal Error");
System.exit(0);
}
else
this.year=year;
}
public boolean equals(Lab1212 otherDate)
{
return((month.equalsIgnoreCase(otherDate.month))
&&(day==otherDate.day)&&(year==otherDate.year));
}
public boolean precedes(Lab1212 otherDate)
{
return((year
|| (year==otherDate.year&&getMonth()
|| (year==otherDate.year&&month.equals(otherDate.month)
&&day
}
public String toString()
{
return(month+" "+day+", "+year);
}
public int getDay()
{
return day;
}
public int getYear()
{
return year;
}
public int getMonth()
{
if(month.equalsIgnoreCase("January"))
return 1;
else if(month.equalsIgnoreCase("February"))
return 2;
else if(month.equalsIgnoreCase("March"))
return 3;
else if(month.equalsIgnoreCase("April"))
return 4;
else if(month.equalsIgnoreCase("May"))
return 5;
else if(month.equals("June"))
return 6;
else if(month.equalsIgnoreCase("July"))
return 7;
else if(month.equalsIgnoreCase("August"))
return 8;
else if(month.equalsIgnoreCase("September"))
return 9;
else if(month.equalsIgnoreCase("October"))
return 10;
else if(month.equalsIgnoreCase("November"))
return 11;
else if(month.equalsIgnoreCase("December"))
return 12;
else
{
System.out.println("Fatal Error");
System.exit(0);
return 0;
}
}
private String month(int monthNumber)
{
switch(monthNumber)
{
case 1:
return "January";
case 2:
return "February";
case 3:
return "March";
case 4:
return "April";
case 5:
return "May";
case 6:
return "June";
case 7:
return "July";
case 8:
return "August";
case 9:
return "September";
case 10:
return "October";
case 11:
return "November";
case 12:
return "December";
default:
System.out.println("Fatal Error");
System.exit(0);
return "Error";
}
}
}
-------------------------------------------
public class Lab1212Demo
{
public static void main(String[] args)
{
Lab1212 date1=new Lab1212("December",6,1770),
date2=new Lab1212(1,27,1756),
date3=new Lab1212(1882),
date4=new Lab1212();
System.out.println("Whose birthday is "+date1+"?");
System.out.println("Whose birthday is "+date2+"?");
System.out.println("Whose birthday is "+date3+"?");
System.out.println("The default date is "+date4+".");
}
}

0 Comments:

張貼留言

<< Home