Ulster University, School of Computing
V1.0 Page 1 of 3
COM102 (Programming II - Java)
Coursework - Practical Skills Assessment 2
Title: Pet Clinics Management System
Due: Noon, 12:00 on Friday, 1
st December 2023 (Week 12)
This coursework constitutes 60% of the total marks for the module. Feedback will be made
available on Cloud Campus within 20 working days from the submission deadline.
For this assignment,you are required to work individually.
By making a submission, you will be deemed to have made the following declaration of
ownership. Source: https://www.ulster.ac.uk/student/exams/policies-procedures.
“I declare that this is my own work and that any material I have referred to has been accurately
and consistently referenced. I have read the University’s policy on plagiarism and understand the
definition of plagiarism as given in the [course/subject] handbook. If it is shown that material has
been plagiarised, or I have otherwise attempted to obtain an unfair advantage for myself or
others, I understand that I may face sanctions in accordance with the policies and procedures of
the University. A mark of zero may be awarded and the reason for that mark will be recorded on
my file.”
Overview
This assignment is concerned with the use of collection to store and manage objects. Write a Java program
to store and manage data from a set of pets registered at a pet clinics according to the following
requirements:
• Functional Requirements
1. The application must be able to handle data from at least two types of pets such as cats and dogs.
2. For each pet, their name, age, colour, weight, and breed should be recorded.
Hint: consider creating an array of type Pet, where Pet is a base class you create containing the
name, age, colour, and weight as instance variables. Each sub class represents each type of pet has
an additional instance variable breed that can store the particular breed of a pet. For example, it
could be Persian, Tabby, etc. for a cat and Spaniel, terrier, etc.. for a dog. You need to check that
each variable has been entered correctly in whatever format you specify. You might also want to
inform the user that if any of the data fields for a given pet are left blank, that pet’s full details will
NOT be saved beyond the current session.
Ulster University, School of Computing
Academic Year: 2023/24
V1.0 Page 2 of 3
3. The program should contain a method called speak( ) that returns a typical animal noise, plus a
description of the animal such as ...
“Miaow! I am Pixel, a 4 year old tabby”, or
“Woof! I am Rex, a 9 year old terrier”.
4. The program needs to enable pets to be added to the clinics or deleted from the clinics. There is no
requirement to have any facility to modify pet details after they have been created.
Hint: deleting data from an array may leave a blank space in the array, so keep a count of the total
number of pets and search for the next free array cell when adding another pet.
5. It must be possible to report (i.e. print to the screen) on the clinic. This report should indicate the
clinics name which could be hard-coded, the total number of each type of pets registered and the
dominant color for these pets.
6. The program should allow the user to view all the pets currently registered at the clinic.
7. At the end of a session, when the program is being terminated, the clinics details along with the
details for each registered pet should be written to disk. These details should be recorded in two
standard text files: one containing clinics details (called “ClinicsDetails.txt”) and the other holding all
the pet records, to be called “PetDetails.txt”.
Hint: don’t save blank records to disk, check that there is a valid “pet” object in each array cell
before writing its contents to disk. If any of the fields within a pet’s details have been left blank
(string length of zero) then that student is invalid and their details should not be written to disk.
8. When the program is started, it should read from these standard text files to re-populate the
application with any previously stored data as a starting point.
Hint: each record requires a new instance of the Pet class to be created and linked to the next
available free cell in your array.
9. The program user must also be able to search for a pet by name or color, causing the sought pet’s
details to be displayed and its speak( )method to be called if present.
10. The program must employ a console interface only.
You must develop a set of test cases and at least one unit test and record the results of applying these tests
to your software.
• Other assignment requirements:
1. The adoption of object-oriented principles should be evident in your implementation of the above
requirements including the use of inheritance and polymorphism.
2. A structured approach to testing should be evidenced by submission of a test plan including at least
one unit test and outcomes in accordance with the above requirements.
Submission
Ulster University, School of Computing
Academic Year: 2023/24
V1.0 Page 3 of 3
• The following 3 deliverables must be submitted to Cloud Campus on or before noon, 12:00 on
Friday 1
st Dec 2023 (Week 12)
1. Source code – A Zip file containing all code developed for the application. The easiest way to
create this is to Zip the contents of the src folder of your Java project. Each Java file should also
be provided as a PDF document.
2. Design and Development Document – A PDF document that contains a written account of the
design and development decisions made during the development of your application. You
should provide evidence of the adoption of object-oriented principles and your consideration of
data structures and program control structures used with justification for your decisions.
3. Testing Document – A PDF document that describes the approach to testing and test cases
used. For each operation implemented such as add/delete/…, a screenshot of its output must
be included.
• In addition, you are required to give a brief demonstration of your solution to your teacher (Dr.
Yuexin Yang) after the submission. The arrangement of the demonstration will be released in due
course – Please note that your submission will not be awarded a mark unless a demo has taken
place.
Assessment Criteria:
• Structured, commented and readable code and appropriate use of variables (10%)
• Implementation of suitable program control structures, classes and methods to solve problem (25%)
• Program executes according to specification (30%)
• Structured approach to testing (20%)
• Design and planning document (15%)