程序设计报告---城市管理

上传人:油条 文档编号:112817680 上传时间:2019-11-07 格式:DOC 页数:25 大小:709KB
返回 下载 相关 举报
程序设计报告---城市管理_第1页
第1页 / 共25页
程序设计报告---城市管理_第2页
第2页 / 共25页
程序设计报告---城市管理_第3页
第3页 / 共25页
程序设计报告---城市管理_第4页
第4页 / 共25页
程序设计报告---城市管理_第5页
第5页 / 共25页
点击查看更多>>
资源描述

《程序设计报告---城市管理》由会员分享,可在线阅读,更多相关《程序设计报告---城市管理(25页珍藏版)》请在金锄头文库上搜索。

1、课程设计报告设计题目:城市管理学生姓名: 魏于博专 业:电子信息工程班 级:电信工17-1班学 号:2017212064指导教师: 方帅完成日期:2018年6月29日合肥工业大学计算机与信息学院(1) 需求和规格说明问题描述:问题描述:用无序表实现一个城市数据库。每条数据库记录包括城市名(任意长的字符串)和城市的坐标(用整数x和y表示)。实现数据的插入、删除、查询功能,并实现指定距离内的所有城市。设计算法实现指定一定数目的具体城市,寻找遍历这些城市并回到出发点的最佳路径,观察随着城市数目的增加,算法执行效率的变化。编程任务:1)用列表对城市进行记录和管理,实现城市的增加、删除和查询功能,并实现

2、文件保存和读取2)计算城市之间距离,统计输出距离某城市一定范围内的所有城市。3)实现一定规模城市的遍历最佳路径选择。4)分析随着城市数目增加时,算法执行效果的改变,深刻理解旅行商问题。(2) 设计建立一个CityNode, 包含城市的名称,横纵坐标和指针。再建立一CityManage类属性和方法定义类名成员类别类型成员名描述CityNode属性Stringcityname城市名称intx城市的横坐标inty城市的纵坐标CityNode*next其连接作用Class中的方法bool Insert_CityNode(string cityname, int x, int y); (添加城市)boo

3、l Insert_CityNode_2(string cityname, int x, int y);(添加城市-文件读入)bool Insert_CityNode_3(string cityname, float x, float y);(遍历指定城市中使用)bool Search_CityNode(string cityname);(通过城市名字查找)bool Search_CityNode(int x, int y);(用过城市坐标查找)bool Delete_CityNode(string cityname);(用过城市名字删除)bool Delete_CityNode(int x,

4、int y);(通过城市坐标删除)float Distance(string cityname1, string cityname2);(两城市间的距离)void SaveFile(string cityname, int x, int y);(保存文件)void ReadFile();(读取文件)void Operation();(switc语句,便于操作)void SaveAgain();(删除节点时重新保存文件)void Clear();(遍历指定城市后清空链表)void IsExist(int x, int y, string cityname, int &temp);(判断是否已经存

5、在)bool Distance_In_Range(int num, int x, int y);(一定范围内的城市)bool Travel_Edge();(将城市和坐标分别存在数组中,便于求最短路径)void Travel_Path();(贪心算法 求最短路径)bool Travel_Edge_ALL();(遍历所有城市)bool ZDCZ(string cityname);(添加需要便利的指定城市)CityNode * head;(保存所有城市数据)CityNode * head2;(保存指定城市的信息)(3) 用户手册(4) 调试及测试1. 添加城市若城市已存在,则提示存在,不能添加2.

6、查找城市通过名称查找 通过坐标查找3. 删除城市通过名称删除通过坐标删除4.查看两城市间的距离5.查找距离定点一定距离的城市6.查找最优路径1制定城市查询最短路径2全部城市最短路径测试数据(环形数据能更好的检测)中国 9 1 合肥 9 6 广州 5 6 深圳 5 1 安徽 1 6 北京 1 17.查看所有城市(5) 附录程序代码#include#include#include#include#includeusing namespace std;int number = 0, number2 = 0;float Weight100100;string citys100;struct CityN

7、odestring cityname;float x, y;CityNode * next;struct minedgeint vex;int low;minedge Edge100;void Travel();class CityManagepublic:CityManage();/CityManage();bool Insert_CityNode(string cityname, float x, float y);bool Insert_CityNode_2(string cityname, float x, float y);bool Insert_CityNode_3(string

8、cityname, float x, float y);bool Search_CityNode(string cityname);bool Search_CityNode(float x, float y);bool Delete_CityNode(string cityname);bool Delete_CityNode(float x, float y);float Distance(string cityname1, string cityname2);void SaveFile(string cityname, float x, float y);void ReadFile();vo

9、id Operation();void SaveAgain();void Clear();void IsExist(float x, float y, string cityname, int &temp);bool Distance_In_Range(int num, float x, float y);bool Travel_Edge();bool Travel_Edge_ALL();bool ZDCZ(string cityname);private:CityNode * head;CityNode * head2;CityManage:CityManage()head = new Ci

10、tyNode;head-next = NULL;head2 = new CityNode;head2-next = NULL;bool CityManage:Insert_CityNode(string cityname, float x, float y)/(添加城市)CityNode*p = new CityNode;p-cityname = cityname;p-x = x;p-y = y;int temp1 = 0;IsExist(x, y, cityname, temp1);if (temp1 = 0)SaveFile(cityname, x, y);cout 添加成功 next =

11、 NULL)head-next = p;p-next = NULL;number = 1;return true;p-next = head-next;head-next = p;number+;return true;return true;bool CityManage:Insert_CityNode_2(string cityname, float x, float y)/(添加城市-文件读入)CityNode*p = new CityNode;p-cityname = cityname;p-x = x;p-y = y;if (head-next = NULL)head-next = p

12、;p-next = NULL;number = 1;return true;p-next = head-next;head-next = p;number+;return true;bool CityManage:Insert_CityNode_3(string cityname, float x, float y)/(添加城市-文件读入)CityNode*p = new CityNode;p-cityname = cityname;p-x = x;p-y = y;if (head2-next = NULL)head2-next = p;p-next = NULL;number2 = 1;re

13、turn true;p-next = head2-next;head2-next = p;number2+;return true;bool CityManage:ZDCZ(string cityname)CityNode*p;p = new CityNode;p = head-next;while (p != NULL)if (p-cityname = cityname)Insert_CityNode_3(p-cityname, p-x, p-y);return true;p = p-next;return true;bool CityManage:Search_CityNode(string cityname)/(通过城市名字查找)

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 中学教育 > 其它中学文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号