数据结构课程设计-C++通讯录管理系统设计 第2页
switch(response)
{
case 'a':
cin.ignore(80,'\n');
cout<<"请输入要删除的人的姓名:";
char nam[15];
cin.getline(nam,strlen(nam));
if(IsEmpty())
cout<<"没有记录系统为空!";
else
{
Item<type> * pf=Head;
Item<type> * pt=pf->next;
while(pf&&(pf->data).IsThisName(nam))
{
(pf->data).print();
cout<<"确定要删除?Y/N..";
cin>>response;
cin.ignore(80,'\n');
if(response=='y'||response=='Y')
{
Head=Head->next;
pf=Head;
}
if(pf==0) return;
}
pt=pf->next;
while(pt)
{
if((pt->data).IsThisName(nam))
{
(pt->data).print();
cout<<"确定要删除?Y/N..";
cin>>response;
cin.ignore(80,'\n');
if(response=='y'||response=='Y')
{
pf->next=pt->next;
pt=pf->next;
}
else
{
pf=pf->next;
pt=pf->next;
}
}
}
}
break;
case 'b':
cin.ignore(80,'\n');
cout<<"请输入要删除的人的电话号码:";
char pho[15];
cin.getline(pho,strlen(pho));
if(IsEmpty())
cout<<"没有记录系统为空!";
else
{
Item<type> * pf=Head;
Item<type> * pt=pf->next;
while(pf&&(pf->data).IsThisPho(pho))
{
(pf->data).print();
cout<<"确定要删除?Y/N..";
cin>>response;
cin.ignore(80,'\n');
if(response=='y'||response=='Y')
{
Head=Head->next;
pf=Head;
}
else
{
pf=pf->next;
pt=pf->next;
}
}
while(pt)
{
if((pt->data).IsThisPho(pho))
{
(pt->data).print();
cout<<"确定要删除?Y/N..";
cin>>response;
cin.ignore(80,'\n');
if(response=='y'||response=='Y')
{
pf->next=pt->next;
pt=pf->next;
}
else
{
pf=pf->next;
pt=pf->next;
}
}
}
}
break;
}
}
template <class type>
void List<type>::print()
{
int cnt=0;
if(Head==0)
{
cout<<"empty\n";
}
Item<type> * pt=Head;
while(pt)
{
cout<<"No."<<++cnt<<endl;
(pt->data).print();
pt=pt->next;
}
cout<<"\n\n";
}
template <class type>
void List<type>::modefy()
{
char response;
cout<<"请选择修改方式..a.通过姓名b.通过电话号码..";
cin>>response;
cin.ignore(80,'\n');
switch(response)
{
case 'a':
cout<<"请输入要修改的人的姓名:";
char nam[15];
cin.getline(nam,strlen(nam));
if(IsEmpty())
cout<<"没有记录系统为空!";
else
{
Item<type> * pt=Head;
while(pt)
{
if((pt->data).IsThisName(nam))
{
(pt->data).print();
cout<<"确定修改?Y/N..";
cin>>response;
cin.ignore(80,'\n');
if(response=='y'||response=='Y')
{
(pt->data).modefy();
pt=pt->next;
}
else
pt=pt->next;
}
}
}
break;
case 'b':
cout<<"请输入要修改的人的电话号码:";
char pho[15];
cin.getline(pho,strlen(pho));
if(IsEmpty())
cout<<"没有记录系统为空!";
else
{
Item<type> * pt=Head;
while(pt)
{
if((pt->data).IsThisPho(pho))
{
(pt->data).print();
cout<<"确定要修改?Y/N..";
cin>>response;
cin.ignore(80,'\n');
if(response=='y'||response=='Y')
{
(pt->data).modefy();
pt=pt->next;
}
else
pt=pt->next;
}
}
}
break;
}
}
template <class type>
void List<type>::append()
{
Item<type> * pt=new Item<type>;
if(IsEmpty())
Head=End=pt;
else
{
End->next=pt;
End=pt;
}
}
template <class type>
bool List<type>::IsEmpty()
{
return(Head==0);
}