CARIBBEAN EXAMINATIONS COUNCIL
CARIBBEAN ADVANCED PROFICIENCY EXAMINATION
COMPUTER SCIENCE - UNIT 2
INTERNAL ASSESSMENT
CANDIDATE NAME: NICKOLAI NEWMAN
CANDIDATE REGISTRATION NUMBER: 1000161029
NAME OF CENTRE: CAMPION COLLEGE
CENTRE NUMBER: 100016
TEACHER: MR. D. DALEY
TERRITORY: JAMAICA
SUBMISSION YEAR: 2025
2
Table of Contents
Specification of Requirements
Background
3
3
Definition of Problem
Problem Statement
Significance of the Problem
Description of the Problem
Functional Solutions
Non-Functional Solutions
Potential Challenges
5
5
5
6
7
7
8
Techniques of Analysis Used
9
Use of Data Flow Diagrams and ER Diagrams
Data Flow Diagrams
Context Level Diagram
Level O DFD
Entity Relation Diagram (ERD)
10
10
10
11
12
Functional and Nonfunctional Requirements
Functional Requirements
Nonfunctional Requirements
13
13
13
Design Specification
System Structuring
User Interface Design
Report Design
Algorithm
Choice of Appropriate Data Structures
15
15
18
21
22
28
Coding and Testing
Code
Test Plans
33
32
38
Appendix
44
3
Specification of Requirements
Background
The Jamaica Society for the Prevention of Cruelty to Animals (JSPCA) has been working
in Jamaica for more than a hundred years, to protect animals from cruelty, neglect, injury and
abandonment, and to defend and promote animal rights. It operates a shelter at 10 Winchester
Road, Kingston 10, and a veterinary clinic, open to the public, which also deals with more than
three hundred charity cases per week. It is equipped with a laboratory, surgical suites, isolation
unit and maternity ward. In addition, it has a mobile clinic which is currently stationed on
weekends in the fast-growing metropolis of Portmore. The mission is to promote the
compassionate treatment of animals through education, advocacy, veterinary care, and the
placing of unwanted animals in loving homes. JSPCA was founded by Lady Lumb and has been
in operation since 1904. The managing director Pamela Neita-Lawson, has been with the JSPCA
for over twenty-two years. It currently has over 35 full-time employed members of staff.
One of the services provided by the JSPCA is that of an animal shelter. It operates as a
facility that provides care and temporary housing for homeless, abandoned, or surrendered
animals. The JSPCA plays a vital role in caring for animals by providing medical attention,
shelter, documentation, and coordination with various stakeholders to ensure the best possible
outcome for these animals. All records are documented in physical files and folders and stored in
filing cabinets. When animals are brought to the shelter, the staff creates a physical file that
documents all of the information on that animal. The file is managed by numerous persons from
each section that deals with the animal. Detailed records are kept for each animal, including
information on vaccinations, medical treatments, behaviour assessments, and any relevant
history. This process begins with the shelter staff who would assess the animals’ health,
4
behaviour, and temperament upon admission. An identification number is assigned for each
animal to track their progress through the shelter. The identification number is written on the
front of the paper folder.
Animals are typically housed in kennels or cages designed to provide them with shelter,
comfort, and safety. Shelter staff and volunteers provide food, water, and social interaction to
keep the animals healthy and mentally stimulated. Enrichment activities, such as playtime, toys,
and exercise, are often provided to improve the animals’ well-being. Animals that are deemed
adoptable are made available for adoption to the public, unfortunately, not all animals can be
placed in adoptive homes due to health or behavioural issues. The shelter may have to make
difficult decisions regarding euthanasia, often as a last resort and with careful consideration of
the animal’s welfare. Each time the animal is assessed the information is documented in the
folder by the staff on duty at the time. A cost for the maintenance and care of each animal is also
documented and receipts are attached to the folder. At the time of adoption or euthanasia, a
report is manually completed based on the information in the folder.
5
Definition of Problem
Problem Statement
The research aims to assist the operations of the JSPCA with the management of a system
to deal with the animals that are brought to the shelter on a daily basis. The key issues in the
present system are:
● The paper records are typically stored in physical files, making them inaccessible. Staff
may need to physically search for and retrieve documents, leading to delays in
decision-making and response times.
● Paper records are often duplicated, leading to multiple copies of the same information.
This redundancy can be confusing and increase the risk of errors and data inconsistency.
● Paper records are susceptible to damage from water, fire, pests, and wear and tear.
● Paper records are challenging for filing purposes which will not allow for an easier search
and to sort through efficiently as this is time-consuming and requires manual effort.
● Making updates or corrections to paper records can be cumbersome. Staff must manually
alter/correct or write in current information, increasing the risk of errors which can lead
to inaccuracy of data.
● Tracking the history and status of animals can be inaccurate due to manual
record-keeping, potentially leading to errors in health care, adoption, and severe
outcomes.
Significance of the Problem
The problem is important to solve because:
● Generating reports and statistics from paper records is time-intensive and prone to errors.
6
● Storing large volumes of paper records requires physical space. The shelter has limited
space, and paper records can lead to clutter and storage challenges.
● Sharing paper records among staff members or departments can be slow and inefficient.
● Paper-based adoption processes involve excessive paperwork and manual approvals,
potentially discouraging potential adopters and delaying adoptions.
Description of the Problem
The research aims to assist the operations of the JSPCA with the management of a system
to deal with the animals that are brought to the shelter on a daily basis. The key issues in the
present system are:
● The paper records are typically stored in physical files, making them inaccessible. Staff
may need to physically search for and retrieve documents, leading to delays in
decision-making and response times.
● Paper records are often duplicated, leading to multiple copies of the same information.
This redundancy can be confusing and increase the risk of errors and data inconsistency.
● Paper records are susceptible to damage from water, fire, pests, and wear and tear.
● Paper records are challenging for filing purposes which will not allow for an easier search
and to sort through efficiently as this is time-consuming and requires manual effort.
● Making updates or corrections to paper records can be cumbersome. Staff must manually
alter/correct or write in current information, increasing the risk of errors which can lead
to inaccuracy of data.
● Generating reports and statistics from paper records is time-intensive and prone to errors.
7
● Storing large volumes of paper records requires physical space. The shelter has limited
space, and paper records can lead to clutter and storage challenges.
● Sharing paper records among staff members or departments can be slow and inefficient.
● Paper-based adoption processes involve excessive paperwork and manual approvals,
potentially discouraging potential adopters and delaying adoptions.
● Tracking the history and status of animals can be inaccurate due to manual
record-keeping, potentially leading to errors in health care, adoption, and severe
outcomes.
Functional Solutions
The project aims to be able to allow the system to:
● Maintain digital records of animals, including their species, breed, age, medical history,
and adoption status.
● Enable staff to input adoption applications electronically and track the status of
adoptions.
● Record information about animals entering the shelter, such as reasons for surrender,
health assessments, and vaccinations.
● Maintain medical records, prescriptions, and treatment plans for each animal.
● Set reminders for vaccinations and medical appointments.
● Keep track of shelter supplies, including food, bedding, and medical supplies.
Non-functional Solutions
● Measures in place to protect sensitive information about animals and adopters.
8
● The system should handle an increasing volume of animal records, adoptions, and user
interactions.
● The system should respond quickly to user queries and requests.
● Ensure the system is available and dependable 24/7 to accommodate emergencies and
animal care needs.
● The system should be user friendly and allows staff and volunteers to easily navigate and
use the system.
● System’s functions should be organised using menus.
Potential Challenges
Some challenges that may arise during this project are:
● Employees may be reluctant in moving to a new system of entering and saving
information.
● The possibility of technological issues and costs to maintain the system.
● Lack of or poor training of employees
9
Techniques of Analysis Used
A range of data collection methods were used to gather the necessary information to
assess the problem. An in-depth interview was conducted with the managing director, Pamela
Neita-Lawson, thus revealing a few problems with the current paper-based system in place.
Some of the staff were also interviewed to examine the problems and challenges with the system.
The interview was the best instrument to use as it provided useful information from the
interviewee. Unfortunately, since there are 35 full-time employees, the number of interviews had
to be limited due to the amount of time being taken to do interviews. However, the remaining
employees were surveyed with a questionnaire, to gather their own input with the current system.
This gave us an insight into quantifying’ which features are most important to the majority of
users. A certified individual was present as support for each respondent in case they needed to
have any queries addressed.
During this phase, the staff’s workflow was observed to gain an understanding of how
paper-based records are used in real-time situations. This was able to help uncover problems they
may not articulate during interviews, such as the physical limitations of the filing system or
interruptions caused by having to leave their stations to retrieve files. The information collected
was used to create new requirements specifications.
10
Use of Data Flow Diagrams and ER Diagrams
Data Flow Diagrams (DFD)
Context Level Diagram
11
Level 0 DFD
12
Entity Relation Diagram (ERD)
13
Functional and Nonfunctional Requirements
Functional Requirements
● The system should allow staff to store all animal records in a centralized, digital format,
eliminating the need for physical files.
● The system must provide advanced search capabilities, allowing staff to quickly and
accurately retrieve records based on various criteria
● Staff should be able to enter new records and update existing records easily, with
real-time changes reflected throughout the system.
● The system should include validation checks to prevent duplicate entries and ensure
consistency and accuracy of the data.
● Implement user roles that define different levels of access. For example, administrators
can view and edit all data, while volunteers can have restricted access based on their
duties.
Non-Functional Requirements
● The system must handle large volumes of data efficiently, ensuring quick response times
for searching and updating records
● Ensure that all data, particularly sensitive animal medical records, are protected with
encryption and secure login mechanisms
● The system should have an intuitive, user-friendly interface, ensuring that even
non-technical staff can easily navigate and operate the system.
14
● The system should be available 99.9% of the time, ensuring it is accessible during peak
operational hours
● The system must ensure that data entered and stored is consistent and accurate, with
mechanisms in place to detect and resolve any potential issues.
15
Design Specification
System Structuring
Structured Chart
16
HIPO Chart
Animal Records Management: This function tracks animals that enter the shelter. It ensures that
records are digital and easily accessible.
Entry & Updates: This allows the staff to add new animals to the system and update existing
records.
Search & Reports: This enables staff to retrieve information using various filters quickly.
History Tracking: This allows the staff to Maintain a log of all past interactions with each
animal, ensuring accurate record-keeping.
Adoption System: This function manages the adoption process to make it efficient and less
paper-dependent.
Applications: This digitally stores adoption applications submitted by potential adopters.
Approvals: This allows staff to review applications, verify applicant eligibility, and approve or
reject them.
Status Updates: This allows the staff to keep track of whether an adoption is pending, approved,
or completed, and records adoption agreements.
Medical Records Management: This function tracks the health and medical history of each
animal in the shelter.
Health Tracking: This records details about vaccinations, medical assessments, and treatments.
Reminders: This sends notifications to staff about upcoming vaccinations and medical
check-ups.
Treatment Plans: This stores prescriptions, medical notes, and care plans for each animal.
Inventory & Supplies Management: This function monitors the shelter’s resources, ensuring they
are well-stocked and efficiently used.
17
Supplies Tracking: This keeps an updated list of food, bedding, and medical supplies.
Order Management: This helps staff request new supplies when stock is low.
Usage Monitoring: This tracks how quickly supplies are used, preventing shortages.
18
User Interface Design
The JSPCA Digital Management System is designed with a graphical user interface that
ensures an intuitive and efficient interaction experience for staff and volunteers. The system is
presented in a tab-based layout, allowing users to easily navigate between different modules,
such as Animal Records, Adoptions, Medical Records, and Inventory Management. This type of
interface requires minimal training to use, making it ideal for computer novices such as the
employees at JSPCA. The images below show mockups for the user interface.
Login Screen
Home Screen
19
Animal Records Screen
Adoptions Screen
20
Medical Records Screen
Inventory Screen
21
Report Design
This screen displays the JSPCA Digital Management System Receipt, allowing users to
generate a summary report of transactions or services related to the organization. The receipt
includes key details such as the date and time of the transaction, the total cost, and a thank-you
message for the user's contribution.
22
Algorithm
Declare AnimalPatient structure:
age as integer
animalpatientname[30] as char
species[20] as char
breed[20] as char
healthHistory[500] as char
adoption_status[25] as char
Declare Staff structure:
staffID as integer
firstName[30] as char
lastName[30] as char
role[25] as char
contactInfo[50] as char
Declare Adopter structure:
adopterID[10] as char
name[50] as char
address[100] as char
phone[15] as char
preferredSpecies[20] as char
Declare MedicalRecord structure:
recordID[10] as char
animalID[10] as char
diagnosis[100] as char
treatment[100] as char
vetInCharge[30] as char
Declare ShelterInventory structure:
foodUnits as integer
beddingUnits as integer
medicalSupplies as integer
lastUpdatedBy[30] as char
Declare AnimalPatient structure:
age as integer
animalpatientname[30] as char
species[20] as char
breed[20] as char
healthHistory[500] as char
adoption_status[25] as char
23
Declare
age as integer
animalpatientname[30] as char
species[20] as char
breed[20] as char
healthHistory[500] as char
adoption_status[25] as char
I←0
Declare
Login as int
addAnimal as int
generateAnimalID as int
AdoptionApplications as int
updateShelterSupplies
Menu as int
Begin
Print"---------------------------------------------------"
Print"Welcome to JSPCA Management System"
Print"---------------------------------------------------"
Function Login():integer
Print "Enter your First Name: "
Read name
Print "Hello [name], Enter your password (8 characters):"
Read password
Display "********"
End
Begin
24
Declare
species[20] as char
breed[20] as char
healthHistory[500] as char
animalpatientname[30] as char
age as integer
choice as integer
Open file ‘JSPCA_Data’ in write and read mode
If file is non-existent
Then
Print “Unable to open file.”
Else
Print "Please enter the species of the animal"
Read species
Print "Please enter the breed of the animal"
Read breed
Print "Please enter the age of the animal"
Read age
Print "Please enter the health history of the animal"
Read healthHistory
Print "Please enter the adoption status as available or pending"
Read adoption _status
Write in file ‘JSPCA_Data.txt’
Print “ Species: Breed:
Print “Press 1 to add another animal or 2 to stop”
Read choice
While choice <>2 And i<50
Close file
End
Begin
Age:
Health History:
Name: “
25
Declare animalID[10] as char
Declare counter←0 as integer
c+1=c
Print “AN “
Print “Generated Animal ID: “
Begin
Declare
applicantName[50] as char
animalID[10] as char
availableAnimalID[] as char
Print “Please enter the name of the adoption applicant”
Read applicantName
Print ‘Pleaseenter teh ID of the animal for adoption: “
Read animaID
If animalID and availableAnimalID= 0
Then
Print “Adoption application submitted successfully for wanting to adopt “
Else
Print “Sorry the selected animal is not available for adoption or
does not exist.”
End
Begin
Declare
26
food, bedding, medical_supplies as integer
Create file
Open file ‘shelter_Supplies.txt’ in write mode
Print "Please update the amount of food for animals"
Read food
Print "Please update the amount of bedding for animals"
Read bedding
Print "Please update the amount of bedding for animals"
Read medical_supplies
Write to file
Print to file “Food available: units”
Print to file “Bedding available: units”
Print to file “Medical supplies available: units”
Print "Shelter supplies availability has been updated successfully."
End
End
Function Menu ():integer
Declare choice as int
Print “Main Menu Options”
Print “ 1. Add Animal”
Print “2. Generate Animal Identification”
Print “3. Adopt Animal”
Print “4. Check Shelter Supplies”
Print “5. Exit”
Print "Enter choice to proceed: "
Read choice
Docase(choice)
27
Case 1: addAnimal()
Case 2: generateAnimalID()
Case 3: AdoptionApplications()
Case 4: updateShelterSupplies()
Case 5: Print “Exiting….”
default: Print “Invalid choice, please try again.”
While choice <> 5
Endcase
28
Choice of Appropriate Data Structures
Data Structure and Records
Struct Staff is a record that stores information about each JSPCA employee and volunteer that is
registered in the system.
Field
Data Type
Purpose
staffID
int
Unique ID for each staff
member
firstname
string
Stores the staff member’s first
name
lastname
string
Stores the staff member’s last
name
role
string
Describes the staff’s role
contactInfo
string
Stores the staff member’s
phone/email for
communication
Table 1
Struct Adopter is a record that stores information about individuals interested in adopting
animals.
Field
Data Type
Purpose
adopterID
string
Unique ID for the adopter
name
string
Name of the potential adopter
address
string
Personal address of the
adopter
phone
string
Personal phone number of the
adopter
Table 2
29
Struct MedicalRecord is a record that stores health related information for animals in the JSPCA.
Field
Data Type
Purpose
recordID
string
A unique ID for the medical
record
animalID
string
A unique ID for a particular
animal in the shelter
diagnosis
string
Describes the animal’s
medical condition
treatment
string
Outlines medications,
procedures, or other
treatments performed
staffincharge
string
Names the staff responsible
for the animal’s care
Table 3
Struct Inventory is a record that tracks essential items needed for operations.
Field
Data Type
Purpose
foodUnits
int
Current number of food units
available
beddingUnits
int
Number of bedding units for
animals
medicalSupplies
int
Quantity medical-related
items
lastUpdated
string
Tracks which staff member
and when they updated the
inventory record last
Table 4
The Abstract Data Type (ADT) implemented within the JSPCA Digital Management
System is the Queue. A queue is a linear data structure that operates in a First In, First Out
(FIFO) manner, meaning the first item added is the first to be processed or removed. This
30
structure is particularly suited for managing the flow of animals entering and exiting the shelter,
as animals are received and treated in the order they arrive.
The Data Structure that is implemented is a Linked List, used for storing dynamic records
within the JSPCA system. A linked list is a collection of nodes, each containing data and a
reference to the next node. It is suitable for data that changes frequently and requires insertion
and deletion at various points. Since animals are added to or removed from the shelter regularly,
a linked list allows flexible and efficient updates.
31
Test Plans
Test Plan
#
Input
Screen/Functionality
Input
Purpose of Test
Expected Result
1
main()
No user input
Ensure the
program starts
correctly, prints
a welcome
banner, then
calls Login()
followed by
Menu().
Console shows the welcome
message (“Welcome to
JSPCA...”). Flow proceeds to
Login and then Menu once
credentials are entered.
2
Login()
1) Username
‘2) Password (exactly 8
chars)
Check the login
process: user
enters a valid
first name and a
password of
length 8, after
which control
returns to
main().
Prompts “Enter your First
Name” and “Enter your
password (8 characters).”
Hides/masks password or
prints “********”, then
returns flow to main().
3
Menu()
1, 2, 3, 4, or 5
Verify each
menu option
triggers the
correct function
call and exits on
option 5.
1 -> addAnimal(),
2 -> generateAnimalID(),
3 -> AdoptionApplications(),
4 -> updateShelterSupplies(),
5 -> “Exiting...” and program
ends.
4
addAnimal()
1) species
2) breed
3) age,
4) healthHistory
5) animalpatientname
Ensure animal
details are
collected and
appended to
JSPCA_Data.txt.
The user can add
multiple animals
until choosing 2
to stop.
For each entry, prompts
appear in order, and then data
is written to the file. If the
user selects “2” or 50 animals
are reached, the function
stops.
5
generateAnimalID()
No user input
Verify it
increments a
counter and
prints an ID like
Console prints “Generated
Animal ID: ANX” with X
incrementing each call.
32
AN1, AN2,
AN3...
6
AdoptionApplications()
1) Applicant name
2) Valid Animal ID
Check the
system validates
that AN1 is
available, then
prints a success
adoption
message.
If animalID == AN1, prints
“Adoption application
submitted successfully…”
including the applicant name
and ID.
7
updateShelterSupplies() 1) food quantity
2) bedding quantity
3) medical_supplies
quantity
Check that the
user inputs
integers for each
supply and the
data is written to
shelter_Supplies.
txt.
Console prompts for each
supply. If given valid integers,
writes lines “Food available:
X units” etc. to file, then
prints a success message.
8
addAnimal()
Validate the
do/while
structure: adding
multiple animals
until user
chooses 2 or the
array’s limit (50)
is reached.
Continues to prompt for new
animals; if user picks 2,
function stops. If 50 entries
are reached, the function
prevents more entries to avoid
overflow.
1) Enter up to 50 animals
sequentially
2) Enter “2” to stop early
33
Coding and Testing
C Code
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
// Staff: Stores JSPCA employees/volunteers
struct Staff {
int staffID;
char firstName[30];
char lastName[30];
char role[25];
// e.g., Veterinarian, Volunteer, Admin
char contactInfo[50]; // phone or email
};
// Adopter: Stores potential adopters’ details
struct Adopter {
char adopterID[10];
char name[50];
char address[100];
char phone[15];
};
// MedicalRecord: Tracks health data for shelter animals
struct MedicalRecord {
char recordID[10];
char animalID[10];
char diagnosis[100];
char treatment[100];
char staffInCharge[30];
};
// ShelterInventory: Monitors critical shelter supplies
struct ShelterInventory {
int foodUnits;
int beddingUnits;
int medicalSupplies;
char lastUpdated[30]; // Staff member who last updated inventory
};
struct AnimalPatient {
int age;
34
char animalpatientname[30];
char species[20];
char breed[20];
char healthHistory[500];
char adoption_status[25];
} animalpatient[50]; // Array to hold up to 50 animal records
int i = 0;
// Functions
int Login(void);
int addAnimal(void);
int generateAnimalID(void);
int AdoptionApplications(void);
int updateShelterSupplies(void);
int Menu(void);
int main()
{
printf("\t\t\t\t----------------------------------\n");
printf("\t\t\t\tWelcome to JSPCA Management System\n");
printf("\t\t\t\t-----------------------------------\n");
Login();
Menu(); // After login, show the main menu
return 0;
}
int Login(void)
{
char name[25], password[8];
printf("\nEnter your First Name: \n");
scanf("%s", name); // Protect against buffer overflow
printf("Hello %s, Enter your password (8 characters):\n", name);
scanf("%s", password); // Read the password (leaving space for null terminator)
printf("\n********\n"); // Indicate password entry completion
return 0;
}
int addAnimal()
{
char species[30], breed[30], healthHistory[400], animalpatientname[30];
int age;
FILE *patfile;
35
int choice;
patfile = fopen("JSPCA_Data.txt", "a"); // Corrected file name and mode
if (patfile == NULL) {
printf("Unable to open file.\n");
return -1;
}
do {
printf("\nEnter the species of animal: ");
scanf("%s", animalpatient[i].species);
printf("\nEnter the breed of the animal: ");
scanf("%s", animalpatient[i].breed);
printf("\nEnter the age of the animal: ");
scanf("%d", &animalpatient[i].age);
printf("\nEnter the health history of the animal: ");
scanf("%s", animalpatient[i].healthHistory);
printf("Enter name of Animal Patient: ");
scanf("%s", animalpatient[i].animalpatientname);
// Writing to file
fprintf(patfile, "Species: %s\nBreed: %s\nAge: %d\nHealth History: %s\nName: %s\n\n",
animalpatient[i].species, animalpatient[i].breed, animalpatient[i].age,
animalpatient[i].healthHistory, animalpatient[i].animalpatientname);
printf("\nPress 1 to add another animal or 2 to stop: ");
scanf("%d", &choice);
i++; // Increment the global animal counter
} while(choice != 2 && i < 50); // Prevents overflow of animalpatient array
fclose(patfile); // Close the file
return 0;
}
int generateAnimalID()
{
char animalID[10];
int counter=0;
counter++; // Increment the counter to get a new animal ID for each animal
sprintf(animalID, "AN%d", counter); // Generate the animal ID
printf("Generated Animal ID: %s\n", animalID); // Show the generated animal ID
}
int AdoptionApplications()
{
char applicantName[50];
char animalID[10];
36
char availableAnimalID[] = "AN1";
printf("Please enter the name of the adoption applicant: ");
scanf("%s", applicantName);
printf("Please enter the ID of the animal for adoption: ");
scanf("%s", animalID);
if (strcmp(animalID, availableAnimalID) == 0)
{
printf("Adoption application submitted successfully for %s wanting to adopt %s.\n",
applicantName, animalID);
}
else {
printf("Sorry, the selected animal is not available for adoption or does not exist.\n");
}
}
int updateShelterSupplies(void)
{
int food,bedding, medical_supplies;
FILE *file;
file = fopen("shelter_Supplies.txt", "w");
// Prompt the user for the current amount of supplies available
printf("Please enter the current amount of food available (in units): ");
scanf("%d", &food);
printf("Please enter the current amount of bedding available (in units): ");
scanf("%d", &bedding);
printf("Please enter the current amount of medical supplies available (in units): ");
scanf("%d", &medical_supplies);
// Write the current available amounts to the file
fprintf(file, "Food available: %d units\n", food);
fprintf(file, "Bedding available: %d units\n", bedding);
fprintf(file, "Medical supplies available: %d units\n", medical_supplies);
fclose(file);
printf("Shelter supplies availability has been updated successfully.\n");
}
int Menu(void)
37
{
int choice;
do {
printf("\n# MAIN MENU #\n");
printf("1. Add Animal\n");
printf("2. Generate Animal Identification\n");
printf("3. Adopt Animal\n");
printf("4. Check Shelter Supplies\n");
printf("5. Exit\n");
printf("#--------------------------#\n");
printf("* Enter choice to proceed: *\n");
printf("#--------------------------#\n");
scanf("%d", &choice);
switch (choice) {
case 1:
addAnimal(); // Calls add animal function
break;
case 2:
generateAnimalID(); // Calls generate animal ID function
break;
case 3:
AdoptionApplications(); // Placeholder function call
break;
case 4:
updateShelterSupplies();
break;
case 5:
printf("Exiting...\n");
break;
default:
printf("Invalid choice, please try again.\n");
break;
}
} while (choice != 5);
return 0;
}
38
Testing
Correct Data Inputted
39
40
41
42
43
Erroneous Data Examples Inputted
44
Appendix
Questionnaire for JSPCA staff/volunteers
1. Please state your role at JSPCA
________________________________________________________________________
2. How long have you been working or volunteering at the JSPCA?
________________________________________________________________________
3. Before the new digital system was introduced, how were records typically managed at the
JSPCA?
________________________________________________________________________
________________________________________________________________________
4. Given the improvements in record-keeping, do you believe you and your colleagues can
provide faster, more accurate care and services for the animals?
________________________________________________________________________
________________________________________________________________________
5. Would you recommend the full adoption of this digital system to other animal shelters,
and do you plan to continue your service with the JSPCA under this new system?
________________________________________________________________________
________________________________________________________________________
Thank You for Taking Time to Fill Out the Questionnaire. Your Responses Are Much Valued
0
You can add this document to your study collection(s)
Sign in Available only to authorized usersYou can add this document to your saved list
Sign in Available only to authorized users(For complaints, use another form )