Ciao a tutti,
sto facendo pratica con uml
partendo da un esercizio parzialmente fatto ho dovuto aggiungere le seguenti funzioni
fraction
---------------------------
- m_Numer
- m_Denom
----------------------------
+ set( numertator : int , denominator : int )
+ toString() : Qstring
+ toDouble() : double
+ add( other : const fraction & ) : fraction
+ subtract ( other : const fraction & ) : fraction
+ multiply ( other : const fraction & ) : fraction
+ divide ( other : const fraction & ) : fraction
---------------------------------------------------
Potreste dirmi se ho fatto giusto l'esercizio?
grazie
codice:
// fraction.cpp
#include "fraction.h"
QTextStream cout(stdout);
// inizializza oggetto
Fraction::Fraction(int number, int demon)
: m_Numer(number), m_Denom(demon)
{
}
// Setta valori
void Fraction::set (int number, int demon){
m_Numer = number;
m_Denom = demon;
}
// converti in stringa
QString Fraction::toString () const{
return QString ("%1 / %2 ").arg (m_Numer).arg (m_Denom);
}
// converti in double
double Fraction::toDouble () const{
return 1.0 * m_Numer / m_Denom;
}
// somma i due oggetti
void Fraction::add (const Fraction &other){
m_Numer += other.m_Numer;
m_Denom += other.m_Denom;
}
// moltiplica i due oggetti
void Fraction::multiply( const Fraction &other){
m_Numer *= other.m_Numer;
m_Denom *= other.m_Denom;
}
// divide i due oggetti
void Fraction::divide (const Fraction &other){
if ( m_Numer > other.m_Numer and m_Denom > other.m_Denom ){
m_Numer /= other.m_Numer;
m_Denom /= other.m_Denom;
}else{
cout << "\nNumeri non divisibili\n";
}
}
// sottrae i due oggetti
void Fraction::subtrack ( const Fraction &other){
m_Numer -= other.m_Numer;
m_Denom -= other.m_Numer;
}
// visualizza il valore degli oggetti
void Fraction::diplay (){
cout << "\nm_Numer " << m_Numer;
cout << "\nm_Denom " << m_Denom;
}
codice:
#include "fraction.h"
// main cpp
int main() {
Fraction val1(1,2);
Fraction val2(3,4);
val1.add (val2); // somma i due oggetti
val1.diplay (); // mostra valori
val1.set (1,2); // setta i valori
val1.subtrack(val2); // sottrae valori
val1.diplay (); // mostra valori
val1.set (1,2); // setta i valori
val1.multiply (val2); // moltiplica i valori
val1.diplay (); // mostra valori
val1.set (1,2); // setta i valori
val1.divide (val2); // divide i valori
val1.diplay (); // mostra valori
return 0;
}
codice:
#ifndef FRACTION_H
// fraction.h
#define FRACTION_H
#include <QString>
#include <QTextStream>
class Fraction {
public:
Fraction(int number, int demon ); // inizializza oggetto
void set(int number, int demon); // Setta valori
QString toString() const; // converti in stringa
double toDouble() const; // converti in double
void add ( const Fraction &other); // somma i due oggetti
void multiply( const Fraction &other); // moltiplica i due oggetti
void subtrack( const Fraction &other); // sottrae i due oggetti
void divide( const Fraction &other); // divede i due oggetti
void diplay(); // mostra valori
private:
int m_Numer, m_Denom;
};
#endif // FRACTION_H