ciao a tutti ho un problema urgente non riesco a far girare un programma e non riesco a capire dove siano gli errori, il programma è formato da una parte in .cpp una in .h e il main il problema sta nel .cpp ma vi posto comunque i tre codici
questo è il cpp
Codice PHP:
// GradeBook.cpp
// Definizione delle funzioni membro per la classe GradeBook,
// utilizzando un array per memorizzare i voti degli stuedenti.
#include <iostream>
using namespace std;
#include <iomanip>
using namespace std;
//#include <fstream.h>
#include <string.h> // per memorizzare output su file
#include "GradeBook.h" // definizione della classe GradeBook
// Costruttore inizializza il dato privato courseName e l'array di voti
GradeBook::GradeBook(myGradeBook)
{
setCourseName(name); // inizializza courseName
// copia i voti del gradeArray ai voti del dato membro
strcpy(grades,gradesArray);
}
// funzione per settare il nome del corso
void GradeBook::setCourseName(string name)
{
courseName=name; // memorizza il nome del corso
}
// funzione per ottenere il nome del corso
string GradeBook::getCourseName()
{
return courseName;
}
// stampa un messaggio di benvenuto nel registro dei voti
void GradeBook::displayMessage()
{
cout << "Benvenuti al registro per\n" << getCourseName() << "!" << endl;
}
// effettua vare operazioni sui dati
void GradeBook::processGrades()
{
// visualizza l'output dell'array dei voti
cout<<"L'array Š: ";
for(int u=0;u<10;u++)
cout<<grades[u]<<"\t";
cout<<endl;
// chiama la funzione getAverage() per ottenere la media dei voti
myGradeBook.getAverage();
// chiama le funzioni per ottenere il voto min e massimo
myGradeBook.getMinimum();
myGradeBook.getMaximum();
// chiama la funzione outputBarChart per stampare a video il grafico della
// distribuzione dei voti
myGradeBook.outputBarChart();
}
// trova il voto minimo
int GradeBook::getMinimum()
{
int lowGrade=100;// assume il più basso sia 100
// esegue il loop di ricerca nell'array
for(int w=0;w<10;w++)
{
// se il voto corrente è più basso del lowGrade, assegnalo a lowGrade
if(grades[w]<lowGrade)
grades[w]=lowGrade;
}
cout<<"Il voto piu' basso Š: "<<lowGrade<<endl; // restituisce il voto più basso
}
// trova il voto massimo
int GradeBook::getMaximum()
{
int highGrade=0; // assume che il voto più alto sia 0
// esegue il loop di ricerca nell'array dei voti
for(int y=0;y<10;y++)
{
// se il voto corrente è più alto di highGrade, assegnalo a highhGrade
if(grades[y]>highGrade)
grades[y]=highGrade; // nuovo voto più alto
}
cout<<"Il voto piu' alto Š: "<<highGrade<<endl; // restituisce il voto più alto
}
// determina il voto medio test
double GradeBook::getAverage()
{
int average;
int total; // iniz. il tot.
// somma i voti dell array sono int!
for(int r=0;r<10;r++)
total=total+grades[r];
// ritorna il voto medio
average=total/10;
}
// visualizza il grafico con la distribuzione dei voti
void GradeBook::outputBarChart()
{
cout<<"GRAFICO CON LA DISTRIBUZIONE DEI VOTI"<<endl<<endl;
// registra le frequenza dei voti con scala ogni 10
const int frequencySize = 11;
int frequency[ frequencySize ] = { 0 };
// per ogni voto, incrementa l'appropriata frequenza
for(int grade=0;grade<10;grade++)
frequency[ grades[ grade ] / 10 ]++;
// per ogni frequenza, stampa il relativo * nel grafico istogramma
for ( int count = 0; count < frequencySize; count++ )
{
// etichette del grafico ("0-9:", ..., "90-99:", "100:" )
if ( count == 0 )
cout << " 0-9: ";
else if ( count == 10 )
cout << " 100: ";
else
cout << count * 10 << "-" << ( count * 10 ) + 9 << ": ";
// stampa gli asterischi
for (int j=0; j<grades[count]; j++)
cout << '*';
cout << endl; // va a capo ogni riga
} // fine grafico
}
// stampa il contenuto dell'array dei voti.
void GradeBook::outputGrades()
{
cout << "\nI voti sono:\n\n";
// stampa ogni voto dello studente
// QUESTO DOVRA ESSERE PRESEnTE ANCHE NEL FILE OUTPUT DI FREQUENZA.TXT
for(int student=0;student<10;student++)
{
cout << "Studente " << setw( 2 ) << student + 1 << ": " << setw( 3 )
<< grades[ student ] << endl;
}
}
// Funzione che salva nel file l'output a video del nome del corso, numero di studenti
// e dei voti
int GradeBook:: salva(const char *)
{
ofstream outfile ("frequenza.txt");
if (outfile.is_open())
{
outfile<<"PRISMA SRL: Corso di Introduzione alla programmazione C e C++\nESAME DICEMBRE 2008"<<endl;
outfile << "Numero di studenti: " << students << endl;
outfile << "Voti prove esame corso di programmazione " << endl;
for ( int student = 0; student < students; student++ )
{
outfile << grades[ student ] << endl;
}
}
return 0;
} // fine funzione salva
questo l'.h
Codice PHP:
// GradeBook.h
// Dichiara la classe GradeBook per la memorizzazione dell'array dei voti.
// Le funzioni membro sono definite in GradeBook.cpp
#include <string> // programma usa la classe C++ Standard Library string
using std::string;
// GradeBook: definizione della classe
class GradeBook
{
public:
// Costante: questo è il numero degli studenti che sostengono gli esami
const static int students = 10;
// Costruttore che inizializza il nome del corso e l'array dei voti
GradeBook( string, const int [] );
void setCourseName( string ); // funzione che setta il nome del corso
string getCourseName(); // funzione che ottiene il nome del corso
void displayMessage(); // mostra il messaggio di benvenuto
void processGrades(); // effettua varie operazioni sui dati voti degli studenti
int getMinimum(); // trova il voto minimo dei test sostenuti
int getMaximum(); // trova il voto massimo dei test sostenuti
double getAverage(); // determina il voto medio dei test sostenuti
void outputBarChart(); // stampa il diagramma dei voti e relative frequenze
void outputGrades(); // output che contiene il vettore dei voti
int salva(const char *); //salva su file
private:
string courseName; // setta il nome del corso
int grades[ students ]; // dato membro che inizializza il vettore dei voti
}; // fine classe GradeBook
questo è il main
Codice PHP:
// Crea l'oggetto GradeBook utilizzando un array di voti.
#include "GradeBook.h" // Definizione della classe GradeBook
// funzione main per l'inizio del programma
int main()
{
// array dei voti degli studenti
int gradesArray[ GradeBook::students ] =
{ 84, 68, 94, 100, 83, 78, 85, 91, 76, 87 };
// Creazione oggetto
GradeBook myGradeBook("CS101 Corso di Introduzione alla programmazione C++", gradesArray );
myGradeBook.displayMessage();
myGradeBook.processGrades();
myGradeBook.salva("frequenza.txt");
system("PAUSE");
return 0;
} // fine main
non so come fare grazie infinite