C++面向对象编程题 第40题

40.编写程序对用户数据进行简单的管理,要求按姓名的字典对用户信息进行排序。试定义表示用户信息的类person和处理用户信息的类compute实现上述功能。

具体要求如下:

  1. 定义类Person,其成员如下:
    私有成员:

    • char name[10],num[10]; 分别保存用户的姓名和电话号码。
  2. 定义类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;
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值