Reference no: EM133694183
Assessment topic:
In this assignment, you will create a Java software package to process the records in a phone book according to the given instructions/commands. Your Java software MUST provide ALL the following functionalities:
Purpose:
The purpose of this assignment is to assess your progress towards attainment of a selection of the learning objectives as covered up to week 11. On successful completion of this assignment, you should have demonstrated that you are able to:
Write a program consisting of multiple objects which interact with each other by following appropriate design practices
Write a program that provides the requested functionality for the system
Implement classes which have generalization relationships with other classes
Utilise polymorphism and abstraction techniques
Utilise appropriate collection classes from Java's Collections API in appropriate ways/places
Read data from and write data to text files
Handle exceptions by constructing try ... catch blocks for appropriate circumstances
Design a text-based user interface
Read from TWO inputs files: phone book file and instruction file
When the ECB system starts up, it assumes that an electronic phone book has the contact information as given in the phone book file, and it manages the contact records according to the instructions given in the instruction file.
Phone book file contains contact information in a predefined format;
Instruction file lists instructions/commands to be performed on the records. The instructions/commands can be: "add", "delete", "query", and "save".
Add a record (a person's contact details) to your phone book
For instance, the following instruction
add name Jo Bloggs; birthday 08-07-1980; phone 88884444; address 9001 Chester Crescent
is supposed to add/update a record for a person with name "Jo Bloggs", birthday 8/7/1980, phone number 88884444 and address "9001 Chester Crescent".
Your ECB system checks whether this is an existing record:
if both person name and birthday are identical to those of an existing record in your phone book, the existing record will be updated with the new input information. E.g., update the items of address, email, and phone.
otherwise your system adds the new valid record to the list
Delete record(s) from your list by name
For instance, the instruction
delete Jeff Vader
indicates deleting the record(s) with name "Jeff Vader" from the list.
delete Jeff Vader ; 8-07-1980
indicates deleting the record with name "Jeff Vader" and birthday "08/07/1980" from the list.
Query the records by person name, birthday, or phone number.
For instance,
query birthday 8-09-1991 query name David Joans query phone 9110110
is supposed to save the query result to be saved later into a file.
Save the resulting data collection to output file(s)
Save the resulting data collection of the instructions of "add" and "delete" into the specified output file Save the query results to a separate specified report file. When there are more than one "query" command, append the latest query results to the end of the report file. Separate the results of different query instructions using dash lines with query instructions.
What do you need to submit?
All java source Code
Group report:
Group member names and ids The following sections:
Section 1: Introduction of the assignment
Section 2: UML class diagram to show your design
Section 3: screen shots of your code to show some examples of adding comments to your code;
Section 4: screen shots of your code to show some examples of how to handle exceptions;
Section 5: screen shots of your running program with at least 5 test cases to show examples of adding, deleting, updating and querying.
The following sections to be completed individually:
Section 6: each individual to write about the tasks he/she has completed.
Section 7: each individual to write about the weekly meetings and log activity.
Section 8: each individual to explain the UML class diagram in his own words.