PDA

View Full Version : نحوه ارسال ارایه ای از اشیا به تابع(کلاس)



sharareh
یک شنبه 16 خرداد 1389, 08:51 صبح
سلام. من تو درک این مسئله مشکل دارم . لطفا برام توضیح بدید.
یه کلاس دارم مشخصات دانشجو رو نگه میداره. یه تابع برای دریافت و یه تابع هم برای چاپ مشخصات داره.
یه تابع sort هم دارم که براساس بزرگترین معدل ارایه رو مرتب سازی می کنه. میخوام بدونم چطوری ارایه رو به تابع ارسال کنم و دوباره دریافت کنم . و دستورات برنامم(bold شده) درست هست یا نه؟


class stu{

char name[20];
char family[30];
float avg;
public:
void input();
stu out put();
frind void sort(stu);
}//**********************************
Void stu::input(){
Cout<<"name"<<"id"<<"avg"<<endl;
Cin>>name>>id>>avg;
}//*************************************
Void stu::output(){
Cout<<c1.name<< c1.id<< c1.avg<<endl
}//**************************************
Void sort(stu c){
Stu temp;
Float b=c[0].avg;
For(int i=1<i<100;i++)
if (c[i].avg>b){temp[i]=c[i]}
return temp;
}

}//*************************************
Void main(){
Stu M,N;
for(int i=o;i<100;i++{)
M[i].input();
N=??????????
for(i=0;i<100;i++)
M[i].output();
}

tdkhakpur
یک شنبه 16 خرداد 1389, 13:30 عصر
یه چیزی تو این مایه ها



class stu{
char name[20];
char family[30];
float avg;
public:
void input();
stu out put();
frind void sort(stu *);
}//**********************************
Void stu::input(){
Cout<<"name"<<"id"<<"avg"<<endl;
Cin>>name>>id>>avg;
}//*************************************
Void stu::output(){
Cout<<name<< id<< avg<<endl
}//**************************************
stu sort(stu *c){
stu temp;
Float b=c[0].avg;
for(int i=0<i<100;i++)
for(int j=i<j<100;j++)
if (c[i].avg>c[j]) {

temp=c[i];

c[i] = c[j];
c[j] = temp;

}


}
return temp;
}

}//*************************************
Void main(){
Stu M[100];
for(int i=o;i<100;i++{)
M[i].input();
for(i=0;i<100;i++)
M[i].output();
}

sharareh
یک شنبه 16 خرداد 1389, 22:58 عصر
سلام
پس sort رو چطوری صدا بزنم؟

tdkhakpur
دوشنبه 17 خرداد 1389, 22:20 عصر
بالا فقط قسمتی را که خواسته بودید اصلاح شد و حالت کلی به این شکل میشود


void sort(stu *c){
stu temp;
Float b=c[0].avg;
for(int i=0<i<100;i++)
for(int j=i<j<100;j++)
if (c[i].avg>c[j].avg) { // اضافه و تغییر


temp=c[i];

c[i] = c[j];
c[j] = temp;





}


}

}

void main(){
Stu M[100]={0};
for(int i=o;i<100;i++)
M[i].input();
sort(M);
for(i=0;i<100;i++)
M[i].output();
}