ho le idee moltooo confuse cmq puoi darmi una mano? adesso il .cpp risulta così:
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(string name,const int *gradesArray)
{
setCourseName(name); // inizializza courseName
// copia i voti del gradeArray ai voti del dato membro
int strcpy(int grades, int 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
getAverage();
// chiama le funzioni per ottenere il voto min e massimo
getMinimum();
getMaximum();
// chiama la funzione outputBarChart per stampare a video il grafico della
// distribuzione dei voti
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<students;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<students;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<students;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
ADESSO ALMENO PARTE L'ESEGUIBILE MA A QUANTO APRE HO IDENTIFICATO IL PROBLEMA FINALE CIOE' QUANDO VISUALIZZA L'ARRAY GRADES[] CHE HO COPIATO DA GRADESARRAY[] CON LA FUNZIONE STRCPY() HO SBAGLIATO PERCHE' L'ARRAY GRADES MI RISULTA UN INSIEME DI NUMERI INCOMPRENSIBILI TIPO 22205060,55070670,0,... QUINDI VI CHIEDO L'ULTIMO AIUTO COME COPIO L'ARRAY GRADESARRAY[] NEL DATO MEMBRO GRADES[]?