欢迎来到天天文库
浏览记录
ID:23653633
大小:633.00 KB
页数:30页
时间:2018-11-09
《数据结构课程设计报告》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、课程设计报告题目:中国行政区域图染色与信息查询课程名称:数据结构课程设计专业班级:计算机科学与技术班学号:姓名:指导教师:报告日期:2012年10月10日计算机科学与技术学院目录1绪言22系统设计方案的研究2.1系统的控制特点与性能要求32.2系统设计方案选择及分析33系统的设计及实现3.1染色模块的设计63.2管道铺设模块设计83.3省份信息查询模块设计93.4其他模块设计93.5其他设计94系统结果分析125总结18参考文献19附录20281绪言数据结构是计算机科学技术与信息安全等专业的一门重要专业基础课,牢固掌握数据结构的基
2、础知识,熟练地运用数据结构的思想与技术方法解决实际应用问题是是本课程学习的基本任务与目标。而课程设计是实现这一学习目标的重要环节和组成部分。通过课程设计的训练,使学生加深对数据结构知识的理解,牢固掌握其应用方法,并合理灵活地解决一定实际问题,增强和提高综合分析问题与解决问题的能力。在本次课程设计中我选择了“中国行政区域图染色与信息查询”作为我的题目,这个题目要求设计者掌握图的存储结构与基本算法以及数据结构的基本概念和思想,解决较复杂的基于图模型的实际问题。我将每个行政区域作为一个顶点,邻接矩阵作为主要存储结构,邻接矩阵中邻接关系用
3、边的权值表示,用回溯法设计染色算法,用典型求解最小生成树的Prim算法解决最小费用通信网规划问题。邻接矩阵信息以及各省份信息分别保存在文件中。282系统设计方案的研究2.1系统的控制特点与性能要求系统性能要求:(1)从互联网或相关资料获取可靠的行政区域及其地理数据,有关数据与信息以文件形式存储,用无向网建模上述问题并以文件保存。(2)图形方式显示上述图模型与求解结果。(3)界面友好,具有对各省份相关信息的查询功能。系统控制特点:由于本系统要求图形化显示求解结果,故系统需要有较好的用户界面方便用户操作以及过程的显示。因此在界面设计上
4、一定要简明易懂,易于操作。当用户误操作后系统应作出相应的提示和错误处理,使得操作能够继续。2.2系统设计方案选择及分析系统要求使用图形方式显示染色过程,所以我选择MFC编程来编写一个基于Windows操作系统的应用程序。MFC是微软封装了的API,是面向对象程序设计与Applicationframework的完美结合,它将传统的API进行了分类封装,并且创建了程序的一般框架,便于设计者很快生成能在Windows操作系统下运行的可视化应用程序。MFC开发基本使用的是C++语言,同时也完全兼容C语言编写的功能函数,这对于像我这种熟悉C
5、语言编程的人有较大便利。开发环境我选择的是MicrosoftVC++6.0。VisualC++6.0由Microsoft开发,它不仅是一个C++ 编译器,而且是一个基于Windows操作系统的可视化集成开发环境。VisualC++6.0由许多组件组成,包括编辑器、调试器以及程序向导AppWizard、类向导ClassWizard等开发工具。在应用程序窗口设计方面,我选择对话框的编程,窗口设计如图2.1所示。主程序省份信息查询主窗体信息查询窗口关于窗口地图染色管道铺设图2.1窗口结构设计28在主窗口中进行地图的显示以及进行与图形相关
6、的操作,信息查询显示则在新窗口中进行,这样安排使得不同的操作各自独立进行,防止了相互间的干扰,同时也简化了单个函数的长度,使得程序条理更加清晰,也方便用户的使用。程序采用模块化设计方案,即先设定好主程序,子程序,子过程框架,并定义好各个框架之间的输入,输出链接关系,逐步求精得到以功能块为单位的算法描述。模块化设计具有降低程序复杂度,使程序设计、调试和维护等操作简单化的优点。在主窗体中设有5个功能按钮,分别对应程序5个功能。按钮事件分别对应窗口类中的5个成员函数,关系如图2.2所示。CMyDDlgOnZhuose()进行地图染色On
7、Chaxun()省份信息查询OnButton3()管道铺设OnButton4()窗口还原OnAbout()关于图2.2主窗口类中功能实现函数除了窗口类的成员函数,我还自定义了一些辅助功能函数,这些函数在新建的头文件my_h.h中进行声明。辅助功能函数有:StatusInitQueue(LinkQueue&Q);//初始化队列StatusEnqueue(LinkQueue&Q,CPoint&e);//入队列CPointDequeue(LinkQueue&Q,CPoint&e);//出队列BOOLQisEmpty(LinkQueue&
8、Q);//判断队列是Q否为空BOOLInitRelation(intv[][32]);//载入邻接矩阵到intv[][]voidSetColor(intlin[][32],intv[]);//对每个省份进行颜色分配voidInitPoint(CPo
此文档下载收益归作者所有