#include<iostream.h>
# include <malloc.h>
# include <string.h>
typedef struct sNode
{
char sname[10];
struct position
{
float x;
float y;
}position;
}Elemtype;
typedef struct Node
{
Elemtype data;
struct Node *next;
}LNode,*LinkList;
void initList(LinkList *l)
{
*l=(LinkList)malloc(sizeof(LNode));//初始化链表。
(*l)->next=NULL;
}
void readdata(LinkList p)//输入每一个节点的数据项。
{
cout<<"name:";
cin>>p->data.sname;
cout<<"Position:";
cin>>p->data.position.x>>p->data.position.y;
}
void writedata(LinkList p)//显示节点数据项。
{
cout<<p->data.sname<<endl;
cout<<p->data.position.x<<" "<<p->data.position.y<<endl;
}
void createList(LinkList L)//创建链表。
{
int i;
LinkList p;
for(i=0;i<13;i++)
{
p=(LinkList)malloc(sizeof(LNode));
cout<<"Input "<<i<<"node data "<<endl;
readdata(p);
p->next=L->next;
L->next=p;
}
}
void visitList(LinkList L)//访问链表。
{
LinkList p;
p=L->next;
while(p)
{
writedata(p);
p=p->next;
}
}
void getList(LinkList L,char name[10])//给出城市名输出城市坐标。
{
LinkList p;
p=L->next ;
while(p)//如果输入的名称和链表中的城市名称相同那么执行循环语句。
{
if(strcmp(p->data.sname,name))
p=p->next;//指针后移。
else break;
}
if(!p)
cout<<"the city you want to consult does not exist"<<endl;
else
cout<< p->data.position.x<<" "<<p->data.position.y<<endl;
}
void disList(LinkList L,float x,float y,float z)//任给一个城市坐标,和距离显示所有小于该距离的城市名称。
{
LinkList p;
int count=0;
p=L->next ;
float q;
q=(p->data.position.x-x)*(p->data.position.x-x)+(p->data.position.y-y)*(p->data.position.y-y);
while(p)//当链表不为空,执行while循环。
{
if(q<=z*z)//如果两个城市的距离小于给定的距离则把该城市的名称输出
{
cout<<p->data.sname<<endl;
count++;
}
p=p->next;
}
if(count)
cout<<"附近的城市有:"<<count<<" 个"<<endl;
else
cout<<"there`s no such a city"<<endl;
}
void main()
{
float x,y,z;
char name[10];
LinkList L;
cout<<"以下以江苏为例"<<endl;
cout<<"1 输入城市名称和坐标"<<endl;
cout<<"2显示所有城市的名称和坐标"<<endl;
cout<<"3输入城市名称返回城市坐标"<<endl;
cout<<"4给定一个城市坐标和一个距离输出该距离内的所有城市名称"<<endl;
initList(&L);
while(1)
{
int w;
cin>>w;
switch(w)
{
case 1:cout<<"input cities` name and position"<<endl;
createList(L);
break;
case 2: cout<<"All the cities name and position is:"<<endl;
visitList(L);
break;
case 3: cout<<"please input the city`s name that you want to consult:"<<endl;
cin>>name;
getList(L,name);
break;
case 4: cout<<"Please input a position and distance,you will get all the cities` name that in the distance"<<endl;
cin>>x>>y>>z;
disList(L,x,y,z);
break;
}
}
}
weixin_42653672
- 粉丝: 109
- 资源: 1万+
最新资源
- Java源码ssm框架体育竞赛运动会成绩管理裁判-毕业设计论文-期末大作业.rar
- Java源码ssm框架停车场车位管理系统-毕业设计论文-期末大作业.rar
- Java源码ssm框架网络视频播放器-毕业设计论文-期末大作业.rar
- Java源码ssm框架校园餐厅美食分享系统-毕业设计论文-期末大作业.rar
- Java源码ssm框架小说阅读下载网站-毕业设计论文-期末大作业.rar
- Java源码ssm框架雅博书城图书销售评价系统-毕业设计论文-期末大作业.rar
- Java源码ssm框架医院挂号上班打卡系统-毕业设计论文-期末大作业.rar
- Java源码ssm框架学生综合考评作业成绩管理系统-毕业设计论文-期末大作业.rar
- 计算机程序员三级模拟题
- Java源码ssm框架医院远程诊断系统-毕业设计论文-期末大作业.rar
- Java源码ssm框架医院预约挂号系统-毕业设计论文-期末大作业.rar
- Java源码ssm框架宜百丰超市进销存购物商城-毕业设计论文-期末大作业.rar
- Java源码ssm框架艺诚美业管理系统-毕业设计论文-期末大作业.rar
- Java源码ssm框架疫情居家办公OA系统演示录像-毕业设计论文-期末大作业.rar
- Java源码ssm框架幼儿园教育综合管理系统-毕业设计论文-期末大作业.rar
- springboot-vue-付费问答系统的设计与实现-源码工程-29页从零开始全套图文详解-41页设计论文-27页答辩ppt-全套开发环境工具、文档模板、电子教程、视频教学资源分享
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
评论0