//定义student类
//放在文件"student_class.h"里
#include<iostream.h>
#include<string.h>
#define N 10
class Student
{public:
Student(int n,char na[20],float c,float e,float g)
{num=n;
strcpy(name,na);
ch=c;
en=e;
geo=g;
sum=c+e+g;
}
void display()
{cout<<num<<" "<<name<<" "<<ch<<" "<<en<<" "<<geo<<" "<<sum<<endl;}
friend void search(Student stu[N],int num); //类的友元函数search
friend void order(Student stu[N]); //类的友元函数order
private:
int num;
char name[20];
float ch;
float en;
float geo;
float sum;
};
#include<iostream.h>
#include<string.h>
#include"student_class.h"
#define N 10
//Student的友元函数search
void search(Student stu[N],int num)
{int i;
for(i=0;i<N;i++)
if(stu[i].num=num)
{cout<<"学生信息:"<<endl;
cout<<"学号 "<<"姓名 "<<"语文 "<<"英语 "<<"地理 "<<"总和 "<<endl;
stu[i].display();
if(i>=N)cout<<"没有找到该学生的信息"<<endl;
}
//Student的友元函数order
void order(Student stu[N])
{int j,k;
Student st;
for(j=0;j<N-1;j++)
for(k=j+1;k<N;k++)
if(stu[k].sum>stu[j].sum)
{st=stu[j];stu[j]=stu[k];stu[k]=st;}
cout<<"总成绩从大到小排序为:"<<endl;
cout<<"学号 "<<"姓名 "<<"语文 "<<"英语 "<<"地理 "<<"总和 "<<endl;
for(i=0;i<N;i++)
stu[i].display();
}
void main()
{
int num;
Student stu[N]={
Student(001,"小风",89,91,79),
Student(002,"小花",79,89,95),
Student(003,"小雪",69,79,99),
Student(004,"小月",73,73,90),
Student(005,"小赤",99,72,65),
Student(006,"小橙",65,67,79),
Student(007,"小绿",92,76,73),
Student(008,"小青",74,83,91),
Student(009,"小蓝",90,92,91),
Student(010,"小紫",77,88,66)}
cout<<"输入学号:";
cin>>num;
search(stu[N],num);
order(stu[N]);
}