课程设计内容 C课程设计 中南

发布 2022-09-30 14:08:28 阅读 3131

vc++高级程序设计。

课程设计内容。

一设计内容概述。

shapefile文件是美国环境系统研究所(esri)所研制的gis文件系统格式文件,是工业标准的矢量数据文件。shapefile将空间特征表中的非拓扑几何对象和属性信息存储在数据集中,特征表中的几何对象存为以坐标点集表示的图形文件。shapefile文件并不含拓扑(topological)数据结构。

一个shape文件包括三个文件:一个主文件(*.shp),一个索引文件(*.

shx),和一个dbase (*dbf)表。主文件是一个直接存取,变长度记录的文件,其中每个记录描述构成一个地理特征(feature)的所有vertices坐标值。在索引文件中,每条记录包含对应主文件记录距离主文件头开始的偏移量,dbase表包含shp文件中每一个feature的特征属性,表中几何记录和属性数据之间的一一对应关系是基于记录数目的id号,在dbase文件中的属性记录必须和主文件中的记录顺序是相同的,图形数据和属性数据通过索引号建立一一对应关系。

shape文件中所有的内容可以被分为二类:文件头和文件内容。组织形式为:

文件头。记录头记录内容。

记录头记录内容。

记录头记录内容。

文件头长度为固定的节,下表列出了文件头的组成内容,其中位置是相对于文件的开始位置。

表一文件头说明。

其中文件长度是在16位字下文件的总长度,因此,计算机内实际长度应该是这个值得两倍。在shape文件中的所有非空shape的类型都必须是同一种类型。shape类型的值如下:

表二 shp类型。

没有被定义的shape类型值(2,4,6等直到33)为将来可能的使用而保留。目前shape文件被局限于包含以上定义的同种shape类型。在将来shape文件可以被允许包含多于一种shape类型。

若混合shape

类型被实现,文件头中的shape类型将标识该文件。

主文件头的边界盒存储文件中shape的实际幅度。边界x和y直交的(潜在的m,z)长方形包含了所有的shape。若shape文件是空的(没有记录),min,ymin,xmax,ymax的值是未被定义的。

mmin和。

mmax可以包含shape文件没有数据的值。

记录头:每个记录的头存储了记录的数目和记录内容的长度。记录头有一个固定长度8字节。下表显示文件记录头中域的字节位置。在表中,位置是相对于记录的开始的。

表三记录头说明。

记录数目从1开始。一个记录的内容长度是按16位字衡量的记录内容长度。每个记录的内容长度为这个值的两倍。

记录头接下来就是记录内容,主文件记录内容,记录内容包含一个shape类型和接着的该shape的几何数据。记录内容的长度依赖于在一个shape中部分和vertices的数目。对每种shape类型,我们首先描述该shape,然后是它在磁盘上的存储镜像。

位置是相对于记录内容的开始。本次设计内容我们只针对shp类型为1也就是点数据进行设计。一个点包括一对以x,y顺序排列的双精度的坐标:

pointdoublex;//x坐标。

doubley;//y坐标。

表四记录内容说明。

二设计任务描述及程序说明。

根据以上的shp点文件格式的描述,我们的设计内容规定为:读取给定的shp点文件并显示出来,程序框架见附件中程序**,请在程序框架内完成此程序,使其达到我们程序设计要求。

程序框架说明:

shp文件操作类shp,以下是其成员函数说明:

openshpfile:shp类的打开shp文件函数,若打开错误,则返回-1,否则返回1; 文件成功打开后,此函数还负责读取shp文件头的节,并通过copytostru函数将文件头中各个部分分别拷贝到shp类描述文件头的各个属性成员中。同时创建适配器和数据集;

getfilecode: 通过返回值获得文件**函数,也就是前文表一中描述的9994这个值;

getfilelength:通过返回值获得文件长度;

getfilever:通过返回值获得文件版本;

getfiletype:获得shp文件中shp类型,值与类型的对照表如表二;

getxmin、getxmax、getymin、getymax、getmmin、getmmax、getzmin、getzmax分别是获取shp文件的边界盒中x、y、z、m的最大值和最小值。

getnextshp:获得shp文件中下一个shp,通过此函数的out类型参数返回需要的值,若获取失败,则返回0值,否则返回1。out类型参数包括:

shp类型、x、y、recordid,其中x、y表示坐标的x、y值,recordid代表记录的id号。通过多次调用此函数能获得shp文件中的所有shp。

getdataset:返回属性表的记录集;

getfieldvalue:返回一个字符型的变量,用于获取objectid为给定值,字段名为第二个参数的字段值,用于标注点;

表单类,主要完成内容显示,主要函数如下:

1 public class pointshp

自定义的class用来表示点;

2 list listpointshp;点的集合。

dataset myds;数据集。

shp kl;自定义的shp类。

3 打开toolstripmenuitem_click:“打开”菜单事件处理函数,此函数通过shp类获得给定的shp文件(森林消防队伍。shp)的内容,将地图显示在“地图”选项卡内,同时将shp文件头信息显示在“地图概况”选项卡内以及调用fillproptytable函数填充“属性表”内的gridview,填充的内容为shp文件的属性表;

4 fillproptytable:此函数用shp文件属性表来填充datagridview;

5 picturebox1_paint:在tabcontrol的第一个选项卡内有一个picturebox, 地图在这个picturebox显示。

6 界面如图所示:

点击打开,选取文件以后:

点击地图概况:

点击属性表:

7 压缩包中的“森林消防队伍”四个文件是此次课程设计所需数据,扩展名为“shp”的是主shp文件,dbf是dbf格式的属性库文件,**中有dbf属性表提取的连接方法;shx是shp文件索引文件,主要用于检索(本次课程设计可以不使用这个文件)。

三要求。1 同学们需仔细阅读本设计指导书,准确把握设计内容和设计思想;

2 所有同学必须在给定的程序框架内编写程序,随意修改程序设计结构、不按给定功能设计函数、随意修改函数名称等行为视为不合格;

3 注意显示地图的时候,因为地**件是西安80的坐标系,需要坐标变换变换到屏幕坐标,才可以正常显示。

4 在此基础上成功完成地图平移、放大、缩小或其他类似功能的同学会评为优秀;

5 设计结果按照中南林业科技大学课程设计格式书写,设计报告需详细描述每一个功能的设计思路和过程,撰写的word文档和最终程序一起打包,以姓名+学号命名后,第十周周五前发到我qq邮箱,过期不再接受课程设计**邮件;

6 每两位同学为一组,每个小组独立完成本课程设计,课程设计报告需写明每位同学承担的任务。抄袭、弄虚作假者甚至直接拷贝者将直接判为不合格,切记!!

注 :关于字节顺序的说明。

字节顺序是指占内存多于一个字节类型的数据在内存中的存放顺序,通常有大、小两种,小字节顺序指的是低字节存放在内存低地址,高字节存放在内存低地址;大字节顺序的低字节存放在内存高地址,高字节存放在内存低地址。比如shp文件开头的4个字节是文件**,一般是9994,文件中的字节序列为 0x00 0x00 0x27 0x0a,这是大字节序列,将此字节序列与一32位整数对齐,就是9994;而shp文件的文件版本是小字节序列存放,这个值一般为1000,字节序列为0xe8 0x03 0x00 0x00,此时需要将字节序列倒过来,变成0x00 0x00 0x03 0xe8然后再与32位整数对齐,才是1000。大家可以参考其他资料或!

文件概况信息,供大家调试程序和参考:

文件**:9994

文件长度:2032

文件版本:1000

shp类型:1

x最小值:405011.6422

x最大值:494622.1383

y最小值:2519414.0591

y最大值:2634862.3882

中南大学C语言课程设计报告

中南大学。c语言程序设计实践报告。题目校际运动会管理系统。学生姓名 xxxx 学号 xxxxxxxxxx 指导教师 xxxxxx 学院信息科学与工程学院。专业班级 xxxxxxxxxxxx 完成时间 2012年06月xx日。校际运动会管理系统 1 实验要求。1 需要处理的基础数据。学校信息 学校编号...

中南大学c语言课程设计报告

中南大学。c语言程序设计 课程设计报告。题目 数据的图形化处理 学院。专业。班级。姓名。指导老师。2015年1月3日。1 设计内容及要求 3 1.1设计要求 3 1.2程序设计流程图 3 2 详细设计 5 2.1详细设计 5 2.2数据结构与程序评析 7 2.3用法说明 8 3 设计结果与分析 8 ...

C 课程设计

自动走迷宫小游戏。根据课堂讲授内容,做相应的自主练习,消化课堂所讲解的内容 通过调试典型例题或习题积累调试c 程序的经验 通过完成辅导教材中的编程题,逐渐培养学生的编程能力 用计算机解决实际问题的能力。同时在设计的过程中发现自己的不足之处,对以前所学过的知识理解的更加深刻,掌握得更加牢固。迷宫生成。...