[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--