基础篇围绕《实现一个简易的图形编辑器》这样一个主题,由浅入深逐步开展编程实践。通过一系列实践,一方面建立了GIS及其相关领域基本的图形知识,同时实现了计算机高级语言、数据结构、算法设计、文件存储、程序跟踪和调试优化这几个软件开发基础知识和技能的充分训练。各项实践由易到难,逐步递进,直至后带有挑战性的实践。
《工程师计划软件工程专业系列丛书·阶梯式GIS软件工程实践系列教程:基础篇》可作为大专院校C++课程的实习参考书,特别是作为大一到大二期间的综合实践用书,也可供从事GIS基础软件开发人员参考。
第1章实习目的及要求
1.1实习目的
1.2实习目标
1.2.1C++语言
1.2.2数据结构
1.2.3图形绘制
1.2.4编程工具和框架
1.2.5程序调试
1.2.6编程规范化
1.3实习要求
1.3.1对学生的要求
1.3.2对老师的要求
第2章背景知识概述
2.1几何图形及其结构 第1章实习目的及要求
1.1实习目的
1.2实习目标
1.2.1C++语言
1.2.2数据结构
1.2.3图形绘制
1.2.4编程工具和框架
1.2.5程序调试
1.2.6编程规范化
1.3实习要求
1.3.1对学生的要求
1.3.2对老师的要求
第2章背景知识概述
2.1几何图形及其结构
2.1.1点
2.1.2线
2.1.3区
2.2Windows图形编程
2.2.1图形绘制方法
2.2.2数据坐标系与窗口坐标系
2.3文件概念及操作
2.4系统功能与设计说明
2.4.1功能及菜单设计说明
2.4.2数据结构与文件结构说明
2.4.3操作逻辑与操作状态说明
第3章基础编程练习
练习1:创建工程,熟悉编程环境
练习2:熟悉程序调试技巧
练习3:添加菜单和工具条按钮
练习4:新建文件
练习5:造点
练习6:保存点文件
练习7:另存点文件
练习8:打开点文件
练习9:退出
练习10:删除点
练习11:移动点
练习12:造线(折线)
练习13:保存线文件
练习14:打开线文件
练习15:删除线
练习16:移动线
练习17:放大(图形)
练习18:缩小
练习19:重新理解坐标系,重构已实现的点编辑和线编辑功能
练习20:连接线
练习21:造区
练习22:文件其他功能
练习23:删除区
练习24:移动区
练习25:窗口移动
练习26:窗口复位
练习27:窗口其他功能实现(显示点、显示线、显示区)
练习28:点编辑其他功能实现
练习29:线编辑其他功能实现
练习30:区编辑其他功能实现
第4章挑战编程练习
练习31:线上删点
练习32:线上加点
练习33:增加显示几何图形数量功能
练习34:增加部分删除功能
练习35:增加统一修改参数功能
练习36:增加线型和图案功能
练习37:改造源代码,封装数据访问层
参考文献
附录1:C++编码规范
附录2:程序员的基本修炼
2.4系统功能与设计说明
2.4.1功能及菜单设计说明
本书实现一个小型图形编辑系统,系统具有输入、显示、修改、保存和打开点、线、区图形对象的基本功能。该系统数据生成和使用的基本流程如下。
(1)输入和修改图形对象所产生的数据先存储在临时文件中,执行"保存"功能时才将临时文件中的数据转存到长期文件中,执行"打开"时则将长期文件中的数据读取到临时文件中。
(2)图形编辑和显示都是从临时文件中读取数据到内存再进行处理或显示。
(3)系统退出时将临时文件中的数据转存到长期文件中并删除临时文件。
此外,该系统还具有移动、缩放、复位等辅助功能,即用户可以在客户区按住鼠标左键拖动图形进行图形漫游,可以单击放大或开窗放大,也可用"复位"功能将全部图形完整地显示在视图窗口中。同时,该系统设计了简单的图形参数,如颜色等,并提供相应的修改功能。
根据功能需求,该系统设计菜单如下。
(1)主菜单:文件、窗口、点编辑、线编辑、区编辑、帮助。
(2)二级菜单:①文件,新建、打开、保存、另存、退出;②窗口,放大、缩小、移动、复位、显示点、显示线、显示区;③点编辑,造点、移动点、删除点、显示删除点、恢复点、修改点参数,设置点缺省参数;④线编辑,造线、移动线、删除线、显示删除线、恢复线、线上删点、线上加点、连接线、修改线参数,设置线缺省参数;⑤区编辑,造区、移动区、删除区、显示删除区、恢复区、修改区参数、设置区缺省参数。