城市问题.docx
- 文档编号:18192113
- 上传时间:2023-04-24
- 格式:DOCX
- 页数:9
- 大小:96.85KB
城市问题.docx
《城市问题.docx》由会员分享,可在线阅读,更多相关《城市问题.docx(9页珍藏版)》请在冰豆网上搜索。
城市问题
盐城师范学院信息科学与技术学院
实验报告
课程名称算法与数据结构实验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< cout< } 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< } 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< 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; } } }
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 城市 问题