}
intshortdistance(Place*head)//查找两服务之间最短路径
{
inti,j;
Place*t=head->next,*q=head->next;
cout<<"请输入要查询的两个服务的位置序号:
"<cin>>i>>j;
while(t)
{
if(t->num==i)break;
elset=t->next;
}
while(q)
{
if(q->num==j)break;
elseq=q->next;
}
if(q==NULL||t==NULL)
cout<<"抱歉,没有通向的路径!
"<
else
{
folyd();
display(i,j);
}
cout<return1;
}
voidadd(Place*&head)//增加服务
{
Place*p,*t=head->next;
p=(Place*)malloc(sizeof(Place));
inta;
intb;
intx;
inty;
inti;
cout<<"请输入添加的服务位置(需输入大于9的整数)。
";
cin>>p->num;
cout<while(t)
{
if(t->num==p->num)
{
cout<<"此位置已被其它服务占用,请重新输入其它空白的位置。
"<cout<<""<cin>>p->num;continue;
}
elset=t->next;
}
if(t==NULL)
{
cout<<"服务编号:
";
cin>>p->date.number;
cout<<"服务名字:
";
cin>>p->date.name;
cout<<"服务简介:
";
cin>>p->date.introduce;
x=p->num;
cout<cout<<"请输入路径条数、相关服务的位置y、路径长度"<cin>>a;
cout<for(i=1;i<=a;i++)
{
cin>>y;
cin>>b;
MGr.legs[x][y]=MGr.legs[y][x]=b;
}
cout<<"服务位置:
"<num<cout<<"服务编号:
"<date.number<cout<<"服务名称:
"<date.name<cout<<"服务简介:
"<date.introduce<cout<<""<Place*q=head->next;
while(q->next)
{
q=q->next;
}
p->next=q->next;
q->next=p;
Num++;
}
}
voiddeleted(Place*&head)//删除服务
{
inttext=0;
charcnum[10];
Place*p=head;
cout<<"输入删除的服务编号:
"<cout<<""<cin>>cnum;
while(p->next)
{
if(strcmp(p->next->date.number,cnum)==0)
{
cout<<"恭喜您,您已成功将服务"<next->date.name<<"关闭!
"<p->next=p->next->next;
Num--;
break;
}
else
{
if(p->next==NULL)
cout<<"该服务不存在!
"<cout<<""<p=p->next;
}
}
cout<}
voidfind(Place*&head)//查询服务
{
intn;
Place*p=head;
cout<<"输入查询的服务位置序号:
";
cout<<""<
cin>>n;
while(p->next)
{
if(p->next->num==n)
{
cout<<"服务位置:
"<next->num<cout<<"服务编号:
"<next->date.number<cout<<"服务名称:
"<next->date.name<cout<<"服务简介:
"<next->date.introduce<break;
}
elsep=p->next;
}
if(p->next==NULL)
cout<<"该服务不存在!
"<cout<<""<cout<<""<}
voidreplace(Place*&head)//修改服务
{
charname1[20];
charnumber1[10],number2[10];
charintroduce1[100];
Place*p=head;
cout<<"输入要修改的的服务编号:
"<cout<<""<cin>>number1;
while(p->next)
{
if(strcmp(p->next->date.number,number1)==0)
{
cout<<"请输入新的服务名称:
";
cin>>name1;
cout<<"请输入新的服务编号:
";
cin>>number2;
cout<<"请输入新的服务简介:
";
cin>>introduce1;
strcpy(p->next->date.name,name1);
strcpy(p->next->date.number,number2);
strcpy(p->next->date.introduce,introduce1);
cout<cout<<"服务位置:
"<next->num<cout<<"服务编号:
"<next->date.number<cout<<"服务名称:
"<next->date.name<cout<<"服务简介:
"<next->date.introduce<cout<break;
}
elsep=p->next;
}
if(p->next==NULL)
cout<<"该服务不存在!
"<cout<<""<cout<}
voidmenu()//主菜单
{cout<<""<cout<<""<cout<<"1查询服务请按1键;"<
cout<<"2修改服务请按2键;"<
cout<<"3增加服务请按3键;"<
cout<<"4删除服务请按4键"<
cout<<"5路径搜索请按5键"<
cout<<"6退出系统请按6键;"<cout<<""<cout<<""<
}
intmain()//主函数
{
cout<<"欢迎使用东北林业大学校园导游查询系统"<cout<<""<cout<intx;
init(p);
while
(1)
{
cout<<"当前存在的服务个数为:
"<cout<menu();
cin>>x;
switch(x)
{
case1:
find(p);break;
case2:
replace(p);break;
case3:
add(p);break;
case4:
deleted(p);break;
case5:
shortdistance(p);break;
case6:
cout<<"恭喜您,成功退出系统!
"<
exit(0);
}
}
}