57 lines
1.9 KiB
C
57 lines
1.9 KiB
C
#ifndef ADMINISTRATION_H
|
|
#define ADMINISTRATION_H
|
|
|
|
#include <stddef.h>
|
|
|
|
#include "animal.h"
|
|
|
|
|
|
/* pre : animalArrayLength must be greater than numberOfAnimalsPresent
|
|
* post : animalArray is updated with the information from animalPtr, the
|
|
* updated number of animals is passed in newNumberOfAnimalsPresent returns: 0
|
|
* on success or -1 if an error occurs
|
|
*/
|
|
int addAnimal(
|
|
const Animal* animalPtr, Animal* animalArray,
|
|
size_t animalArrayLength, size_t numberOfAnimalsPresent,
|
|
size_t* newNumberOfAnimalsPresent);
|
|
|
|
/* pre :
|
|
* post : All animals with id 'animalId' are removed from AnimalArray, the
|
|
* updated number of animals is passed in newNumberOfAnimalsPresent returns: The
|
|
* number of removed animals, 0 if no animals removed or -1 if an error occurs
|
|
*/
|
|
int removeAnimal(
|
|
int animalId, Animal* animalArray,
|
|
size_t numberOfAnimalsPresent,
|
|
size_t* newNumberOfAnimalsPresent);
|
|
|
|
/* pre :
|
|
* post : The first animal from animalArray with id 'animalId' is copied into
|
|
* animalPtr returns: 1 on success, 0 if not found or -1 if an error occurs
|
|
*/
|
|
int findAnimalById(
|
|
int animalId, const Animal* animalArray,
|
|
size_t numberOfAnimalsPresent, Animal* animalPtr);
|
|
|
|
/* pre :
|
|
* post : All animals in animalArray are sorted by age
|
|
* returns: 0 on success or -1 if an error occurs
|
|
*/
|
|
int sortAnimalsByAge(Animal* animalArray, size_t numberOfAnimalsPresent);
|
|
|
|
/* pre :
|
|
* post : All animals in animalArray are sorted by the year in which they were
|
|
* found returns: 0 on success or -1 if an error occurs
|
|
*/
|
|
int sortAnimalsByYearFound(
|
|
Animal* animalArray, size_t numberOfAnimalsPresent);
|
|
|
|
/* pre :
|
|
* post : All animals in animalArray are sorted: first female animals and then
|
|
* male animals returns: 0 on success or -1 if an error occurs
|
|
*/
|
|
int sortAnimalsBySex(Animal* animalArray, size_t numberOfAnimalsPresent);
|
|
|
|
#endif
|