Hello, dear friend, you can consult us at any time if you have any questions, add WeChat: daixieit

COM102 (Programming II - Java)

Coursework - Practical Skills Assessment 2

Title: Pet Clinics Management System

Due: Noon, 12:00 on Friday, 1st  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.

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, agecolour, 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.

3.   The program should contain a method called speak( ) that returns atypical 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 testcases 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

•    The following 3 deliverables must be submitted to Cloud Campus on or before noon, 12:00 on Friday 1st  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 testcases

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%)