//实现通讯录的建立、增加、删除、修改、查询等功能
// 能够实现简单的菜单交互,即可以根据用户输入的命令,选择不同的操作。
#include<iostream>#include<cstring>
using namespace std;
struct DataType
{
int ID; //编号
char name[10]; //姓名
char ch; //性别
char phone[13]; //电话
char addr[31]; //地址
DataType *prior;
DataType *next;
};
int m = 0; //全局变量,记录通讯录内数据个数
class Contacts
{
DataType *first; //定义头结点
public:
Contacts(); //建立
void Insert(); //增加
void Delete(); //删除
void Revise(); //修改
void Search(); //查找
void Show(); //浏览
void Print(DataType *p); //输出
void MENU(); //菜单
~Contacts();
};
//构造函数,建立头结点
Contacts::Contacts()
{
first = new DataType;
first->next = first->prior = first;
first->ID = 0;
}
//析构函数
Contacts::~Contacts()
{
DataType *p = first->prior;
DataType *q;
if (p == first)
delete p;
else
{
do
{
q = p;
p = p->prior;
delete q;
} while (p != first);
delete p;
}
}
//添加联系人(头插法)
void Contacts::Insert()
{
DataType *data = new DataType;
data->next = first->next;
data->prior = first;
first->next = data;
data->next->prior = data;
m++;
data->ID = m;
//录入信息
cout << "请输入联系人姓名:";
cin >> data->name; cin.sync();
flag1:cout << endl << "请输入联系人性别( M(男) or W(女) ):";