Salve ragazzi,
vi chiedo una mano a concludere una traccia d esame.
Io l ho svolta tutta..mi manca solo l ordinamento delle date.
Questa è la traccia:
Un veterinario deve organizzare, per il suo ambulatorio, l’agenda giornaliera delle visite. Per semplicità si supponga che i clienti di tale ambulatorio siano solo cani e gatti. Si progetti la classe animale e da essa si derivino le classi cane e gatto come illustrato in figura.
La segretaria del veterinario riceve le prenotazioni telefonicamente ed immette da tastiera, su file sequenziale, in apposito record: il nome dell’animale, il tipo, la razza, l’età, la data della visita (senza l’ora per rendere le cose più semplici), il sesso ed il motivo. Alla fine della giornata la segretaria stampa la lista delle prenotazioni ricevute ordinate secondo la tabella seguente ( che deve essere l’output del vostro programma).
GIORNO NOME TIPO RAZZA SESSO ETA’ MOTIVO
17/6/2002 NEFERTITE GATTO EUROPEO F 5 VACCINAZIONE
18/6/2002 ROMINA CANE COCKER F 3 GRAVIDANZA
19/6/2002 FIDO CANE LEONBERGER M 2 VACCINAZIONE
19/6/2002 MINA GATTO CERTOSINO F 4 GRAVIDANZA
19/6/2002 SILVESTRO GATTO RAG DOLL F 1 FRATTURA
Se qualcuno mi può aiutare mi contatti via mail () e io gli allego il programma da me svolto. Grazie!!!!!
Vi metto il file.cpp del mio programma
#include <iostream>
#include <fstream>
#include <stdio.h>
#include "Ambulatorio.h"
#include <stdlib.h>
using namespace std;
Animale::Animale(){
inizializza_file();
}
Animale::~Animale(){
}
Cane::Cane(){
}
Cane::~Cane(){
}
Gatto::Gatto(){
}
Gatto::~Gatto(){
}
void Animale::inizializza_file(){
char intro[100]="nome tipo razza sesso età motivo";
FILE *file;
file = fopen("ambulatorio.txt","w");
if (file != NULL){
fprintf (file,"%s",intro);
}
fclose(file);
}
void Animale::tipo_animale(){
strcpy(tipo,"a");
cout << "inserisci il punto per terminare...\n";
while(strcmp(tipo,".")){
cout<< "\n inserisci il tipo di animale" << endl;
cin>>tipo;
if (!strcmp(tipo,"cane")){
Cane cane;
cane.inserisci_dati(tipo);
cane.scrivi_su_file();
}else if(!strcmp(tipo,"gatto")){
Gatto gatto;
gatto.inserisci_dati(tipo);
gatto.scrivi_su_file();
}//fine if
}//fine while
}//fine funzione
void Cane::inserisci_dati(char tipo[]){
cout<< " come si chiama? " <<endl;
cin>> nome;
cout<< " che razza è? " <<endl;
cin>> razza;
int x = inserisci_sesso();
cout<< " quanti anni ha? " <<endl;
cin>> eta;
char c[15];
itoa(eta,c,10);
cout<< " qual è il motivo "<<endl;
cin>> motivo;
strcat(dati,"\n");
strcat(dati,nome);
strcat(dati," ");
strcat(dati,tipo);
strcat(dati," ");
strcat(dati,razza);
strcat(dati," ");
if(x == 1)
strcat(dati,"M");
else strcat(dati,"F");
strcat(dati," ");
strcat(dati,c);
strcat(dati," ");
strcat(dati,motivo);
cout<<dati;
}//fine funzione
void Gatto::inserisci_dati(char tipo[]){
cout<< " come si chiama? " <<endl;
cin>> nome;
cout<< " che razza è? " <<endl;
cin>> razza;
int x = inserisci_sesso();
cout<< " quanti anni ha? " <<endl;
cin>> eta;
char c[15];
itoa(eta,c,10);
cout<< " qual è il motivo "<<endl;
cin>> motivo;
strcat(dati,"\n");
strcat(dati,nome);
strcat(dati," ");
strcat(dati,tipo);
strcat(dati," ");
strcat(dati,razza);
strcat(dati," ");
if(x == 1)
strcat(dati,"M");
else strcat(dati,"F");
strcat(dati," ");
strcat(dati,c);
strcat(dati," ");
strcat(dati,motivo);
cout<<dati;
}//fine funzione
void Animale::scrivi_su_file(){
FILE *file;
file = fopen("ambulatorio.txt","a");
if (file != NULL){
fprintf (file,"%s",dati);
}//fine if
fclose(file);
}//fine funzione
int Animale::inserisci_sesso(){
char value[]= "g";
while (strcmp(value,"m") && strcmp(value,"f")){
cout<< "inserisci m o f"<<endl;
cin>> value;
}//fine while
if (!strcmp(value,"m"))
sesso=1;
else sesso=0;
return sesso;
}
void Animale::stampa(){
FILE *file;
file = fopen("ambulatorio.txt","r");
while(!feof(file)){
fgets(dati,100,file);
puts(dati);
}//fine while
fclose(file);
}