您的位置:首页 > 编程语言 > C语言/C++

对用户数据进行简单的管理用,C++实现几个字符串的字典序排序

2011-06-25 14:20 429 查看
编写程序对用户数据进行简单的管理,要求按姓名的字典序对用户信息进行排序。试定义表示用户信息的类person和处理用户信息的类compute实现上述功能。具体要求如下:
(1)定义类person,其成员如下:
(a)私有成员。
char name[10], num[10]:分别保存用户的姓名和电话号码。
(2)定义类compute,类compute必须声明为类person的友元类,其成员如下:
(a)私有成员。
person pn[3]:表示3个用户。
(b)公有成员函数。
void setdata():通过键盘输入3个用户的数据。
void sort():将数组pn表示的用户信息按姓名的字典序进行排序。
void print():按照指定格式输出用户信息。
在主函数中定义一个compute对象,再通过键盘输入每个用户的基本信息,调用相关成员函数完成对类compute和person进行测试。
输入/输出示例(下划线部分为键盘输入):
输入姓名和电话号码:
Jeorge 32121212
Mike 34545454
Adam 34676767
排序后的用户信息为:
姓名 电话号码
Adam 34676767
Jeorge 23121212
Mike 34545454

完整的代码如下:

]#include "iostream"
#include "algorithm"
using namespace std;

class person
{
private:
	char name[10];
	char num[10];
	friend class compute;   //类compute必须声明为类person的友元类
public:
	bool friend cmp(const person &a,const person &b); //友元函数从语法上看,它与普通函数一样,友元函数的特点是能够访问类中的私有成员的非成员函数。
};
class compute
{
private:
	person pn[3];     //表示3个用户
public:
	void setdata();   //通过键盘输入3个用户的数据
	void sort_name(); //将数组pn表示的用户信息按姓名的字典序进行排序
	void print();     //按照指定格式输出用户信息
};
void compute::setdata()
{
	for(int i=0;i<3;i++)
		cin>>pn[i].name>>pn[i].num;
}
bool cmp(const person &a,const person &b)
{
	return strcmp(a.name,b.name)<0;
}
void compute::sort_name()
{
	sort(pn,pn+3,cmp);
}
void compute::print()
{
	for(int i=0;i<3;i++)
		cout<<pn[i].name<<"  "<<pn[i].num<<endl;
}
int main(void)
{
	compute com;
	cout<<"请输入用户的数据:"<<endl;
	com.setdata();
	com.sort_name();
	cout<<"将用户信息按姓名的字典序进行排序:"<<endl;
	com.print();
	system("pause");
	return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐