Dating game program, Programming Languages

Assignment Help:

You are to write a program that determines the day of the week for New Year's Day in the year 3000. To do this, you must create your own date class (MyDate) and use the following interface and main program:

/**

Interface for Date objects to be used by the Year3000 driver program.

*/

public interface DateInterface

{

/** @return the day of the month (1-31) */

publicintgetDay();

/** @return the day of the week (0-6) */

publicintgetDow();

/** @return the month of the year (1-12) */

publicintgetMonth();

/** @return the year (four digits) */

publicintgetYear();

/** sets the date

@param m the month of the year (1-12)

@param d the day of the mongth (1-31)

@param y the year (four digits)

@paramdow the day of the week (0-6) */

public void set(int m, int d, int y, intdow);

/** moves the date forward by exactly one day */

public void tomorrow();

/** @return the date as a String in the format "Monday March 18, 2002" */

public String toString();

/** Moves the date backward by exactly one day. */

public void yesterday();

/** sets the date to today;

make this empty {} unless you do the extra credit. */

public void today();

}

import java.io.*;

/**

Driver class for The Dating Game programming assignment.

*/

public class Year3000

{

public static void main(String [] args) throws IOException

{

DateInterface d = new MyDate();

d.set(1,29,2006,0); // sets the date to Sunday, January 29th, 2006

while(d.getYear()<3000)

{

d.tomorrow();

}

// at this point, d represents January 1, 3000

System.out.println(d);

}

}

When the program is compiled and run, it should use your MyDate class to correctly predict the day of the week for January 1st, 3000. Note that we are using the integers 0-6 for the days of the week, with 0 representing Sunday, 1 for Monday, etc.

Additional Requirements

- Implement a yesterday() function which moves the date one day backwards. Modify your main program to print the date, including the day of the week, for January 1st, 1800. 

- Using UML, create a high level design (a.k.a. architecture) of your program before implementation. Include your design (architecture) as an appendix to your Word document submission. You are required to include a simple use case diagram, class diagram and sequence diagram for at least one method.

Using the built-in Date class from Java, have your constructor automatically initialize the date to today. Also, add a today() function to your class to set the date to today. Modify the main program to print today's date using your class.

Hand In

In a single MS Word document with the following three clearly defined sections:

1. Listing (print-out) of your program source code (with comments and headers)

2. Screen captures of sample run outputs (at least 3 runs/scenarios)

3. High level design using UML notation

The filename must be in the following format:

Assignment3_Lastname-Firstname.doc or docx

Please enter the following in the subject line of your email submission:

Assignment3_Lastname-Firstname

Notes

- Don't forget to include comments (javadoccompatible), and remember to indent properly.

- Include pre- and post-conditions for your functions/methods. (That is, the comments should state what the function does, and what it needs to do it.)

- For simplicity, you can pretend all months have 30 days and that there are no leap years for early versions of your program. Add the actual month lengths and leap year information later.

- Aleap year is a year when February has 29 days. A year is a leap year if the year is divisible by 4, but not by 100, or if it is divisible by 100, it must also be divisible by 400. So 1900 was not a leap year, but 2000 was.

- Your tomorrow() and yesterday() functions should fit on one page or less. If they are bigger than that, use some helper functions to break them down.

- Utilize the submission template provided in the course module.


Related Discussions:- Dating game program

Develop an html document with a nested list, 1. Develop a Web page, indicat...

1. Develop a Web page, indicating an ordered list of the names of your five friends. 2. Develop an HTML document with a nested list indicating the content page of any book 3.

Shell script to display words of a file in ascending order, Normal 0 ...

Normal 0 false false false EN-US X-NONE X-NONE MicrosoftInternetExplorer4

Advantages of asp.net mvc framework, Advantages of asp.net mvc framework ...

Advantages of asp.net mvc framework MVC is a conventional style design that many designers are acquainted with. Some kinds of Web programs will advantage from the MVC structur

Assembly language, I need help with having a user input a year, and my prog...

I need help with having a user input a year, and my program to spit out what day of the week Christmas is on.... any helping hands on this?

Super ascii string cost in c++, Ask question #Minimum 100 A string S is sai...

Ask question #Minimum 100 A string S is said to be "Super ASCII", if it contains the character frequency equal to their ascii values. String will contain only lower case alphabets

Python , Python Programming hmw help!! Write a program that ask the user to...

Python Programming hmw help!! Write a program that ask the user to input the followings: number of shares, stock price, and broker commission. Last month jim purchased some stock

Microsoft''s vc++, Microsoft's VC++ Windows V C++ was a highly effectiv...

Microsoft's VC++ Windows V C++ was a highly effective device. But it was too complicated. It has too many information kinds, and designers had to understand many your local lib

Redundant sequence identification, Redundant sequence identification: Given...

Redundant sequence identification: Given a set of k DNA sequences, S = { s 1, s 2, ... ,  s k } give an optimal algorithm to identify all sequences that are completely contained

Steps for creating a simple html program, 1)      Go to Start -> Programs-...

1)      Go to Start -> Programs->Accessories->Notepad. 2)      Start with a document type tag & an opening tag. Enter the given line in your doc.

What is jvm-java virtual machine, What is JVM-Java Virtual Machine  A J...

What is JVM-Java Virtual Machine  A JVM stands for java virtual machine. This is virtual computer or an abstract computer that runs the complied java programs. In fact JVM is

Write Your Message!

Captcha
Free Assignment Quote

Assured A++ Grade

Get guaranteed satisfaction & time on delivery in every assignment order you paid with us! We ensure premium quality solution document along with free turntin report!

All rights reserved! Copyrights ©2019-2020 ExpertsMind IT Educational Pvt Ltd