PDA

Visualizza la versione completa : [C++] Esercizio: programmazione a oggetti con classe Commercialista


hugo88
10-07-2012, 11:00
salve a tutti mi sto esercitando sulla programmazione ad oggetti in c++ e stavo facendo un piccolo progetto ma ho il seguente problema vi posto il codice

ho creato questa classe chiamandola commercialista.h

#include <iostream>

using namespace std;

class Commercialista {

public:
float importo;
float cp;
float CalcoloCp(float);
float ImmettiImp();
float Scritture();

};

poi ho creato un altro file chiamandolo funct_comm.cpp

#include <iostream>
#include "commercialista.h"

using namespace std;

float Commercialista::ImmettiImp() {
cout <<"immetti importo "<<endl;
cin >>importo;


}

float Commercialista::CalcoloCp() {
cp = importo * 0.04;


}

float Commercialista::Scritture() {

cout <<"l importo e "<<importo<<endl;
cout <<"il cp e "<<cp<<endl;

}

e infine il main

#include <iostream>
#include "commercialista.h"

int main() {

Commercialista com;
com.ImmettiImp();
com.Scritture();
}

il mio problema sta nel metodo CalcoloCp() non riesce a fare l operazione che mi interessa mi da un numero casuale... ma invece se gli faccio fare l operazione nel metodo ImmettiImp() funge... dove sbaglio?

oregon
10-07-2012, 11:06
Che vuoi dire?

CalcoloCp effettua questa operazione

cp = importo * 0.04;

e dovrebbe restituire un float (che non restituisce).

Quindi il calcolo viene fatto, nel membro cp che poi dovrai leggere ... o volevi restituire direttamente il calcolo con

return cp;

?

alka
10-07-2012, 11:11
Originariamente inviato da hugo88
salve a tutti mi sto esercitando sulla programmazione ad oggetti in c++ e stavo facendo un piccolo progetto ma ho il seguente problema vi posto il codice
[...]

Il codice va formattato usando il tag [CODE], come da Regolamento (http://forum.html.it/forum/showthread.php?s=&threadid=973887); inoltre, il linguaggio va indicato anche nel titolo (qui l'ho aggiunto io).

hugo88
10-07-2012, 11:41
ciao e grazie della risposta scusatemi se ho sbagliato a postare... forse mi sono spiegato male il programma mi dice di inserire l importo es: inserisco 1600 e lui mi deve restituire il 0.04 di quel 1600 che sarebbe 64 ma mi restituisce numeri diversi... se provi a compilarlo vedi stesso tu dove ce l errore.. comunque si voglio che mi restituisce la variabile cp con il contenuto del operazione.. scusa per il giro di parole aspetto tue risposte

oregon
10-07-2012, 11:49
Tagliando la testa al toro ... guarda tutte le modifiche



class Commercialista
{
double importo;
double cp;

public:
void CalcoloCp();
void ImmettiImp();
void Scritture();
};


void Commercialista::ImmettiImp()
{
cout <<"immetti importo "<<endl;
cin >>importo;
}

void Commercialista::CalcoloCp()
{
cp = importo * 0.04;
}

void Commercialista::Scritture()
{
cout <<"l importo e "<<importo<<endl;
cout <<"il cp e "<<cp<<endl;
}

int main()
{
Commercialista com;

com.ImmettiImp();
com.CalcoloCp();
com.Scritture();
}

hugo88
10-07-2012, 13:23
il programma non e concluso o messo la classe in un altro file come i metodi perche il programma non e finito devo creare altre classi e devo sfruttare quei metodi ecco perche li ho divisi..

oregon
10-07-2012, 13:26
E quindi?

hugo88
10-07-2012, 13:28
se mi puoi aiutare a risolvere con i file divisi...

oregon
10-07-2012, 13:30
Beh ... ma non c' molto da aiutare ... lasciali divisi come sono ma correggi il codice come ti ho mostrato.

Magari il file funct_comm.cpp lo chiami commercialista.cpp e quello dove c' il main lo chiami esercizio.cpp

Non difficile ... un po' di impegno ...

hugo88
10-07-2012, 13:45
scusami non avevo visto bene il codice grazie a te ho risolto devo esercitarmi e mettere piu impegno.. mi potresti spiegare cosa sbagliavo? grazie ankora sei un grande ;)

Loading