p=new person;
pp->number=num;
pp->name=names;
if(n==0) // 若没有则创建循环链表
{ head=end=pp;
end->next=head; //********实现循环
}
else
{ pp->next=q->next;
q->next=pp;
}
n++; //每添加一个人人数自动加一
cout<<"\n是否继续添加(Y/N)";
j=getchar();
}while(j=='Y'||j=='y');
getchar();
}
void Jos::Delete()
{ system("cls");
if(IsEmpty()) {back();return;} //检查是否为空链
person *p,*pre;
int num ;
char c;
showlist();
cout<<"\n请输入需要删除人员的编号:";
do{ cin>>num;
getchar();
p=head;
if(n==1&;&;num!=head->number)cout<<"输入错误!请重新输入:";
else while(num!=p->number&;&;p->next!=head)
{pre=p;p=p->next;}
if(n>1&;&;p->next==head) cout<<"输入错误!请重新输入:";
}while((n==1&;&;num!=head->number)||(n>1&;&;p->next==head));
cout<<"\n您要删除人员的信息如下\n\n\t 编号: "<
number<<" :"<name< cout<<"\n是否确定删除(Y/N):";
cin>>c;
getchar();
if(c=='Y'||c=='y')
{ if(n==1)
{ delete head;head=end=NULL;}
if(p==head) {head=p->next;end->next=head;}//删除头结点
else {
pre->next=p->next;
delete p;
}
n--;
cout<<"\n\t\t\t 删除成功! "< cout<<"删除后的链表为:"< showlist();
back();
return;
}
else return;
}
void Jos::modify()
{ system("cls"); //检测查是否为空链
if(IsEmpty()) {back();return;} //检查是否为空链
person *p;
int num ;
string names;
char i,j;
if(n==0)
{ back();return ;}
showlist();
cout<<"\n\n请输入需要修改人员的编号:";
do{ cin>>num;
getchar();
p=findnumber(num);
if(p==NULL) cout<<"\n输入错误!请重新输入:";
}while(p==NULL);
cout<<"\n您要修改人员的信息如下\n\n 编号: "<number<<" :"<name< cout<<"\n您有以下两种修改方式:"< cout<<"\n 1 修改编号 2 修改"< cout<<"\n\t请选择[1/2]:";
do{ cin>>j;
if(j!='1'&;&;j!='2') cout<<"输入错误!请重新输入:";
}while(j!='1'&;&;j!='2');
switch(j)
{case '1': { cout<<"\n请输入新的编号:";cin>>num;getchar();
cout<<"\n\n 修改前的编号:"<number<<"\t修改后的编号:"< cout<<"\n\n是否确定修改(Y/N):";
c