IT501Final Project_1

advertisement
IT-501: Final Project Description and Scoring Guide
Overview
The final project for this course is the creation of an ExtendedDate class. Based on the knowledge obtained in this course and previous course work,
consider an initial Date class as defined here.Note that this definition of the Date class will permit saving any values for a date’s instance variables
including zero or negative values, values for month greater than 12, values for day greater than 31, and no limits for the values of year.
Define a new class named ExtendedDate that inherits from or extends the Date class. This new class should provide the following additional
capability.
The class should ensure that only ExtendedDate objects with valid dates are created. For example, month should always be between 1 and 12. Day
should be between 1 and 31. The maximum value of day depends on the month for the date. The maximum day for the month of February also
depends on the year value for the ExtendedDate object (i.e. is it a leap year or not?). The value of year should be between 1900 and 2999 (we
won’t worry about dates before or after that date).
Once created, the values of an ExtendedDate object can be modified individually. For example, an ExtendedDate’s month, day, or year could be
changed. However, we must sure that the result of any changes will not result in invalid dates being created. If it would, do not change the
ExtendedDate object receiving the message.
In addition, ExtendedDate objects should have additional capabilities. Specifically, ExtendedDate should provide the methods listed under the Main
Elements section below.
Objectives
To successfully complete this project, you will be expected to apply what you have learned in this course and should include several of the following
course and module objectives:
1. Apply object-oriented principles to practice
2. Select environment specific classes best suited to developing an application
3. Design necessary classes consistent with the requirements of an application
4. Implement the principles of inheritance and polymorphism in designing object-oriented applications
5. Evaluate design alternatives in a multi-tier architecture
Main Elements
Your ExtendedDate object should provide:
Method
A default constructor
A constructor that accepts parameters
A method to set the date the overrides
the inherited setDate method
A method to set the month ensuring
that only valid changes are made
A method to set the day ensuring that
only valid changes are made
A method to set the year ensuring that
only valid changes are made
A method to verify that month, day, and
year variables constitute a legitimate
date
A method to test to see if a year value is
a leap year
A method to see if an ExtendedDate
object is in a leap year
A method to return the number of days
in the month for an ExtendedDate
object
A method to return the number of days
passed in a year for an ExtendedDate
object
Method Signature/Statement
publicclassExtendedDateextends Date {
// Default constructor
// Data members are set according to super defaults
// Constructor that accepts parameters
publicExtendedDate(int month, int day, int year) {
}
// Method to set the date – override inherited setDate method
// If data is invalid, do not change the receiver
publicvoidsetDate(intmonthInt, intdayInt, intyearInt) {
}
// Method to set month ensuring that only valid changes are made
publicvoidsetMonth(intanInt) {
}
// Method to set day ensuring that only valid changes are made
publicvoidsetDay(intanInt) {
}
// Method to set year ensuring that only valid changes are made
publicvoidsetYear(intanInt) {
}
// New method to verify a date
// Valid range is 1-1-1900 through 12-31-2999
publicstaticbooleanisValidDate(int month, int day, int year) {
returntrue;
}
// Method to test for a leap year
publicstaticbooleanisLeapYear(intaYear) {
returntrue;
}
// Instance method version of the above
publicbooleanisLeapYear() {
returntrue;
}
// Return number of days in a month
publicintdaysInMonth() {
return 0;
}
// Return number of days passed in year (includes current day)
publicintdaysToDate() {
return 0;
}
A method to return the number of days
remaining in a year for an
ExtendedDate object
A method to create a new
ExtendedDate object by adding a
number of days to an existing
ExtendedDate object
// Return number of days remaining in year
publicintdaysRemainingInYear() {
return 0;
}
// Create a new ExtendedDate object with the values that result from adding a number of days to an
existing ExtendedDate object. Cannot result in an invalid ExtendedDate being created. If an
invalid date would be created, return aExtendedDate with default values.
publicExtendedDatefutureDate(intinDay) {
returnnewExtendedDate();
}
}
Please note that the methods listed above state the ExtendedDate class’s public interface. It is essential that everyone use the same method signatures when
creating the ExtendedDate class.
We want to be able to test the ExtendedDate class to be sure that it properly implements its requirements. To do so, create a separate class in the same package
named TestExtendedDate. Create a main() method in this class that provides tests for the methods of the ExtendedDate class.
You may post the source statements for the TestExtendedDate class to the project discussion forum. That way, others can test their projects using your test class
and you can test your project using test files posted by others. The test class is not to be submitted as part of the project. Only the ExtendedDate class is to be
submitted. Again, please only post the TestClass.
Format
Milestone One: Final Project
In Evaluate 10.1, you will submit your code. This assignment is graded using the Final Project Rubric.
Rubric
Critical Elements
Importing
Application
(5)
Critical Elements
Application met
stated
requirements and
performed as
required
(85)
Demonstrated
Understanding of
Course Material
(10)
No problems
encountered
Application imported
successfully without
problems.
(5)
Distinguished
Methods performed
as required,
prevented invalid
dates from being
created, and
performed
calculations for new
dates as required.
(76 – 85)
Student
demonstrated a
“Distinguished”
understanding of and
ability to apply course
material in
implementation of
requirements of the
assignment.
(9-10)
Other Instructor Notes:
Problems encountered
Instructor Feedback
Application imported successfully after
adjustments.
(1 – 4)
Application could not
be imported.
(0)
Proficient
Methods mostly
successful in
preventing invalid
dates from being
created and in
performing correct
calculations for
new dates.
(68 - 75)
Emerging
Application was
partially successful
in preventing invalid
dates from being
created and in
calculating new
dates correctly.
(62 – 67)
Student
demonstrated a
“Proficient”
understanding in
implementation of
the requirements
of the assignment.
(8)
Student
demonstrated an
“Emerging”
understanding in
implementation of
the requirements of
the assignment.
( 7)
Not Evident
Application did not
include required
method
implementationsOR
application performed
requirements
incorrectly OR
application failed to
import successfully.
(0 - 61)
Student did not
demonstrate an
understanding in
implementation of
the requirements of
the assignment.
(0-6)
TOTAL PERCENTAGE
EARNED:
Instructor Feedback
/ 100%
Download