Jun 7, 2009 at 11:05pm UTC
// zoo1.cpp
#include <iostream>
#include "zoo.h"
#include <stdlib.h>
#include <string.h>
using namespace std;
/// 1.a mostrar os animais existentes
void Zoo::imprimirAnimais(ostream &os)
{
vector<Animal>::iterator iterador = animais.begin();
while (iterador != animais.end())
{
os << *iterador;
iterador++;
}
os << endl;
}
/// 1.b registar animal
int Zoo::numAnimais = 0;
void Zoo::registarAnimal(Animal an)
{
animais.push_back(an);
numAnimais++;
}
/// 1.c remover animal
void Zoo::removerAnimal (char * umNome)
{
vector<Animal>::iterator iterador = animais.begin();
while (iterador != animais.end())
{
Animal an = *iterador;
if (strcmp(umNome, an.getNome()) == 0)
{
animais.erase(iterador);
cout << endl;
numAnimais--;
return;
}
iterador++;
}
cout << "\nNão há animal chamado " << umNome << endl;
}
/// 1.d abre zoo... experimentar com os animais do ficheiro animais.txt
void Zoo::abreZoo(istream & is)
{
string especie, nomeA, nomeV, espV, sexoStr, idadeStr;
bool sexo;
int idade;
while (!is.eof())
{
///
/// a leitura linha a linha garante que só são incluidos
/// animais completamente definidos no ficheiro
///
getline(is, especie);
if (especie.size() == 0)
return;
getline(is, sexoStr);
if (sexoStr.size() == 0)
return;
sexo = atoi(sexoStr.c_str());
getline(is, nomeA);
if (nomeA.size() == 0)
return;
getline(is, idadeStr);
if (idadeStr.size() == 0)
return;
idade = atoi(idadeStr.c_str());
getline(is, nomeV);
if (nomeV.size() == 0)
return;
getline(is, espV);
if (espV.size() == 0)
return;
Animal animal(especie, sexo, (char*)nomeA.c_str(), idade, Veterinario(nomeV, espV));
registarAnimal(animal);
}
}
/// 1.e escrever a função zoo::getNumAnimais() quantos animais tem no zoo
int Zoo::getNumAnimais()
{
return numAnimais;
}
/// 1.f quantos animais tem de dada especie
int Zoo::contarEspecie(string esp)
{
int contador = 0;
vector<Animal>::iterator iterador = animais.begin();
while (iterador != animais.end())
{
if ((*iterador).getEspecie() == esp)
{
contador++;
}
iterador++;
}
return contador;
}
/// 1.g conjunto dos animais fêmea
vector<Animal> Zoo::animaisFemea()
{
vector<Animal> femeas;
vector<Animal>::iterator iterador = animais.begin();
while (iterador != animais.end())
{
if ((*iterador).getSexo() == 0)
{
femeas.push_back(*iterador);
}
iterador++;
}
return femeas;
}
Jun 7, 2009 at 11:38pm UTC
If you are hoping for help. Plz post error messages as well.
Jun 8, 2009 at 7:05am UTC
and please, use [ code][/code]...