PDA

View Full Version : سوال: مشکل در کامپایل VS2010



REZAsys
پنج شنبه 16 تیر 1390, 11:58 صبح
سلام

من یه برنامه ساده میانگین با VS2010 زبان ++C میخوام اجرا کنم

یه win 32 consol و بعد تیک empty project زدم

یه هدر

# include <string>
using std ::string;
class GradeBook
{
Public:
GradeBook(String);
Void setCourseName(String);
String getCourseName();
Void displayMessage();
Void determineClassAverage();
Private:
String CourseName;
}

به نام GradeBook.h ایجاد کردم
سورسش هم

#include <iostream>
using std::cout;
using std::cin;
using std::endl;
#include "GradeBook.h"


GradeBook::GradeBook(string name)
{
setCourseName(name);
}

Void GradeBook::setCourseName(string name)
{
if(name.length()<=25)
CourseName=name;
else
{
CourseName=name.substr(0,25);
cout<<"Name\" "<<name<<"\"exceeds max length(25).=n"<<"Limiting CourseName to first 25 characters.\n"<<endl;
}
}

String GradeBook::getCourseName()
{
return CourseName;
}
Void GradeBook::displayMessage()
{
cout<<"Welcome to the GradeBook for\n"<<getCourseName()<<"!\n",,endl;
}
Void GradeBook::determineClassAverage()
{
int total;
int gradeCounter;
int grade;
int average;
total = 0;
gradeCounter = 1;

while( gradeCounter <= 10 )
cout<<"Enter grade : ";
cin>>grade;
total=total+grade;
gradeCounter = gradeCounter + 1;
}
average = total / 10;
cout<<"\n Total of 10 grades is " <<total<<endl;
cout<<" Class average is " <<average<<endl;
}

int main()
{
GradeBook myGradeBook("cs101 C++ Programming");
myGradeBook.displayMessage();
myGradeBook.determineClassAverage();
return 0;
}

حالا F5 میزنم . زیر همه ی متغیرها و cout و cin هم خط میکشه و اجرا نمیشه!

مشکل چیه؟
ممنون

mehdi.mousavi
پنج شنبه 16 تیر 1390, 12:16 عصر
سلام.
هر جا String (با S بزرگ) دارید رو string بنویسید. همینطور برای Void که باید void باشه. همینطور Private و Public (همگی باید حروف کوچک باشند).
بعدش جای اینکه namespace ها رو اونطوری Handle کنید، کل namespace رو یکبار در فایل Header بدین شکل معرفی کنید:

using namespace std;

سپس این خطوط رو از فایل cpp حذف کنید:

using std::cout;
using std::cin;
using std::endl;

موفق باشید.

REZAsys
پنج شنبه 16 تیر 1390, 12:46 عصر
خیلی ممنون.

ولی بازم خطا میگیره( البته مشکل بزرگ بودن حروف حل شد)
فکر میکنم مشکل این باشه

GradeBook::GradeBook(string name)
{
setCourseName(name);
}

میشه خودتون یه تست کنید/
هدر

# include <string>

using namespace std;
class GradeBook
{
public:
GradeBook(string);
void setCourseName(string);
string getCourseName();
void displayMessage();
void determineClassAverage();
private:
string CourseName;
}


سورس

#include <iostream>

#include "GradeBook.h"


GradeBook::GradeBook(string name)
{
setCourseName(name);
}

void GradeBook::setCourseName(string name)
{
if(name.length()<=25)
CourseName=name;
else
{
CourseName=name.substr(0,25);
cout<<"Name\" "<<name<<"\"exceeds max length(25).=n"<<"Limiting CourseName to first 25 characters.\n"<<endl;
}
}

string GradeBook::getCourseName()
{
return CourseName;
}
void GradeBook::displayMessage()
{
cout<<"Welcome to the GradeBook for\n"<<getCourseName()<<"!\n"<<endl;
}
void GradeBook::determineClassAverage()
{
int total;
int gradeCounter;
int grade;
int average;
total = 0;
gradeCounter = 1;

while( gradeCounter <= 10 ){
cout<<"Enter grade : ";

cin>>grade;
total=total+grade;
gradeCounter = gradeCounter + 1;
}
average=total/10;

cout<<"\n Total of 10 grades is " <<total<<endl;
cout<<" Class average is " <<average<<endl;
}



int main()
{
GradeBook myGradeBook("cs101 C++ Programming");
myGradeBook.displayMessage();
myGradeBook.determineClassAverage();
return 0;
}

mehdi.mousavi
پنج شنبه 16 تیر 1390, 13:31 عصر
سلام.
کد فوق بدون هیچ مشکلی روی سیستم من compile شد و کار کرد. کل solution رو براتون بصورت zip قرار میدم تا خودتون بررسی کنید.

موفق باشید.

پاورقی: اگر پیام خطایی میگیرید، لطفا پیام خطا رو اینجا قرار بدید تا ببینم دلیلش چیه.

REZAsys
پنج شنبه 16 تیر 1390, 20:32 عصر
7207672077

این ارورش هست که زیر هیچی هم خط نمیکشه!

نکنه باید تو Wizard تیک Empty project نزنم؟:متفکر:
راستی کد شما راحت اجرا شد.

koobesh
جمعه 17 تیر 1390, 01:33 صبح
دوست عزیز یه سمی کالن در انتهای تعریف کلاس GradeBook یادت رفته بزاری.
سعی کن فایل هدر و اصلی کلاستو از فایل اصلی یعنی همون تابع main جدا کنی.