Creare una Classe Frazione che esegua le operazioni di frazioni,aggiorna, e visualizza
# include<iostream>
using namespace std;
class calcola {// classe calcola
public://metodi pubblico
void input();//metodo per l'input dei dati N e D
void visualizza();//metodo ti tipo void per visualizza
void aggiorna();//metodo per aggiornare
int numeratore;//dichiarazione di una variabile di tipo intera
int denominatore;//dichiarazione di una variabile di tipo intera
private: //proprietà private
};
void calcola::input() //costruttore senza passaggi
{
float risultato; //dichiarazione di una variabile di tipo float
cout<<"inserisci il numeratore"<<endl;
do
{ cin>>numeratore;
if(numeratore==0)//controlla se N ==0
{
}
}while(numeratore==0); //finche ==0 chiede l' input
cout<<"inserisci il denominatore"<<endl;
do
{
cin>>denominatore;
if(denominatore==0) //controlla di D
{ // se ==0
cout<<"il numero inserito e =0"<<endl;
cout<<"inserisci di nuovo"<<endl;//chieda un input
}
}while(denominatore==0);
risultato=(float)numeratore/denominatore;
//(float) e il casting = forza il risultato in float
cout<<"il risultato della divisione e "<<risultato<<endl<<endl;
}
void calcola::visualizza()//metodo per visualizzare i numeri inseriti inseriti
{
if(denominatore!=1)
//se nel denominatre c'è un valore diverso da uno allora è una frzione e visualizzo n/d
cout<<"La Frazione Inserita e': "<<denominatore<< "/" <<numeratore<<endl;
else //altrimenti visualizzo solo N
cout<<"La Frazione Inserita e': "<<denominatore<<endl;
};
void calcola::aggiorna()//metodo per aggiornare
{
float risultato;
cout<<"inserisci il numeratore"<<endl;
do
{
cin>>numeratore;
if(numeratore==0)
{
}
cout<<"il numero inserito e =0"<<endl;
cout<<"inserisci di nuovo"<<endl;
}while(numeratore==0);
cout<<"inserisci il denominatore"<<endl;
do
{
cin>>denominatore;
if(denominatore==0)
{
cout<<"il numero inserito e =0"<<endl;
cout<<"inserisci di nuovo"<<endl;
}
}while(denominatore==0);
risultato=(float)numeratore/denominatore;
cout<<"il risultato della divisione e "<<risultato<<endl<<endl;
}
int main()
{
char c; //dichiarazione di un variabile da tipo char
int ripeti=0;// dichirazione di un variabile intero
calcola d1;//Istanza oggetto d1
calcola n1;//Istanza oggetto n1
d1.input();
n1.input();
cout<<"Numero inseriti: "<<endl;
d1.visualizza();//metodo per input oggetto d1
n1.visualizza();//metodo per input oggetto n1
do
{
cout<<"Per modificare i dati inseriti? [S|N]"<<endl;
cin>>c;
/*parte controllo se il carattere Inserito è
miuscola o minuscola ? o diversa da quella richiesta*/
}while(((c=='S')&&(c=='s'))&&((c!='n')&&(c!='N')));
if((c=='s')||(c=='S'))
{
int d;//dichiarazione di un variabile di tipo intero
do{
cout<<endl<<"Quale frazione vuoi modificare? [1/2]"<<endl;
cin>>d;
if(d==1)// se ==1
d1.aggiorna();//aggiorna il den
else
if(d==2)//se ==2
n1.aggiorna();//aggiorna il num
else
cout<<endl<<"Scelta Errata"<<endl;
}while((d!=1)&&(d!=2)); //se diverso output scelta non valida
}
{
cout<<"vuoi ripetere l'operazione? si/1 no/0"<<endl;
cin>>ripeti;
} while(ripeti!=0);
return 0;
}
# include<iostream>
using namespace std;
class calcola {// classe calcola
public://metodi pubblico
void input();//metodo per l'input dei dati N e D
void visualizza();//metodo ti tipo void per visualizza
void aggiorna();//metodo per aggiornare
int numeratore;//dichiarazione di una variabile di tipo intera
int denominatore;//dichiarazione di una variabile di tipo intera
private: //proprietà private
};
void calcola::input() //costruttore senza passaggi
{
float risultato; //dichiarazione di una variabile di tipo float
cout<<"inserisci il numeratore"<<endl;
do
{ cin>>numeratore;
if(numeratore==0)//controlla se N ==0
{
}
}while(numeratore==0); //finche ==0 chiede l' input
cout<<"inserisci il denominatore"<<endl;
do
{
cin>>denominatore;
if(denominatore==0) //controlla di D
{ // se ==0
cout<<"il numero inserito e =0"<<endl;
cout<<"inserisci di nuovo"<<endl;//chieda un input
}
}while(denominatore==0);
risultato=(float)numeratore/denominatore;
//(float) e il casting = forza il risultato in float
cout<<"il risultato della divisione e "<<risultato<<endl<<endl;
}
void calcola::visualizza()//metodo per visualizzare i numeri inseriti inseriti
{
if(denominatore!=1)
//se nel denominatre c'è un valore diverso da uno allora è una frzione e visualizzo n/d
cout<<"La Frazione Inserita e': "<<denominatore<< "/" <<numeratore<<endl;
else //altrimenti visualizzo solo N
cout<<"La Frazione Inserita e': "<<denominatore<<endl;
};
void calcola::aggiorna()//metodo per aggiornare
{
float risultato;
cout<<"inserisci il numeratore"<<endl;
do
{
cin>>numeratore;
if(numeratore==0)
{
}
cout<<"il numero inserito e =0"<<endl;
cout<<"inserisci di nuovo"<<endl;
}while(numeratore==0);
cout<<"inserisci il denominatore"<<endl;
do
{
cin>>denominatore;
if(denominatore==0)
{
cout<<"il numero inserito e =0"<<endl;
cout<<"inserisci di nuovo"<<endl;
}
}while(denominatore==0);
risultato=(float)numeratore/denominatore;
cout<<"il risultato della divisione e "<<risultato<<endl<<endl;
}
int main()
{
char c; //dichiarazione di un variabile da tipo char
int ripeti=0;// dichirazione di un variabile intero
calcola d1;//Istanza oggetto d1
calcola n1;//Istanza oggetto n1
d1.input();
n1.input();
cout<<"Numero inseriti: "<<endl;
d1.visualizza();//metodo per input oggetto d1
n1.visualizza();//metodo per input oggetto n1
do
{
cout<<"Per modificare i dati inseriti? [S|N]"<<endl;
cin>>c;
/*parte controllo se il carattere Inserito è
miuscola o minuscola ? o diversa da quella richiesta*/
}while(((c=='S')&&(c=='s'))&&((c!='n')&&(c!='N')));
if((c=='s')||(c=='S'))
{
int d;//dichiarazione di un variabile di tipo intero
do{
cout<<endl<<"Quale frazione vuoi modificare? [1/2]"<<endl;
cin>>d;
if(d==1)// se ==1
d1.aggiorna();//aggiorna il den
else
if(d==2)//se ==2
n1.aggiorna();//aggiorna il num
else
cout<<endl<<"Scelta Errata"<<endl;
}while((d!=1)&&(d!=2)); //se diverso output scelta non valida
}
{
cout<<"vuoi ripetere l'operazione? si/1 no/0"<<endl;
cin>>ripeti;
} while(ripeti!=0);
return 0;
}