ImageVerifierCode 换一换
格式:DOCX , 页数:32 ,大小:555.36KB ,
资源ID:19443821      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/19443821.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(程序设计报告城市管理文档格式.docx)为本站会员(b****5)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

程序设计报告城市管理文档格式.docx

1、类型成员名描述CityNode属性Stringcityname城市名称intx城市的横坐标y城市的纵坐标CityNode*next其连接作用Class中的方法 bool Insert_CityNode(string cityname, int x, int y); (添加城市) bool Insert_CityNode_2(string cityname, int x, int y); (添加城市-文件读入) bool Insert_CityNode_3(string cityname, float x, float y);(遍历指定城市中使用) bool Search_CityNode(st

2、ring cityname); (通过城市名字查找) bool Search_CityNode(int x, int y); (用过城市坐标查找) bool Delete_CityNode(string cityname); (用过城市名字删除) bool Delete_CityNode(int x, int y); (通过城市坐标删除) float Distance(string cityname1, string cityname2); (两城市间的距离) void SaveFile(string cityname, int x, int y); (保存文件) void ReadFile(

3、); (读取文件) void Operation(); (switc语句,便于操作) void SaveAgain(); (删除节点时重新保存文件)void Clear(); (遍历指定城市后清空链表) void IsExist(int x, int y, string cityname, int &temp); (判断是否已经存在) bool Distance_In_Range(int num, int x, int y); (一定范围内的城市) bool Travel_Edge(); (将城市和坐标分别存在数组中,便于求最短路径)void Travel_Path(); (贪心算法 求最短路

4、径)bool Travel_Edge_ALL(); (遍历所有城市)bool ZDCZ(string cityname); (添加需要便利的指定城市)CityNode * head; (保存所有城市数据)CityNode * head2; (保存指定城市的信息)(3)用户手册(4)调试及测试1. 添加城市若城市已存在,则提示存在,不能添加2. 查找城市通过名称查找 通过坐标查找3. 删除城市通过名称删除通过坐标删除4.查看两城市间的距离5.查找距离定点一定距离的城市6.查找最优路径1制定城市查询最短路径2全部城市最短路径测试数据(环形数据能更好的检测)中国 9 1 合肥 9 6 广州 5 6

5、深圳 5 1 安徽 1 6 北京 1 17.查看所有城市(5)附录程序代码#includestringcmathfstreamstdlib.husing namespace std;int number = 0, number2 = 0;float Weight100100;string citys100;struct CityNode string cityname; float x, y; CityNode * next;struct minedge int vex; int low;minedge Edge100;void Travel();class CityManagepublic:

6、 CityManage(); /CityManage(); bool Insert_CityNode(string cityname, float x, float y); bool Insert_CityNode_2(string cityname, float x, float y); bool Search_CityNode(float x, float y); bool Delete_CityNode(float x, float y); void SaveFile(string cityname, float x, float y); void Clear(); void IsExi

7、st(float x, float y, string cityname, int & bool Distance_In_Range(int num, float x, float y); bool Travel_Edge_ALL(); bool ZDCZ(string cityname);private: CityNode * head; CityNode * head2;CityManage:CityManage() head = new CityNode; head-next = NULL; head2 = new CityNode; head2-bool CityManage:Inse

8、rt_CityNode(string cityname, float x, float y)/(添加城市) CityNode*p = new CityNode; p-cityname = cityname;x = x;y = y; int temp1 = 0; IsExist(x, y, cityname, temp1); if (temp1 = 0) SaveFile(cityname, x, y); cout 添加成功 next = NULL) head-next = p; p- number = 1; return true; p-next = head-next; head- numb

9、er+; return true; return true;Insert_CityNode_2(string cityname, float x, float y)/(添加城市-文件读入) if (head- number = 1; number+;Insert_CityNode_3(string cityname, float x, float y) if (head2- head2- number2 = 1;next = head2- number2+;ZDCZ(string cityname) CityNode*p; p = new CityNode; p = head- while (

10、p != NULL) if (p-cityname = cityname) Insert_CityNode_3(p-cityname, p-x, p-y); p = p-Search_CityNode(string cityname)/(通过城市名字查找) cout * cityname x ,y cout 未发现此城市 return false;Search_CityNode(float x, float y)/(用过城市坐标查找) CityNode *p;x = x &y = y)cityname while (k ! if (k- k-y = y | k-该城市已存在 temp = 1;

11、 break; k = k-Delete_CityNode(string cityname)/(用过城市名字删除) CityNode *p, *s; s = new CityNode; s = head; s-next = p- delete p;该城市已删除 number-; s = s-Delete_CityNode(float x, float y)/(通过城市坐标删除)SaveAgain() ofstream fout(City.txt, ios:out); SaveFile(p-float CityManage:Distance(string cityname1, string ci

12、tyname2)/(两城市间的距离) float c1x, c1y, c2x, c2y, dis; s = head-cityname = cityname1) c1x = p-x; c1y = p-y; /if (p-cityname != cityname1) if (p = NULL)未找到您所输入的第一个城市 return 0; while (s ! if (s-cityname = cityname2) c2x = s- c2y = s- /if (s-= cityname2) if (s = NULL)未找到您所输入的第二个城市 return 1; dis = sqrt(c1x -

13、 c2x)*(c1x - c2x) + (c1y - c2y)*(c1y - c2y);到; s-的距离为: dis x - x, 2) + pow(p-y - y, 2) next) p = head2- free(p); number2-;Travel_Edge()/(将城市和坐标分别存在数组中,便于求最短路径) p = head2- int a = 0, b = 0, c = 0; for (a = 0; a100; a+) for (b = 0; b for (b = a + 1; Weightba = Weightab = sqrt(pow(abs(p-x - s-x), 2) +

14、pow(abs(p-y - s-y), 2); s = s- for (c = 0; ccityname;Travel_Edge_ALL()number;void Travel(int Number)/(求最短路径) int i, j, k, l; int S100;/用于存储已访问过的城市 /用于存储两个城市之间的距离 float sum = 0;/用于记算已访问过的城市的最小路径长度 float Dtemp;/保证Dtemp比任意两个城市之间的距离都大(其实在算法描述中更准确的应为无穷大) int flag;/最为访问的标志,若被访问过则为1,从未被访问过则为0 /*初始化*/ i = 1; /i是至今已访问过的

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1