- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
数据结构设实习报告
数据结构设计实习报告
汗水和丰收是忠实的朋友,勤学和知识是一对最美丽的恋人。
数据结构设计实习报告
专业:地理信息系统
班级:0503702
学号:这个我不知道也
姓名:倪倪
指导老师:王强 是他吗??好像是我哟!!
2007-7-11
数据结构设计实习报告
--测量数据读取及分类程序
7月2号--6号,数据结构老师安排我们进行了数据结构设计的实习。本次实习旨在让我们能熟练运用C语言编程实现对数据的操作,能熟练使用链表和栈两种结构。同时拥有对数据的基本分析和基本处理能力。掌握用C语言编程的基本方法和程序架构的基本设计,为我们培养良好的编程习惯和编程风格,同时为以后的GIS软件开发打好基础。
实习程序设计要求
本次实习老师首先给定一个武汉测量实习的数据文件,文件名为武汉实习数据.usr。里面包括了武汉市的道路,房屋等设施的点的数据。
老师要求我们编写一个程序,要实现读取此文件中的数据,并且按点、线、面分类,然后在点、线、面每一项下在再分不同类型的点,最后按选择不同类的点输出此类型下所有点的坐标。
程序需求分析
根据老师的要求,我分析本程序首先涉及两大功能模块,第一个功能模块就是这个数据读取和存储,第二个功能模块就是数据的分类操作和输出,具体模块分析后我采用了三个函数来实现这两个模块的功能,具体如下:
1. 数据文件的读取和存储 //第一个模块 Id* creat()
2. 数据操作即数据分类 //第二个模块 void operation()
3. 对分类数据的输出 //第二个模块 void print(参数)
对程序总体架构进行设计。具体设计如下:
struct coordinate{ }; //坐标
struct code{ };//代码
struct Id{ };//ID
Id*creat(){} //文件读取 创建结构
Void print(参数){}//输出指定的分类数据
Void operation(Id *head)//分类操作
{
print(参数);//调用分类输出函数
print(参数);
...........
}
Main()
{ Id *head;
head=creat();//获取结构的入口
operation();//分类操作
}
首先对第一个功能模块分析,数据文件的读取,先查看了数据文件,大体了解数据。文件中大体分四个部分,第一部分目标ID,也就是文件中多少个点,共655个。第二部分是目标分类代码。第三部分是各类型下的坐标。第四部分为结束标志。如下所示:
目标ID,0 关键字,0
目标分类代码,0 分类码,0
x1 , y1 x,y坐标串
x2 , y2
... ...
xn , yn
-666666.0 , -666666.0 目标结束
... ... 下一个目标
-999999 , -999999 整个文件结束
分析得出,要用链表来存储数据。具体的分为两个链表,一个用来存目标的ID;另一个用来存分类码和坐标数据。首先定义一个双指针域的链表,一个指针域用来连接它本身,另一个用来存目标分类码的地址,也就是第二个链表的头指针,从而使两个链表连起来。此结构的结构图和代码如下:
ID
ID
ID
..............
类型
类型
类型
..............
X,Y
X,Y
X,Y
代码:
struct coordinate
{
double x;
double y;
coordinate *next;
};
struct code
{
int code1;
int code2;
coordinate *next;
};
struct Id
{
int Id1;
int Id2;
Id *next;
code *next1;
};
下来对程序的第二部分,数据的分类。文件中规定了分类格式如下所示:
分类
文档评论(0)