对用户数据进行简单的管理用,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
完整的代码如下:
(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; }
相关文章推荐
- Hadoop—MapReduce进行数据查询和实现推简单荐系统---练习7
- [C++]数据结构实验04:使用堆栈进行简单的四则运算
- 简单数据结构之栈(C++模板库实现)
- 使用 AJAX,局部刷新 GridView 进行数据绑定的简单实现
- c++实现aes加密算法,对字符串进行加密
- C++中提供了多种基本的数据类型。实际上,这些远不能满足我们的需求,如复数(第10章的例子大多是处理虚数的),再如分数。本任务将设计一个简单的分数类,完成对分数的几个运算。一则巩固基于对象编程的方法,
- C++实现线程同步的几种方式 线程同步是指同一进程中的多个线程互相协调工作从而达到一致性。之所以需要线程同步,是因为多个线程同时对一个数据对象进行修改操作时,可能会对数据造成破坏,下面是多
- Python基础(7)——名片管理系统(实现了数据简单的存储、修改、删除、查看等)
- ASP.NET MVC+EF框架+EasyUI实现权限管理系列(16)-类库架构扩展以及DLL文件生成修改和用户的简单添加
- Spring Data MongoDB 使用group和unwind实现对数组数据进行简单统计
- 请实现一个队列,既可以存放整数,又可以存放字符串。简单的说,队列是一种数据结构,按照先进先出的顺序管理进、出队列的元素
- c++ 实现一个简单的k-v数据黑板
- 用 AJAX,局部刷新 GridView 进行数据绑定的简单实现
- Asp.Net MVC+BootStrap+EF6.0实现简单的用户角色权限管理10
- C++ 类静态数据成员除了要声明外,还要在类实现文件中进行定义。
- Spring MVC 学习笔记8 —— 实现简单的用户管理(4)
- 使用 MEAN 进行全栈开发基础篇——2、弄一个简单的用户管理试试
- c++实现aes加密算法,对字符串进行加密
- 字符串处理是许多程序中非常重要的一部分,它们可以用于文本显示,数据表示,查找键和很多目的.在Unix下,用户可以使用正则表达式的强健功能实现这些 目的,从Java1.4起,Java核心API就引入了java.util.regex程序包,它是一种有价值的基础
- 用SHA1或MD5 算法加密数据(示例:对用户身份验证的简单实现)