Introduction to Programming COIT 20245
Assessment item 1—Java Console Program
Due date: Week 6 T116 – Midnight, Friday 22 April 2016 ASSESSMENT
Refer below for complete assessment item 1 requirements
Length: N/A 1
This assessment item relates to the course learning outcomes as in the Course Profile.
For this assignment, you are required to develop a Java Console Program to demonstrate you can use Java constructs including input/output via a command line, Java primitive and built-in data types, Java defined objects, selection and looping statements, methods, and various other Java commands.
Your program must produce the correct results.
You are only allowed to use techniques which have been covered in the first six weeks of the course, you must use the Scanner object for input and no advanced data structures like arrays will be used. Instructions for this appear in the implementation section of this specification.
What to submit for this assignment
The Java source code:
A report including a flow chart (UML activity diagram) to depict your validation loop for reading the hours, how long it took to create, any problems encountered and screen shots of the output produced. (Use Alt-PrtScrn to capture just the console window and you can paste it into your Word document) You should test every possibility in the program. o ReportAss1.docx
You will submit your files by the due date using the “Assignment 1” link on the Moodle course website in the Assessment Block or in the relevant week.
The Rocky car park management has asked you to write a program to help employees determine the fees for cars using their car park and to also produce some statistics
You are to write a Java Console Application (CarPark.java) which will allow employees to enter the details of N cars’ licence plate and the number of hours spent at the Rocky car park. N should be equal to the highest digit in your student ID, use N=3 if your highest digit is less than three. For each car the program will prompt for and accept the licence plate number of the car and the length of stay at the car park (in whole hours), it will then display the total cost of parking (see sample output below for formatting details).
The pricing structure for parking is (maximum twelve hours):
The first hour will cost $7.50.
The next three hours will cost $4.50 per hour.
The next four hours will cost $3.50 per hour.
The remaining hours will cost $2.50 per hour.
When all cars’ licence plate numbers and hours stayed have been entered you need to report the maximum and minimum stay (in hours) and the relevant licence plate numbers, the average stay and the total parking fees which have been collected.
The required Java Console Application should allow the user to:
1. For each of the N cars: enter the Licence plate number, and then enter the Length of stay in whole hours. The program will output the fee for the car’s stay. All dollar values will be formatted to two decimal places (see implementation below with help for doing this).
2. You must ensure the licence plate is not blank so you must implement a validation loop so a valid licence plate number is entered. The number of hours must be between 1 and 12 inclusive and you will also need to implement a validation loop so valid hours are entered.
The program will number each car in the input prompt.
3. When N cars have been entered, you will output a heading for the statistics “Statistical information for the Rocky car park”, the minimum and maximum stays (in hours) and the licence plate number of the cars with these minimums and maximums, and then what the average stay is in hours (formatted to two decimal places) (see sample output below). Note: if more than one car has an equal maximum or minimum stay you just need to only output one of the car’s licence plate number .
4. Display a welcome message at the beginning “Welcome to the Rocky car park system” and an end message e.g. “Thank you for using the Rocky car park system” and the final line
“Program written by your student ID ” (see sample output below).
The numeric literal values N and parking rates must be represented as constants.
A large number of students have never written a program before so this is a fairly simple assignment which can be written in the main method of your class. Follow the steps outlined here and build your program up in a step by step fashion and always compile your program at each stage so you are always working on error free code.
Start by creating your CarPark class which will contain just the main method, COMPILE! (Fix any errors and repeat)
Implement the welcome message, COMPILE and RUN!
Declare your Scanner object(s), COMPILE!
Note: In order to combat the problem of the Scanner objects reading both textual and numeric data a good way to counter this is to declare two Scanner objects, one for reading text and another for reading numbers, or you can clear the buffer after the int read using nextLine()
Create a loop to loop N Times, COMPILE! (use N = 3 for development)
Declare variables to hold the licence plate number of the car and it’s length of stay (String and int),
Within the loop: prompt and read the car’s licence plate, COMPILE and RUN!
Add the prompt and read for the length of stay, COMPILE and RUN!
Calculate the parking fee using the pricing structure above, COMPILE, RUN and TEST until this is correct.
Output the description of the transaction (see sample output below) Output all dollar values and average to two decimal places:
USE: System.out.printf(“%.2f”, fee);
Add the validation loops for reading the data (you can do this last if you like)
Use if statements to determine if the stay is maximum or minimum, (you will have to think about this). Output the minimum and maximums after the loop for testing, COMPILE and RUN until you have this correct. You may want to set your original max and min variables to very small and very large numbers using Integer.MIN_VALUE and Integer.MAX_VALUE.
You will need to add up the hours as you go so you can calculate the average.
After the loop you will output the statistics which you have gathered in the loop. You should have the maximum and minimum stays and the corresponding licence plate numbers and the total amount of parking fees collected.
Calculate the average stay.
Output the statistics as indicated in the screen shot below.
Finally print the end message.
Your program should be well laid out, commented and uses appropriate and consistent names (camel notation) for all variables and objects.
For this assignment you will not worry about checking data types.
Refer to a Java reference textbook and the course and lecture material (available on the course WEB site) for further information about the Java programming topics required to complete this assignment. Check the marking guide (last page) to ensure you have completed every task. You need to match the output as shown below.
Typical screen shot of the program executing is as follows:
Good luck --- Bruce McKenzie course coordinator term 1 2016
Total number of marks – 20
1 Variables, constants and types
Constant N is used correctly and is largest digit of student ID 0.5
Constants are used for all numeric literals (no hard coded
Variables have meaningful names and use camel notation 0.5
Variables are the correct type 0.5
2 Code in general
Code is indented and aligned correctly 0.5
Code has header comment which includes student name,
student ID, date, file name and purpose of the class 0.5
Code is fully commented including all variables 0.5
Numbers and strings are read correctly 0.5
Validation loop for Licence plate is correct 1
Validation loop for hours is correct 1
if statements are correct 0.5
looping is correct i.e iterates N times 0.5
Output is formatted correctly (resembles sample output) 2
Correct fee per car is correct 2
Maximum stay and licence plate is correct 1
Minimum stay and licence plate is correct 1
Average stay is correct 1
Total fees is correct 0.5
Average and dollar values formatted to two decimal places 1
Welcome and exit message (with student ID) are displayed 0.5
Correct files submitted including types and names 1
Only techniques covered during weeks 1-6 are used 1
Flow chart is correct 1
Screen shot(s) of testing 0.5
Report presentation and comments including how long it took
and any problems encountered 0.5
Penalty for late submission is 5% per day (1 mark per day) enter negative number
Compilation errors (see below), enter negative number
Total Marks 20