[Corsopoc] Esercizi

Antonello Paoletti anto.paoletti@vizzavi.it
Sat, 14 Dec 2002 23:09:57 +0100


Messaggio a pił sezioni in formato MIME.

------=_NextPart_000_0070_01C2A3C5.EB8BFCE0
Content-Type: multipart/alternative;
	boundary="----=_NextPart_001_0071_01C2A3C5.EB8BFCE0"


------=_NextPart_001_0071_01C2A3C5.EB8BFCE0
Content-Type: text/plain;
	charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable

Ho provato a buttare gi=F9 qualche riga in C++
che vi pare ?

------=_NextPart_001_0071_01C2A3C5.EB8BFCE0
Content-Type: text/html;
	charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable

<!DOCTYPE HTML PUBLIC "-//W3C//DTD W3 HTML//EN">






Ho provato a buttare giù qualche riga in=20 C++
che vi pare ?
------=_NextPart_001_0071_01C2A3C5.EB8BFCE0-- ------=_NextPart_000_0070_01C2A3C5.EB8BFCE0 Content-Type: application/octet-stream; name="OrologioBase.cpp" Content-Transfer-Encoding: quoted-printable Content-Disposition: attachment; filename="OrologioBase.cpp" #include #include class Time { // classe di = definizione del tipo Time public: // INTERFACCIA = PUBBLICA int h,m,s; // dichiaro le var = per le ore minuti e secondi }; class OrologioBase { // classe di = definizione dell'oggetto Orologio public: // INTERFACCIA = PUBBLICA =20 OrologioBase (char *p){ // costruttore possessore =3D p; // setto il nome = del possessore } void set (Time t) { // metodo per il = settaggio dell'orario if ((t.h>=3D0) && (t.h<25)) // Controllo che = t.h rientri nel range [0,24] tempo.h =3D t.h; // assegno il = valore dell'ora else tempo.h =3D 0; // ora inesatta if ((t.m>=3D0) && (t.m<61)) // Controllo che = t.m rientri nel range [0,60] tempo.m =3D t.m; // assegno il = valore del minuto else tempo.m =3D 0; // minuto inesatto if ((t.m>=3D0) && (t.m<61)) // Controllo che = t.s rientri nel range [0,60] tempo.s =3D t.s; // assegno il = valore del secondo else tempo.s =3D 0; // secondo inesatto } void add (int minuti) { // metodo per = l'incremento dei minuti if (minuti >=3D 0) // Controllo che = l'incremento sia positivo o nullo tempo.m+=3Dminuti; // aumento i minuti if (tempo.m >=3D 60) { // Se minuti > 60 tempo.h++; // incremento l'ora tempo.m -=3D 60; // riporto i minuti = in mod 60 } tempo.h =3D tempo.h % 24; // riporto le ore = in mod 24 } =20 void substract (int minuti) { // metodo per il = decremento dei minuti=20 if (minuti >=3D 0)=20 tempo.m-=3Dminuti; // Controllo che il = decremento sia positivo o nullo if (tempo.m < 0) { // Se il minuti < 0 tempo.h--; // decremento l'ora tempo.m +=3D 60; // riporto i minuti = in mod 60 } tempo.h =3D tempo.h % 24; // riporto le ore = in mod 60 } Time show() { // metodo per il = ritorno dell'orario return (tempo); // ritorno l'oggetto = tempo } void tick () { // metodo per = l'incremento unitario dei minuti add(1); // chiamo il metodo = add ed incremento di 1 }=20 private: // AREA PRIVATA Time tempo; // istanzio un = oggetto di classe Time char* possessore; // variabile del nome = del possessore }; class Persona { // classe di = definizione dell'oggetto persona private: // AREA PRIVATA int numclocks; // Contatore degli = orologi char* nome; // Nome della persona public: // INTERFACCIA = PUBBLICA Persona (char *p) { // costruttore numclocks =3D 0; // inizializzo a 0 = il numero di orologi nome =3D p; // setto il nome = del possesore } void GetNewClock () { // metodo per la = creazione di un nuovo orologio if (numclocks<5) { // limitazione del = numero clocks[numclocks] =3D new OrologioBase(nome); // Istanzio un = nuovo oggetto orologio numclocks++; // Incremento il = contatore degli orologi=20 }else{ cout << "Numero massimo di orologi raggiunto !!" << endl; }=20 } int GetNumClock () { // metodo per ottenere = il numero effettivo di orologi cout << nome << " ha " << numclocks << " orologi" << endl; return (numclocks); } =20 OrologioBase* clocks[5]; // Array dei puntatori = agli oggetti orologio }; void main(int argc, char *argv[]) { Time orario; // Istanzio l'oggetto = orario di classe Time Persona pippo("pippo"); // Istanzio l'oggetto = pippo di classe Persona int num =3D pippo.GetNumClock(); // Stampo il numero = di orologi posseduti pippo.GetNewClock (); // Aggiungo un nuovo = orologio orario.h =3D 12; // Assegno le ore orario.m =3D 30; // Assegno i minuti orario.s =3D 0; // Assegno i secondi pippo.clocks[0]->set(orario); // Setto l'orario del = primo orologio orario =3D pippo.clocks[0]->show(); // Ottengo l'orario = del primo orologio cout << "Orologio n. 0 Sono le " << orario.h << ":" << orario.m << ":" = << orario.s << endl; pippo.clocks[0]->add(20); // aumento di 20 min = l'orario del 1=B0 orologio pippo.clocks[0]->tick(); // aumento di 1 min = l'orario del 1=B0 orologio pippo.clocks[0]->substract(2); // diminuisco di 2 min = l'orario del 1=B0 orologio =20 system("PAUSE");=09 return 0; } ------=_NextPart_000_0070_01C2A3C5.EB8BFCE0--