خب کدت چندتا ایراد داشت ، دونه دونه بررسیش میکنیم :
1. اعضای داده ای کلاس عبارتند از :
coursename و teachername که این دومی رو یادت رفته بود تعریف کنی ؛
پس داریم :
private:
string coursename;
string teachername;
2. سازنده باید اعضای داده ای رو مقداردهی کنه ، پس اگه قراره سازنده ت دوتا آرگومان داشته باشه ، باید بنویسی :
GradeBook( string a, string b)
{
coursename=a;
teachername=b;
}
3. توابع set و get رو درست نوشتی
خب این از مشکلات تابع اولت ، کد اصلاح شده قسمت اول اینطوری میشه :
GradeBook.h
#include <cstdlib>
#include <iostream>
#include <string>
using namespace std;
class GradeBook
{
public:
GradeBook( string a, string b)
{
coursename=a;
teachername=b;
}
void setCourseName( string name )
{
coursename = name;
}
string getCourseName()
{
return coursename;
}
void setTeacherName( string a )
{
teachername = a;
}
string getTeacherName()
{
return teachername;
}
void displaymessage()
{
cout << "this course is presented by\n" << getTeacherName() << "welcome to the gradebook for\n" << getCourseName() << endl;
}
private:
string coursename;
string teachername;
};
واما تابع main.cpp :
فقط یه مشکل داشت ، سازنده ای که تعریف کردی دوتا آرگومان میگیره ، پس توی تابع main هم باید با دو آرگومان صدازده بشه ؛ مثلا :
GradeBook gradebook1( "cs101 introduction to C++ programing","Mohammad" );
GradeBook gradebook2( "this course is peresented by majid & mohamad","Majid" );
شکل اصلاح شده تابع main.cpp:
#include <cstdlib>
#include <iostream>
#include <string>
#include <conio.h>
#include "GradeBook.h"
using namespace std;
int main()
{
GradeBook gradebook1( "cs101 introduction to C++ programing","Mohammad" );
GradeBook gradebook2( "this course is peresented by majid & mohamad","Majid" );
cout <<"gradebook1 created for course: " << gradebook1.getCourseName() << "\ngradebook2 is the name of teacher:" << gradebook2.getTeacherName() <<endl;
getch();
return 0;
}
من اجرا کردم ، اجرا شد ، حالا بازم امتحان کن ، اگه نشد یه پست جداگونه بذار از مدیرای بخش سوال کن
موفق باشی