[Corsopoc] open source esercizio 1

Xianguo xianguo@virgilio.it
Mon, 16 Dec 2002 22:14:35 +0100


This is a multi-part message in MIME format.

------=_NextPart_000_0023_01C2A550.844694A0
Content-Type: text/plain;
	charset="iso-8859-1"
Content-Transfer-Encoding: 7bit

eccovi il source del primo esercizio!


------=_NextPart_000_0023_01C2A550.844694A0
Content-Type: application/octet-stream;
	name="esercizio1.cpp"
Content-Transfer-Encoding: quoted-printable
Content-Disposition: attachment;
	filename="esercizio1.cpp"

/*Impiegando un qualunque linguaggio di programmazione OO realizzare la
classe OrologioBase , la quale  esporti le seguenti operazioni:

void set(Time t);
void add(int minuti);
void subtract(int minuti);
Time show();
void tick (); /* a ogni tick il tempo si incrementa di 1 minuto.*/
/*
Per quanto riguarda Time, anche la sua realizzazione =E8 posta a carico =
dello
studente. Questi si limiti a quanto strettamente necessario per il =
cliente
OrologioBase
*/
#include<iostream.h>
class Time
{ private:
  int h,m,s; //non =E8 usato da OrologioBase,per=F2 pare brutto un Time =
senza s
  public:
  Time(){h=3D0;m=3D0;s=3D0;};
  void Reset(){h=3D0;m=3D0;s=3D0;};
  void AddTime(int sh=3D0,int sm=3D0,int ss=3D0)
  {
   s=3Dss+s;
   m=3Dsm+s/60+m;
   h=3Dsh+m/60+h;
   s=3Ds%60;
   m=3Dm%60;
   h=3Dh%24;
   if(s<0){m--;s=3D60+s;};
   if(m<0){h--;m=3D60+m;};
   if(h<0){h=3D24+h;};
  };
  void SetTime(int sh=3D0,int sm=3D0,int ss=3D0)
  {
   Reset();
   AddTime(sh,sm,ss);
  };
  int*const hms()//non =E8 neccessario questo metodo ma utile quando =
devi passare
  {               //h,m,s alle variabile
   int v[3]=3D{h,m,s};
   return(v);
  };
  int Show()
  {
   cout<<h<<':'<<m<<'.'<<s<<'\n';
  };
};
class OrologioBase
{ private:
  Time T;
  public:
  OrologioBase;
  void set(Time t){T=3Dt;};
  void add(int minuti)
  { T.AddTime(0,minuti);
  };
  void subtract(int minuti)
  { T.AddTime(0,-minuti);
  };
  Time Show()
  {
   T.Show();
   return(T);
  };
  void tick ()
  {
   T.AddTime(0,1);
  };

};
//finisce qui esercizio ma per verificare la sua corretta funzione =
facciamo dei
//test con void main()
// se trovare degli errori o avete consigli da dare scrivettemi a =
xianguo@virgilio.it

void main()
{
Time t;
t.Reset();
t.AddTime(23,59,62);
t.Show();
OrologioBase o;
o.set(t);
o.add(60);
o.Show();
int s;
cin>>s;

}




------=_NextPart_000_0023_01C2A550.844694A0--