من رو در نوشتن يك برنامه ساده ياري كنيد (حل خطاها)
دوستان من اين برنامه رو به زبان c++ نوشتم ولي وقتي كامپايلر خواست كامپايل كنه ايراد گرفت. حالا شما ببينيد ايراد كار از كجاست و من چيكار بايد بكنم. كد برنامه :
کد:
#include <iostream>
#include <conio.h>
#include <string>
using namespace std;
class Gradebook
{
public :
void set_class_name (string class_name)
{
classname=class_name;
}
string get_class_name ()
{
return classname;
}
void set_class_grades (int grades[],int grades_number)
{
class_grades_number=grades_number;
for (int i=1;i<=grades_number;i++)
{
class_grades[i]=grades[i];
}
}
void sum_class_grades ()
{
int total=0;
for(int n=1;n<=class_grades_number;n++)
{
total+=class_grades[n];
}
total_class_grades=total;
}
void avarege_class_grades ()
{
double avarege;
avarege=total_class_grades/class_grades_number;
class_grades_avarege=avarege;
}
void minimum_class_grades ()
{
int minimum_grade=100;
for(int x=1;x<=class_grades_number;x++)
{
if(class_grades[x]<minimum_grade)
{
minimum_grade=class_grades[x];
}
}
min_class_grades=minimum_grade;
}
void maximum_class_grades ()
{
int maximum_grade=0;
for(int y=1;y<=class_grades_number;y++)
{
if (class_grades[y]>maximum_grade)
{
maximum_grade=class_grade[y];
}
}
max_class_grades=maximum_grade;
}
void chart_class_grades ()
{
for (int o=0;o<=10)
{
if (o==0)
{
cout<<o<<"-"<<o+9<<" : ";
}
else
{
if (o==10)
{
cout<<"100 : ";
}
else
{
cout<<o*10<<"-"<<(o*10)+9<<" : ";
}
}
for(int graph_class_grades=0;graph_class_grades<=class_grades[o];graph_class_grades++)
{
cout<<'*';
}
cout<<"\n";
}
}
int get_minimum_grades ()
{
return min_class_grades;
}
int get_maximum_grades ()
{
return max_class_grades;
}
double get_avarege_grades ()
{
return class_grades_avarege;
}
int get_total_grades ()
{
return total_class_grades;
}
private :
string classname;
int class_grades_number=0;
int class_grades[class_grades_number]={0};
int total_class_grades;
double class_grades_avarege;
int min_class_grades;
int max_class_grades;
int total_class_grades;
}
void main ()
{
const int grade_size=10;
int grades[grade_size]={0};
string classname = "Math";
Gradebook book;
book.set_class_name();
cout<<"\n\nWelcome to "<<book.get_class_name()<<" teacher !\n\nPlease Enter Students Grade :\n\n";
for(int class_couter=1;class_couter<=grade_size;grade_couter++)
{
cout<<"Student "<<class_couter<<" : ";
cin>>grades[class_couter];
}
book.set_class_grades(grades[],grade_size);
book.sum_class_grades();
book.maximum_class_grades();
book.minimum_class_grades();
system("cls");
cout<<"\n\nWelcome to "<<book.get_class_name()<<" teacher !\n\nPlease Enter Students Grade :\n\n";
cout<<"The class grades are :\n\n";
for(int couter_class=1;couter_class<=10;couter_class++)
{
cout<<"Student "<<couter_class<<" : "<<grades[couter_class]<<endl;
}
cout<<endl;
cout<<"Sum of the grades is : "<<book.get_total_grades()<<"\n";
cout<<"Avarege of the grades is : "<<book.get_avarege_grades()<<"\n\n";
cout<<"Minimum grade of the class : "<<book.get_minimum_grades()<<"\n";
cout<<"Maximum grade of the class : "<<book.get_maximum_grades()<<"\n\n";
cout<<"Chart:\n\n";
book.chart_class_grades();
}
خطاهاي كامپايلر :
کد:
Project : Console application
Compiler : GNU GCC Compiler (called directly)
Directory : F:\My C++ Projects\GradeBook 2\
--------------------------------------------------------------------------------
Switching to target: default
Compiling: main.cpp
main.cpp:18: error: expected primary-expression before "int"
main.cpp:18: error: expected `]' before "int"
main.cpp:18: error: expected `,' or `...' before "int"
main.cpp:110: error: ISO C++ forbids initialization of member `class_grades_number'
main.cpp:110: error: making `class_grades_number' static
main.cpp:110: error: ISO C++ forbids in-class initialization of non-const static member `class_grades_number'
main.cpp:111: error: a brace-enclosed initializer is not allowed here before '{' token
main.cpp:111: error: data member may not have variably modified type `int[((unsigned int)((int)Gradebook::class_grades_number))]'
main.cpp:111: error: ISO C++ forbids initialization of member `class_grades'
main.cpp:111: error: making `class_grades' static
main.cpp:111: error: invalid in-class initialization of static data member of non-integral type `<type error>'
main.cpp:116: error: declaration of `int Gradebook::total_class_grades'
main.cpp:112: error: conflicts with previous declaration `int Gradebook::total_class_grades'
main.cpp: In member function `void Gradebook::set_class_grades(int)':
main.cpp:20: error: `grades_number' undeclared (first use this function)
main.cpp:20: error: (Each undeclared identifier is reported only once for each function it appears in.)
main.cpp:23: error: `class_grades' undeclared (first use this function)
main.cpp:23: error: `grades' undeclared (first use this function)
main.cpp: In member function `void Gradebook::sum_class_grades()':
main.cpp:31: error: `class_grades' undeclared (first use this function)
main.cpp: In member function `void Gradebook::minimum_class_grades()':
main.cpp:46: error: `class_grades' undeclared (first use this function)
main.cpp: In member function `void Gradebook::maximum_class_grades()':
main.cpp:58: error: `class_grades' undeclared (first use this function)
main.cpp:60: error: `class_grade' undeclared (first use this function)
main.cpp: In member function `void Gradebook::chart_class_grades()':
main.cpp:67: error: expected `;' before ')' token
main.cpp:85: error: `class_grades' undeclared (first use this function)
main.cpp: At global scope:
main.cpp:120: error: new types may not be defined in a return type
main.cpp:120: error: two or more data types in declaration of `main'
main.cpp:120: error: `main' must return `int'
main.cpp: In function `int main(...)':
main.cpp:125: error: 'class Gradebook' has no member named 'set_class_name'
main.cpp:128: error: `grade_couter' undeclared (first use this function)
Process terminated with status 1 (0 minutes, 0 seconds)
28 errors, 0 warnings