The purpose of this assignment is to give students experience in writing a Java program which uses the following drills: • • • • • • Choice of suitable algorithm to match the problem requirements and their personal preferences Declare and use of variables of primitive types Use of common data types (primitive as well as reference types): int, String, char Use of branching control flows Use of loop control flows Prepare, plan and record program development activities
3 PM, Thursday 29 August, 2013 (week 7) Late assignment submissions are discouraged. Assignments which are submitted late, without prior written agreements, will be subject to mark penalties. Please refer to the terms of the School Policy for Late Assessment accessible through a link on the school website under Resources. Forms to request extensions of time to submit assignments are available from the School of Computing and Information Systems office and Help Desk. Requests must be supported by suitable documentation and should be submitted before the assignment due date to your tutor. Approved written permissions must be included with the late submissions.
Your completed assignment must be submitted in printed form on A4 sheets as described later in this document. Email submissions are not accepted.
This assignment will be marked out of 36 (9% of the total unit score). These 36 marks are grouped in 4 sets of criteria of 9 marks each. Management of Software development: Nine (9) marks will be based on your adaption and commitment to the good management practices in constructing the program. These marks will be
based on the time-sheet you maintain and requires you to start your work on the assignment at least a fortnight before the due date. You are required to provide supporting documents. Program quality: Nine (9) marks are for the readability of the code. Marking sheet at the end of this document describes the criteria used for these marks. Problem solving: Nine (9) marks are for the code that you write for three main activities (Tasks) set for this assignment. Functional correctness: Nine (9) marks are for the 9 test cases that you must use to test your program. The output for each of these test cases must be attached to your submission. Remember, to pass the unit you must obtain at least 45% of the total possible marks for the insemester component of assessment.
The programming task: Which day of week I was born?
1 January 1901 is an important day on the Australian calendar – it is the birthdate (federation day) for the Commonwealth of Australia. Historically, less important fact is that it was a Tuesday. In this assignment you will use this latter fact to write a program that given a person’s birthdate, finds and prints the day for the person’s birthdate. The screen interaction for the program you develop must mimic the following pattern (Computer generated text is shown in bold fonts. The text typed by the user is shown in normal font styles. Your actual run will use the same style for all input and output text.): $java findDay4Birthdate What is your birthdate? 01-1-1970 You were born on Thursday, 1 January 1970 Let us say a bit more about the format and definitions. We will use the term day to mean one of the seven days of a week. Date will be used to mean a calendar date between 30 August 1913 and 29 August 2013. The user of your program is free to use any of the common Australian date formats for specifying their birthdates. A date is made of three parts. First and third parts are always a whole number. First part gives a day of the month (it is an integer from 1 to 31. Note the use of word day here was not consistent with the definition above.). Last (third) part of a date is a year and it can be specified by a user as a two-digit or as a four-digit integer. The