/*
功能:通讯录
作者:wind
日期:2013-10-12
*/
#include <iostream>
#include <string>
using namespace std;
class Address
{
public:
Address(string aName,string aTele);
~Address();
void printAddress(Address *head);
void insertAddress(Address *head);
void deleteAddress(Address *head);
Address *next;
private:
string m_aName;
string m_aTele;
};
Address::Address(string aName=" ",string aTele=" "):
m_aName(aName),m_aTele(aTele){};
Address::~Address(){};
Address* creatList(void)
{
Address *head;
head = new Address;
if (!head)
{
exit(0);
}
head->next=NULL;
return head;
}
void Meu(void)
{
cout<<"1.添加记录:"<<endl;
cout<<"2.删除记录:"<<endl;
cout<<"3.浏览记录:"<<endl;
cout<<"4.退出系统:"<<endl;
cout<<"请选择:";
}
void Address::insertAddress(Address *head)
{
Address *p,*q;
string name,tele;
p = head;
q = NULL;
q = new Address;
if (p->next==NULL)
{
cout<<"提示:通讯录中没有记录。"<<endl;
cout<<"联系人:";
cin>>q->m_aName;
cout<<"电话:";
cin>>q->m_aTele;
p->next = q;
q->next = NULL;
p = p->next;
}
else
{
while (p->next)
{
p =p->next ;
}
printAddress(head);
cout<<"联系人:";
cin>>q->m_aName;
cout<<"电话:";
cin>>q->m_aTele;
p->next = q;
q->next = NULL;
p = p->next;
}
}
void Address::deleteAddress(Address *head)
{
int i,n;
Address*p,*q;
p = q = head;
cout<<"请输入记录的序号:";
cin>>n;
for (i=0;i<n;i++)
{
p =q;
q = q->next;
}
if (q)
{
p->next = q->next;
}
}
void Address::printAddress(Address *head)
{
Address*p=head;
int i=1;
while(p->next)
{
p = p->next;
cout<<i<<"."<<p->m_aName<<" "<<p->m_aTele<<endl;
i++;
}
}
int main(void)
{
Address *head;
Address num;
int choice;
head = creatList();
do
{
Meu();
cin>>choice;
switch(choice)
{
case 1:
num.insertAddress(head);
break;
case 2:
num.deleteAddress(head);
num.printAddress(head);
break;
case 3:
num.printAddress(head);
break;
case 4:
break;
}
} while (choice!=4);
delete head;
system("pause");
return 0;
}