1 /*
2 编写学生类Stu,
3 包含学生姓名,成绩,
4 设计一个友员函数,
5 将学生成绩按大到小排序
6 */
7 #include <iostream>
8 #include <string>
9
10 using namespace std;
11
12 class Stu
13 {
14 friend void sort(Stu &a,Stu &b); //设置友员函数
15 public:
16 Stu(string n=" ",int g=0):name(n),grade(g){}
17 void getinfor(void);
18 void output(void);
19 private:
20 string name;
21 int grade;
22 };
23
24 void Stu::getinfor(void)
25 {
26 cout<<"请输入学生姓名 成绩:";
27 cin>>name;
28 cin>>grade;
29 }
30
31 void Stu::output(void)
32 {
33 cout<<"姓名:"<<name;
34 cout<<"成绩: "<<grade<<endl;
35 };
36
37 void sort(Stu &a,Stu &b)
38 {
39 string temp;
40 int temp1;
41 if (a.grade<b.grade)
42 {
43 temp=a.name;
44 a.name=b.name;
45 b.name=temp;
46
47 temp1=a.grade;
48 a.grade=b.grade;
49 b.grade=temp1;
50 }
51 }
52
53 int main(void)
54 {
55 Stu stu[100];
56 int i,n,j;
57 cout<<"请输入人数:";
58 cin>>n;
59 for(i=0;i<n;i++)
60 {
61 stu[i].getinfor();
62 }
63 cout<<"排序结果为:"<<endl;
64 for(i=0;i<n;i++)
65 {
66 for(j=0;j<n-i-1;j++)
67 {
68 sort(stu[j],stu[j+1]);
69 }
70 }
71 for(i=0;i<n;i++)
72 {
73 stu[i].output();
74 }
75 return 0;
76 }