40.编写程序对用户数据进行简单的管理,要求按姓名的字典对用户信息进行排序。试定义表示用户信息的类person和处理用户信息的类compute实现上述功能。
具体要求如下:
-
定义类Person,其成员如下:
私有成员:- char name[10],num[10]; 分别保存用户的姓名和电话号码。
-
定义类Compute,类Compute 必须声明为类Person 的友元类,其成员如下:
私有成员:- Person pn[3]; 表示 3 个用户。
公有成员函数:
- void setdata( ); 通过键盘输入 3 个用户的数据。
- void sort( ); 将数组 pn 表示的用户信息按姓名的字典进行排序。
- void print( ); 按照指定的格式输出用户信息。
在主函数中定义一个类Compute 的对象,再通过键盘输入每个用户的其本信息,调用相关成员函数完
成对类Compute和Person 进行测试。
输入姓名和电话号码:
Jeorge 32121212
Mike 34545454
Adam 34676767
排序后的用户信息为:
姓名 电话号码
Adam 34676767
Jeorge 32121212
Mike 34545454
#include<iostream>
#include<cstring>
using namespace std;
class Compute;//这一句千万记得要加上!
class Person{
char name[10],num[10];
friend Compute;
};
class Compute{
Person pn[3];
public:
void setdata(){
for(int i=0;i<3;i++){
cout<<"please input name and num:"<<endl;
cin>>pn[i].name>>pn[i].num;
}
}
void sort(){
for(int i=0;i<2;i++){
for(int j=0;j<2;j++){
if(strcmp(pn[j].name,pn[j+1].name)>0){
Person p = pn[j];
pn[j]=pn[j+1];
pn[j+1]=p;
}
}
}
}
void print(){
for(int i=0;i<3;i++){
cout<<pn[i].name<<" ";
cout<<pn[i].num<<endl;
}
}
};
int main(){
Compute c;
c.setdata();
// c.print();
c.sort();
c.print();
return 0;
}