PDA

View Full Version : error این کد چیه؟



fshb_ 1370
دوشنبه 09 آذر 1388, 20:22 عصر
سلام
error این برنامه چیه؟


#include<iostream>
using namespace std;
class GradeBook
{
public:

void inputGrade()
{
int grade1;
int grade2;
int grade3;
cout<<"Enter three numbers:";
cin>>grade1>>grade2>>grade3;
maximumGrade=maximum(grade1,grade2,grade3);
}

int maximum(int x,int y,int z)
{
int maximumValue=x;
if(y>maximumValue)
maximumValue=y;
if(z>maximumValue)
maximumValue=z;
cout<<"maximum is:"<<maximumValue;
}
private:
int maximumGrade;
};
int main()
{
GradeBook myGradeBook();
myGradeBook.inputGrade();
myGradeBook.maximum();
int q;
cin>>q;
}

پیشاپیش ممنون

clover
دوشنبه 09 آذر 1388, 21:37 عصر
int main()
{
GradeBook myGradeBook(); // GradeBook myGradeBook; تصحیح شود
myGradeBook.inputGrade();
myGradeBook.maximum(); // myGradeBook.maximum(3, 8, 5); تصحیح شود
int q;
cin>>q;
}

1 - روش ایجاد شی اشتباه هست . سازنده پیش فرض به صورت ضمنی احضار می شود و نیازی به پرانتز ها نیست.

2 - تابع عضو ()maximum باید با ارسال سه پارامتر فراخوانی شود. البته نیازی به فراخوانی این تابع نیست.

این تابع به محض ورود نمرات توسط تابع inputGrade احضار شده و پیغام مناسب را چاپ می کند. اما در مجموع به نظر من درست پیاده سازی نشده و می تواند به این شکل پیاده سازی شود :

int maximum()
{
int maximumGrade = grade1;

if(grade2 > maximumGrade)
maximumGrade = grade2;
if(grade3 > maximumGrade)
maximumGrade = grade3;
cout << "maximum is: " << maximumValue;

return maximumGrade;
}

fshb_ 1370
سه شنبه 10 آذر 1388, 09:23 صبح
اگر بخوام تابع maximum فراخوانی کنم و با صدا زدن تابعinputGrade تابع maximum اجرا نشه و تابع maximum بزرگترین مقدار را از متغیرهای grade1,grade2,grade3 که در inputGrade دریافت میکنه انتخاب کنه،باید چی کار کنم؟

kitten
سه شنبه 10 آذر 1388, 09:47 صبح
اگه این طوری بنویسی دیگه نیازی نیست که داخل تابع inputgrades تابع maximum را هم صدا بزنی
#include<iostream>
using namespace std;
class GradeBook
{
public:

void inputGrade()
{
cout<<"Enter three numbers:";
cin>>grade1>>grade2>>grade3;
}

int maximum()
{
int maximumValue=grade1;
if(grade2>maximumValue)
maximumValue=grade2;
if(grade3>maximumValue)
maximumValue=grade3;
cout<<"maximum is:"<<maximumValue;
}
private:
int maximumGrade;
int grade1;
int grade2;
int grade3;
};
int main()
{
GradeBook myGradeBook;
myGradeBook.inputGrade();
myGradeBook.maximum();
int q;
cin>>q;
}