fshb_ 1370
یک شنبه 25 بهمن 1388, 09:21 صبح
سلام
وقتی کد زیر رو میخوام اجرا کنم error میده، و نمیتونم رفعش کنم.
این کد:
#include<iostream>
#include<iomanip>
#include<string>
using namespace std;
class GradeBook
{
public:
const static int row=10;
const static int column=3;
GradeBook (string name,const int gradeArray[][column])
{
setCourseName(name);
for (int i=0;i<row;i++)
for(int j=0;j<column;j++)
grades[i][j]=gradeArray[i][j];
}
void setCourseName(string name)
{
courseName=name;
}
string getCourseName()
{
return courseName;
}
void displayMessage()
{
cout<<"CS101 Introduction to C++ Programming\n"<<getCourseName()<<"!"<<endl;
}
void processGrades()
{
outputGrades();
cout<<"\n\nThe lowest value: "<<getMinimum()<<"\nThe highest value: "<<getMaximum();
cout<<endl;
outputBarChart();
}
void outputBarChart()
{
const int sizeArray=11;
int frequency[sizeArray]={0};
for(int j=0;j<row;j++)
for (int i=0;i<column;i++)
frquency[grades[j][i]/10]++;
cout<<"Overall grade distribution: ";
for (int i=0;i<=row;i++)
{
if (i==0)
cout<<" 0-9: ";
else if (i==10)
cout<<" 100: ";
else
cout<<" "<<i*10<<"-"<<(i*10)+9<<": ";
for (int j=0;j<frquency[i];j++)
cout<<"*";
cout<<endl;
}
}
int getMinimum()
{
int minimum=100;
for (int i=0;i<row;i++)
for (int j=0;j<column;j++)
if (grades[i][j]<minimum)
minimum=grades[i][j];
return minimum;
}
int getMaximum()
{
int maximum=0;
for (int i=0;i<row;i++)
for (int j=0;j<column;j++)
if (grades[i][j]>maximum)
maximum=grades[i][j];
return maximum;
}
void outputGrades()
{
cout<<"\nThe grades is:";
cout<<endl<<"\t\t";
for (int i=0;i<column;i++)
cout<<"Test"<<i+1<<setw(4);
cout<<"Average";
for (int i=0;i<row;i++)
{
cout<<"student "<<row+1<<":";
for (int j=0;j<column;j++)
cout<<setw(4)<<grades[i][j];
double average=getAverage(grades[i],column);
cout<<average;
cout<<endl;
}
}
double getAverage(int grades[],const int column)
{
int total=0;
for (int i=0;i<column;i++)
total+=grades[i];
return static_cast<double>(total)/column;
}
private:
string courseName;
int grades[row][column];
}
void main()
{
int gradeArray[GradeBook::row][GradeBook::column]={{ 87, 96, 70 },{ 68, 87, 90 },{ 94, 100, 90 },{ 100, 81, 82 },{ 83, 65, 85 },{ 78, 87, 65 },{ 85, 75, 83 },{ 91, 94, 100 },{ 76, 72, 84 },{ 87, 93, 73 }};
GradeBook myGradeBook("CS101 Introduction to C++ Programming",gradeArray);
myGradeBook.displayMessage();
myGradeBook.processGrades();
int a;
cin>>a;
}
و اینم هم error هایی که میده:
error haye 7.10
error C2628: 'GradeBook' followed by 'void' is illegal (did you forget a ';'?)
error C3874: return type of 'main' should be 'int' instead of 'GradeBook'
error C2065: 'frquency' : undeclared identifier
error C2065: 'frquency' : undeclared identifier
وقتی کد زیر رو میخوام اجرا کنم error میده، و نمیتونم رفعش کنم.
این کد:
#include<iostream>
#include<iomanip>
#include<string>
using namespace std;
class GradeBook
{
public:
const static int row=10;
const static int column=3;
GradeBook (string name,const int gradeArray[][column])
{
setCourseName(name);
for (int i=0;i<row;i++)
for(int j=0;j<column;j++)
grades[i][j]=gradeArray[i][j];
}
void setCourseName(string name)
{
courseName=name;
}
string getCourseName()
{
return courseName;
}
void displayMessage()
{
cout<<"CS101 Introduction to C++ Programming\n"<<getCourseName()<<"!"<<endl;
}
void processGrades()
{
outputGrades();
cout<<"\n\nThe lowest value: "<<getMinimum()<<"\nThe highest value: "<<getMaximum();
cout<<endl;
outputBarChart();
}
void outputBarChart()
{
const int sizeArray=11;
int frequency[sizeArray]={0};
for(int j=0;j<row;j++)
for (int i=0;i<column;i++)
frquency[grades[j][i]/10]++;
cout<<"Overall grade distribution: ";
for (int i=0;i<=row;i++)
{
if (i==0)
cout<<" 0-9: ";
else if (i==10)
cout<<" 100: ";
else
cout<<" "<<i*10<<"-"<<(i*10)+9<<": ";
for (int j=0;j<frquency[i];j++)
cout<<"*";
cout<<endl;
}
}
int getMinimum()
{
int minimum=100;
for (int i=0;i<row;i++)
for (int j=0;j<column;j++)
if (grades[i][j]<minimum)
minimum=grades[i][j];
return minimum;
}
int getMaximum()
{
int maximum=0;
for (int i=0;i<row;i++)
for (int j=0;j<column;j++)
if (grades[i][j]>maximum)
maximum=grades[i][j];
return maximum;
}
void outputGrades()
{
cout<<"\nThe grades is:";
cout<<endl<<"\t\t";
for (int i=0;i<column;i++)
cout<<"Test"<<i+1<<setw(4);
cout<<"Average";
for (int i=0;i<row;i++)
{
cout<<"student "<<row+1<<":";
for (int j=0;j<column;j++)
cout<<setw(4)<<grades[i][j];
double average=getAverage(grades[i],column);
cout<<average;
cout<<endl;
}
}
double getAverage(int grades[],const int column)
{
int total=0;
for (int i=0;i<column;i++)
total+=grades[i];
return static_cast<double>(total)/column;
}
private:
string courseName;
int grades[row][column];
}
void main()
{
int gradeArray[GradeBook::row][GradeBook::column]={{ 87, 96, 70 },{ 68, 87, 90 },{ 94, 100, 90 },{ 100, 81, 82 },{ 83, 65, 85 },{ 78, 87, 65 },{ 85, 75, 83 },{ 91, 94, 100 },{ 76, 72, 84 },{ 87, 93, 73 }};
GradeBook myGradeBook("CS101 Introduction to C++ Programming",gradeArray);
myGradeBook.displayMessage();
myGradeBook.processGrades();
int a;
cin>>a;
}
و اینم هم error هایی که میده:
error haye 7.10
error C2628: 'GradeBook' followed by 'void' is illegal (did you forget a ';'?)
error C3874: return type of 'main' should be 'int' instead of 'GradeBook'
error C2065: 'frquency' : undeclared identifier
error C2065: 'frquency' : undeclared identifier