Java Forums

Main Menu
Home
Today's Posts
FAQ
Search
Contact Us

Java Network
Linux Archive
Java Tips
Java Tips Blog

Sponsored Links





Welcome to the Java Forums.

You are currently viewing our boards as a guest which gives you limited access to view most discussions and access our other features. By joining our free community, you will:

  • have access to post topics
  • communicate privately with other members (PM)
  • not see advertisements between posts
  • have the possibility to earn one of our surprises if you are an active member
  • access many other special features that will be introduced later.

Registration is fast, simple and absolutely free so please, join our community today!

If you have any problems with the registration process or your account login, please contact us.

Reply
 
LinkBack Thread Tools Display Modes
  #1 (permalink)  
Old 01-30-2008, 10:38 AM
Member
 
Join Date: Jan 2008
Posts: 26
jvasilj1 is on a distinguished road
clock class program
my code is giving me errors and i am stuck...someone please help me.

my code is based on these UML Specs.

Clock

- sec : int
- min : int
- hr : int
- day : int
- mon : int
- yr : int

+ Clock( )
+ getSeconds( ) : int
+ getMinutes( ) : int
+ getHours( ) : int
+ getDays( ) : int
+ getMonths( ) : int
+ getYears( ) : int
+ setTimeDate(int, int, int, int, int, int)
+ tick( )
+ toString( ) : String

-------------------------------------------------------------
The hr instance variable records time on a 24 hour clock: 0 is midnight, 6 is 6am, 12 is noon and 23 is 11pm.

The constructor should create object with instance variables initialized to the time and date 0:00:00 January 1, 1 A.D.

The setTimeDate method should initialize the values of the instance variables. You choose the order of the parameters. You also decide what to do if any values are out of range.

When the tick method is executed, add one to sec. If the resulting value of sec is 60, set is back to 0 and update the other instance variables as necessary.


2. Write a TestClock class that tests all of the methods in your Clock class.
At a minimum, include these dates when testing the tick method: January 31, April 30, February 28 for leap and non-leap years, February 29 for leap and non-leap years, December 31.


3. Add code to your TestClock class that creates a Clock object initialized to the date and time 12 noon, January 24, 2008. Compute the dates 1 million and 10 million seconds in the future by repeatedly calling the tick method with for loops.

-----------------------------------------------------------------------
HERE IS MY CODE


public boolean isLeapYear( )
{
return yr % 400 == 0 || (yr % 100 != 0 && yr % 4 == 0);
}

public void tick( )
{
sec++;

if (sec == 60)
{
sec = 0;
min++;
}

if (min == 60)
{
min = 0;
hr++;
}

if (hr == 24)
{
hr = 0;
day++;
}

switch (mon)
{
case 1:
case 3:
case 5:
case 7:
case 8:
case 10:
case 12:
if (day == 32)
{
day = 1;
mon++;
}
break;

case 4:
case 6:
case 9:
case 11:
if (day == 31)
{
day = 1;
mon++;
}
break;

case 2:
if ((isLeapYear( ) && day == 30) ||
(!isLeapYear( ) && day == 29))

{
day = 1;
mon++;
}
break;

default:
System.out.println("Illegal month.");
break;
}
}

public String getMonthName( )
{
switch(mon)
{
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: return "Illegal month";
}

if (mon == 13)
{
mon = 1;
year++;
}
}

public String toString( )
{
if (hr == 0)
return String.format("%s %d, %d 12:%02d:%02d AM",
getMonthName( ), day, yr, min, sec);
else if (hr < 12)
return String.format("%s %d, %d %02d:%02d:%02d AM",
getMonthName( ), day, yr, hr, min, sec);
else if (hr == 12)
return String.format("%s %d, %d 12:%02d:%02d PM",
getMonthName( ), day, yr, min, sec);
else if (hr > 12 && hr < 24)
return String.format("%s %d, %d %02d:%02d:%02d PM",
getMonthName( ), day, yr, hr % 12, min, sec);
else
return "Illegal month";
}
Bookmark Post in Technorati
Reply With Quote
Sponsored Links
  #2 (permalink)  
Old 01-30-2008, 10:03 PM
jelly's Avatar
Member
 
Join Date: Jan 2008
Location: Somerset, UK
Posts: 46
jelly is on a distinguished road
You need to post the full source code of your class, this is only part of it. Also to make it readable please use code tags around your code. Finally what are the problems you are having?
__________________
-- Hope that helps
Bookmark Post in Technorati
Reply With Quote
  #3 (permalink)  
Old 01-31-2008, 06:23 AM
Senior Member
 
Join Date: Jul 2007
Posts: 1,222
hardwired is on a distinguished road
Compiles okay now.
Code:
public class ClockRx { int sec; int min; int hr; int day; int mon; int yr; public boolean isLeapYear( ) { return yr % 400 == 0 || (yr % 100 != 0 && yr % 4 == 0); } public void tick( ) { sec++; if (sec == 60) { sec = 0; min++; } if (min == 60) { min = 0; hr++; } if (hr == 24) { hr = 0; day++; } switch (mon) { case 1: case 3: case 5: case 7: case 8: case 10: case 12: if (day == 32) { day = 1; mon++; } break; case 4: case 6: case 9: case 11: if (day == 31) { day = 1; mon++; } break; case 2: if ((isLeapYear( ) && day == 30) || (!isLeapYear( ) && day == 29)) { day = 1; mon++; } break; default: System.out.println("Illegal month."); } } public String getMonthName( ) { switch(mon) { 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: return "Illegal month"; } /* if (mon == 13) { mon = 1; // "year" has not been declared // year++; // "yr" has yr++; } */ } public String toString( ) { if (hr == 0) return String.format("%s %d, %d 12:%02d:%02d AM", getMonthName( ), day, yr, min, sec); else if (hr < 12) return String.format("%s %d, %d %02d:%02d:%02d AM", getMonthName( ), day, yr, hr, min, sec); else if (hr == 12) return String.format("%s %d, %d 12:%02d:%02d PM", getMonthName( ), day, yr, min, sec); else if (hr > 12 && hr < 24) return String.format("%s %d, %d %02d:%02d:%02d PM", getMonthName( ), day, yr, hr % 12, min, sec); else return "Illegal month"; } }
Bookmark Post in Technorati
Reply With Quote
  #4 (permalink)  
Old 01-31-2008, 06:56 AM
Member
 
Join Date: Jan 2008
Posts: 26
jvasilj1 is on a distinguished road
thanks....what do i need to do with it to make it run...It is giving me a error in the terminal window saying

exception in thread main java.lang.nosuchmethoderror..........
Bookmark Post in Technorati
Reply With Quote
  #5 (permalink)  
Old 01-31-2008, 08:10 AM
Senior Member
 
Join Date: Jul 2007
Posts: 1,222
hardwired is on a distinguished road
exception in thread main java.lang.nosuchmethoderror
Means that the jvm could not find a main method in the class.
Code:
public class ClockRx { ... everything same as before ... /** add a main method */ public static void main(String[] args) { ClockRc clock = new ClockRx(); // now you can access fields and call // methods in the ClockRx class. } }
Bookmark Post in Technorati
Reply With Quote
  #6 (permalink)  
Old 01-31-2008, 08:32 AM
Member
 
Join Date: Jan 2008
Posts: 26
jvasilj1 is on a distinguished road
i dont really know how to do that could you help me?.....so are you saying that once we figure out how to do that main method, my program will work? and give a 24 hour clock?

Last edited by jvasilj1 : 01-31-2008 at 08:36 AM. Reason: mistake
Bookmark Post in Technorati
Reply With Quote
  #7 (permalink)  
Old 02-01-2008, 02:00 PM
jelly's Avatar
Member
 
Join Date: Jan 2008
Location: Somerset, UK
Posts: 46
jelly is on a distinguished road
Yes that is what hardwired is saying. Whenever you try to run a java class the system looks for a method with the signature

Code:
public static void main(String[] args)
and that is where your code starts executing. What you need to do is instantiate your clock class and then call the methods as you need them

Code:
public static void main(String[] args) { ClockRx clock = new ClockRx(); // now you can access fields and call // methods in the ClockRx class. for example // print details of clock System.out.println(clock.); // tick the clock clock.tick(); // print details of clock System.out.println(clock.); }
__________________
-- Hope that helps
Bookmark Post in Technorati
Reply With Quote
  #8 (permalink)  
Old 02-01-2008, 07:43 PM
Member
 
Join Date: Jan 2008
Posts: 26
jvasilj1 is on a distinguished road
can u please add that to my code in the post above, so it will work for me?
Bookmark Post in Technorati
Reply With Quote
  #9 (permalink)  
Old 02-01-2008, 07:50 PM
jelly's Avatar
Member
 
Join Date: Jan 2008
Location: Somerset, UK
Posts: 46
jelly is on a distinguished road
According to your original spec the testing should be in a separate class called TestClock so:

Code:
public class TestClock { public static void main(String[] args) { ClockRx clock = new ClockRx(); // now you can call methods in the ClockRx class. for example // print details of clock System.out.println(clock); // tick the clock clock.tick(); // print the current month name of clock System.out.println(clock.getMonthName()); // call any other methods that you want to call } }
__________________
-- Hope that helps

Last edited by jelly : 02-01-2008 at 07:55 PM.
Bookmark Post in Technorati
Reply With Quote
  #10 (permalink)  
Old 02-01-2008, 09:35 PM
Member
 
Join Date: Jan 2008
Posts: 26
jvasilj1 is on a distinguished road
yes i need the test clock...how does that work...so i have my one program called clockRX and a completely seperate program called TestClock...

can you post the completed code for both programs, since i dont understand where to go with this.
Bookmark Post in Technorati
Reply With Quote
  #11 (permalink)  
Old 02-01-2008, 09:47 PM
jelly's Avatar
Member
 
Join Date: Jan 2008
Location: Somerset, UK
Posts: 46
jelly is on a distinguished road
The code I posted above is a skeleton for the TestClock program there are three calls to your ClockRx program, you should be able to work out some others. Have a go at completing some code, post what you get an dpoeple will help but posting completed code will not help you. When you get into a workplace you will need to write your own so best to start now
__________________
-- Hope that helps
Bookmark Post in Technorati
Reply With Quote
  #12 (permalink)  
Old 02-01-2008, 10:14 PM
Member
 
Join Date: Jan 2008
Posts: 26
jvasilj1 is on a distinguished road
ok well the lets go back to my orignal program of the ClockRx and why it is giving me the main error but it compiles....what do i need to add to it for it to run and count the time?...
Bookmark Post in Technorati
Reply With Quote
  #13 (permalink)  
Old 02-01-2008, 10:27 PM
jelly's Avatar
Member
 
Join Date: Jan 2008
Location: Somerset, UK
Posts: 46
jelly is on a distinguished road
Your spec at the beginning says you should do that by creating a separate test class called TestClock - that's given in my earlier post. The spec also says that your original Clock class should have a constructor that does the following:

"The constructor should create object with instance variables initialized to the time and date 0:00:00 January 1, 1 A.D."

You currently only have the default constructor so you will need to override that and set your instance variable to the correct values for the date given.

Do that first and then work down the instructions in your spec - it is a pretty clear spec - shout if you get code problems.

Just a query. why did you call your class ClockRx?
__________________
-- Hope that helps
Bookmark Post in Technorati
Reply With Quote
Sponsored Links
Reply


Thread Tools
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

vB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are On
Pingbacks are On
Refbacks are On


Similar Threads
Thread Thread Starter Forum Replies Last Post
Could not find the main class, program will exit. aryubi New To Java 13 09-30-2008 01:11 AM
Help please in digital clock jaidod Java Applets 1 04-17-2008 06:05 PM
Pogo clock problem tampacurt New To Java 0 11-17-2007 04:18 AM
dynamically updating clock malakaherath New To Java 2 08-01-2007 09:57 PM
Error: Could Not Find Main Class. Program Will Exit silvia New To Java 1 07-19-2007 06:58 PM


All times are GMT +3. The time now is 04:45 AM.


VBulletin, Copyright ©2000 - 2008, Jelsoft Enterprises Ltd.
Content Relevant URLs by vBSEO ©2007, Crawlability, Inc.
Copyright ©2006 - 2007, www.java-forums.org