对用户数据进行简单的管理用,C++实现几个字符串的字典序排序
編寫程序?qū)τ脩魯?shù)據(jù)進(jìn)行簡(jiǎn)單的管理,要求按姓名的字典序?qū)τ脩粜畔⑦M(jìn)行排序。試定義表示用戶信息的類person和處理用戶信息的類compute實(shí)現(xiàn)上述功能。具體要求如下:
(1)定義類person,其成員如下:
(a)私有成員。
char name[10], num[10]:分別保存用戶的姓名和電話號(hào)碼。
(2)定義類compute,類compute必須聲明為類person的友元類,其成員如下:
(a)私有成員。
??????? person pn[3]:表示3個(gè)用戶。
(b)公有成員函數(shù)。
void setdata():通過鍵盤輸入3個(gè)用戶的數(shù)據(jù)。
void sort():將數(shù)組pn表示的用戶信息按姓名的字典序進(jìn)行排序。
void print():按照指定格式輸出用戶信息。
在主函數(shù)中定義一個(gè)compute對(duì)象,再通過鍵盤輸入每個(gè)用戶的基本信息,調(diào)用相關(guān)成員函數(shù)完成對(duì)類compute和person進(jìn)行測(cè)試。
輸入/輸出示例(下劃線部分為鍵盤輸入):
輸入姓名和電話號(hào)碼:
Jeorge 32121212
Mike 34545454
Adam 34676767
排序后的用戶信息為:
姓名 電話號(hào)碼
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); //友元函數(shù)從語(yǔ)法上看,它與普通函數(shù)一樣,友元函數(shù)的特點(diǎn)是能夠訪問類中的私有成員的非成員函數(shù)。
};
class compute
{
private:person pn[3]; //表示3個(gè)用戶
public:void setdata(); //通過鍵盤輸入3個(gè)用戶的數(shù)據(jù)void sort_name(); //將數(shù)組pn表示的用戶信息按姓名的字典序進(jìn)行排序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<<"請(qǐng)輸入用戶的數(shù)據(jù):"<<endl;com.setdata();com.sort_name();cout<<"將用戶信息按姓名的字典序進(jìn)行排序:"<<endl;com.print();system("pause");return 0;
}
總結(jié)
以上是生活随笔為你收集整理的对用户数据进行简单的管理用,C++实现几个字符串的字典序排序的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 数据结构课程设计----基数排序
- 下一篇: C++大数模板