alivazirinia
یک شنبه 22 اردیبهشت 1392, 21:28 عصر
سلام من برنامه زیر نوشتم میخوام بهش مرتب سازی به روش حبابی بر اساس معدل و نام و بعد جستجو بر اساس نام - نام خانوادگی - شماره دانشجویی اضافه کنم لطفا راهنمایی کنید با سپاس
#include <iostream>
#include <conio.h>
using namespace std;
class student {
public:
char name[10];
char family[20];
float ave;
char st_num[10];
void getinfo(student st[],int n);
void bubble(float ave);
void student :: sort (student st[],int n);
void printinfo(student st[],int n);
};
void student :: getinfo (student st[],int n)
{
int i;
for (i=0;i<n;i++)
{
cout<<"\n";
cout<<"enter name["<<i+1<<"]: ";
cin>>st[i].name;
cout<<"enter family["<<i+1<<"]: ";
cin>>st[i].family;
cout<<"enter avrage["<<i+1<<"]: ";
cin>>st[i].ave;
cout<<"enter student number["<<i+1<<"]: ";
cin>>st[i].st_num;
cout<<"\n";
}
}
void student :: sort(student st[],int n)
{
int i,j;
student temp;
for(i=2;i>=0;i--)
{
for(j=0;j<i;j++)
if (st[j].ave<st[j+1].ave)
{
temp= st[j];
st[j]=st[j+1];
st[j+1]=temp;
}
}
}
void student :: printinfo(student st[], int n)
{
int i;
cout<<"\n";
cout<<"name family avrage student number\n\n";
for(i=0;i<n;i++)
{
cout<<"\n";
cout<<st[i].name<<"\t";
cout<<st[i].family<<"\t";
cout<<st[i].ave<<"\t";
cout<<st[i].st_num<<"\t";
cout<<endl;
cout<<"\n";
}
}
int main()
{
student st[2],s;
int n;
n=sizeof (st)/sizeof(student);
int menu();
int m;
while (1)
{
m = menu();
switch (m)
{
case 1:s.getinfo(st,n);
break;
case 2:s.printinfo(st,n);
break;
case 3:s.sort(st,n);
break;
case 4:return 0;
default:
cout<<"\n";
cout<< "yek adad az 1 ta 4 vared konid \n";
cout<<"\n";
getch();
}
}
}
int menu()
{
int x;
cout<<"\n";
cout<<"1-vared kardan moshakhasat\n";
cout<<"2-namayesh moshakhasat\n";
cout<<"3-sort \n";
cout<<"4-exit\n\n";
cout<<"yeki az adad x(1.2.3.4) vared konid = ";
cin>>x;
cout<<"\n";
return x;
}
#include <iostream>
#include <conio.h>
using namespace std;
class student {
public:
char name[10];
char family[20];
float ave;
char st_num[10];
void getinfo(student st[],int n);
void bubble(float ave);
void student :: sort (student st[],int n);
void printinfo(student st[],int n);
};
void student :: getinfo (student st[],int n)
{
int i;
for (i=0;i<n;i++)
{
cout<<"\n";
cout<<"enter name["<<i+1<<"]: ";
cin>>st[i].name;
cout<<"enter family["<<i+1<<"]: ";
cin>>st[i].family;
cout<<"enter avrage["<<i+1<<"]: ";
cin>>st[i].ave;
cout<<"enter student number["<<i+1<<"]: ";
cin>>st[i].st_num;
cout<<"\n";
}
}
void student :: sort(student st[],int n)
{
int i,j;
student temp;
for(i=2;i>=0;i--)
{
for(j=0;j<i;j++)
if (st[j].ave<st[j+1].ave)
{
temp= st[j];
st[j]=st[j+1];
st[j+1]=temp;
}
}
}
void student :: printinfo(student st[], int n)
{
int i;
cout<<"\n";
cout<<"name family avrage student number\n\n";
for(i=0;i<n;i++)
{
cout<<"\n";
cout<<st[i].name<<"\t";
cout<<st[i].family<<"\t";
cout<<st[i].ave<<"\t";
cout<<st[i].st_num<<"\t";
cout<<endl;
cout<<"\n";
}
}
int main()
{
student st[2],s;
int n;
n=sizeof (st)/sizeof(student);
int menu();
int m;
while (1)
{
m = menu();
switch (m)
{
case 1:s.getinfo(st,n);
break;
case 2:s.printinfo(st,n);
break;
case 3:s.sort(st,n);
break;
case 4:return 0;
default:
cout<<"\n";
cout<< "yek adad az 1 ta 4 vared konid \n";
cout<<"\n";
getch();
}
}
}
int menu()
{
int x;
cout<<"\n";
cout<<"1-vared kardan moshakhasat\n";
cout<<"2-namayesh moshakhasat\n";
cout<<"3-sort \n";
cout<<"4-exit\n\n";
cout<<"yeki az adad x(1.2.3.4) vared konid = ";
cin>>x;
cout<<"\n";
return x;
}