请C语言高手帮忙做一下c程序设计题目

来源:百度知道 编辑:UC知道 时间:2024/06/06 06:08:57
题目 通讯录
1. 设计要求:
通讯录至少应该有以下数据项:姓名,地址,手机,邮编,E-mail。
对通讯录应该包含有以下操作:向通讯录中添加信息,在通讯录中按姓名或手机号查找个人信息,删除通讯录中的个人信息,按不同数据项排序后列表输出通讯录中所有人的信息。通讯录中记录的数量是没有限制的。
输入信息时要检查数据项手机、邮编、E-mail的合法性,手机:11位数字;邮编:6位数字;E-mail:包含@字符,且@两边都非空。
能够将通讯录中的数据写入文件和从文件读入数据。程序启动时先从文件读入数据,写入文件时覆盖原有的内容。此项为提高要求。
程序的主界面如下:

通讯录
1. 添加
2. 查询
3. 删除
4. 排序
5. 全部输出
6. 写入文件
7. 读取文件
0. 退出

2. 提示
定义合适的结构体类型,使用结构体数组的方式组织数据,上面列出的数据项应该是字符串类型。排序算法可参考教材P215 例5-8中的选择排序方法;也可上网查找其他排序方法,如冒泡排序法等。

去百度搜索一下就有现成的了

没工夫编了,给你找了个现成的,百度知道里的。

#include <iostream>
#include <string>
#include "address.h"
#include "addressList.h"
#include "addressBook.h"
using namespace std;
int main()
{
new AddressBook; //开启通信录
return 0;
}
ostream& operator<<(ostream& os, const RecordList& c_rl)
{
RecordList::const_iterator it;
RecordList::const_iterator it_end =c_rl.end();
for (it=c_rl.begin();it!=it_end; it++)
{
os << (*it)->name << '\n' << (*it)->tel << '\n';
}
return os;
}
istream& operator>> (istream& is, RecordList& rl)
{
Record* rec;
string name;
while (true)
{

//注意这里使用的是全局的getline()函数,而不是istream的成员函
//数.全局的getling()函数将从istream中取出最后一个分隔符,
//而istream的成员函数getline则不会
getline(is,name);
if (n