城市问题.docx

上传人:b****2 文档编号:2593729 上传时间:2023-05-04 格式:DOCX 页数:9 大小:96.85KB
下载 相关 举报
城市问题.docx_第1页
第1页 / 共9页
城市问题.docx_第2页
第2页 / 共9页
城市问题.docx_第3页
第3页 / 共9页
城市问题.docx_第4页
第4页 / 共9页
城市问题.docx_第5页
第5页 / 共9页
城市问题.docx_第6页
第6页 / 共9页
城市问题.docx_第7页
第7页 / 共9页
城市问题.docx_第8页
第8页 / 共9页
城市问题.docx_第9页
第9页 / 共9页
亲,该文档总共9页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

城市问题.docx

《城市问题.docx》由会员分享,可在线阅读,更多相关《城市问题.docx(9页珍藏版)》请在冰点文库上搜索。

城市问题.docx

城市问题

盐城师范学院信息科学与技术学院

实验报告

课程名称算法与数据结构实验2011-2012学年第一学期

班级

104

学号

姓名

实验地点

4#303

实验日期

10.13

实验学时

2

实验名称

链表知识的应用

实验类型

□验证性□综合性□设计性

实验目的:

巩固链表知识,提高对链表的知识应用

实验环境:

(包括软件平台和硬件平台)

软件平台:

VC6.0++,windowsXP操作系统

硬件环境:

实验内容(应包括实验题目、算法描述、实验过程等)

实验题目:

将若干城市信息存入一个带有结点的单链表,结点中的城市信息包括城市名以及城市的位置坐标,要求:

1给一个城市名,返回其位置坐标

2给一个位置坐标P和一个距离D,返回所有与P的距离小于等于D的城市

算法描述:

程序分为三个部分,第一个是程序的入口主函数,第二个链表实现的部分

实验过程:

编写代码——程序调试——进行修改——程序运行

实验结果及分析:

界面显示如下:

输入的值为1,并输入相关城市与城市的坐标,显示出来的数据,如下:

选择的数据为2,测试如下:

选择的数据为3,进行测试,测试如下:

成绩教师签名日期

附录(可包括源程序清单或其它说明)

#include

#include

#include

typedefstructsNode

{

charsname[10];

structposition

{

floatx;

floaty;

}position;

}Elemtype;

 

typedefstructNode

{

Elemtypedata;

structNode*next;

}LNode,*LinkList;

 

voidinitList(LinkList*l)

{

*l=(LinkList)malloc(sizeof(LNode));//初始化链表。

(*l)->next=NULL;

}

 

voidreaddata(LinkListp)//输入每一个节点的数据项。

{

cout<<"name:

";

cin>>p->data.sname;

cout<<"Position:

";

cin>>p->data.position.x>>p->data.position.y;

}

 

voidwritedata(LinkListp)//显示节点数据项。

{

cout<data.sname<

cout<data.position.x<<""<data.position.y<

}

 

voidcreateList(LinkListL)//创建链表。

{

inti;

LinkListp;

for(i=1;i<5;i++)

{

p=(LinkList)malloc(sizeof(LNode));

cout<<"请输入第"<

readdata(p);

p->next=L->next;

L->next=p;

}

}

voidvisitList(LinkListL)//访问链表。

{

LinkListp;

p=L->next;

while(p)

{

writedata(p);

p=p->next;

}

}

voidgetList(LinkListL,charname[10])//给出城市名输出城市坐标。

{

LinkListp;

p=L->next;

while(p)//如果输入的名称和链表中的城市名称相同那么执行循环语句。

{

if(strcmp(p->data.sname,name))

p=p->next;//指针后移。

elsebreak;

}

if(!

p)

cout<<"你查找的城市不存在!

!

!

"<

else

cout<data.position.x<<""<data.position.y<

}

voiddisList(LinkListL,floatx,floaty,floatz)//任给一个城市坐标,和距离显示所有小于该距离的城市名称。

{

LinkListp;

intcount=0;

p=L->next;

floatq;

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<data.sname<

count++;

}

p=p->next;

}

if(count)

cout<<"附近的城市有:

"<

else

cout<<"周围查不到少于这个距离的城市!

"<

}

voidmain()

{

floatx,y,z;

charname[10];

LinkListL;

cout<<"1输入城市名称和坐标"<

cout<<"2输入城市名称返回城市坐标"<

cout<<"3给定一个城市坐标和一个距离输出该距离内的所有城市名称"<

initList(&L);

while

(1)

{

intw;

cin>>w;

switch(w)

{

case1:

cout<<"输入城市的名字和坐标"<

createList(L);

break;

case2:

cout<<"请输入城市名,你将会得到它的坐标:

"<

cin>>name;

getList(L,name);

break;

case3:

cout<<"输入一个坐标和距离,你将会得到少于这个距离的城市名:

"<

cin>>x>>y>>z;

disList(L,x,y,z);

break;

}

}

}

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 经管营销 > 公共行政管理

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2