资源预览内容
第1页 / 共16页
第2页 / 共16页
第3页 / 共16页
第4页 / 共16页
第5页 / 共16页
第6页 / 共16页
第7页 / 共16页
第8页 / 共16页
第9页 / 共16页
第10页 / 共16页
亲,该文档总共16页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
课程设计报告项目名称:项目组长:项目成员:班级名称:专业名称:完成时间:目 录一、案例描述1、总体描述城市链表系统是将若干城市的信息,存入一个带头结点的单链表。结点中的城市信息包括:城市名、城市的位置坐标。要求能够城市名和位置坐标进行有关的查找、插入、删除和更新等操作。2、模块描述1)菜单设计:本程序菜单设计如下,用户可以根据菜单提示进行操作(1)、创建城市链表;(2)、根据城市名查询城市;(3)、根据离中心坐标距离查询城市名;(4)、插入城市信息;(5)、删除城市信息;(6)、更新城市信息;(7)、退出程序。2)添加模块:(1)主程序模块: Void main () 初始化 Switch() 接受命令; 处理命令; System(“pause”);/从程序里调用“pause”命令Return 0;(2)、函数调用模块:void Init(cityList *LHead);/初始化函数void Insert(cityList *LHead); /插入函数void Delete(cityList *LHead);/ 删除函数void Create(cityList *LHead);/创建函数void FindCity(cityList* LHead);/ 根据城市名查询城市void FindCityDistance(cityList* LHead);/ 根据距离查询城市名void UpdateCity(cityList* LHead);/更新函数二、设计思路本程序要求模块化管理,分成菜单函数、输入函数、输出函数、查询函数等,控制各个部分从而将程序简单化出来分析。本程序的主要功能是:创建一个城市链表,能够输入城市信息,能够根据城市名查询其位置坐标,根据离中心坐标距离查询城市名。城市链表系统功能模块图三、程序设计1、数据结构描述 本程序定义了一个结构体:城市结构体struct CITYLISTchar cityName30;float x;float y;struct CITYLIST *Next;typedef struct CITYLIST cityList;/定义的变量名 2、主函数及其流程图void Init(cityList *LHead); 初始化void Insert(cityList *LHead); 插入void Delete(cityList *LHead); 删除void Create(cityList *LHead); 创建void FindCity(cityList* LHead); 查找void FindCityDistance(cityList* LHead);根据中心距离查找城市void UpdateCity(cityList* LHead); 更新3、源程序#include#include#include#include#include struct CITYLISTchar cityName30;float x;float y;struct CITYLIST *Next;typedef struct CITYLIST cityList;void Init(cityList *LHead);void Insert(cityList *LHead);void Delete(cityList *LHead);void Create(cityList *LHead);void FindCity(cityList* LHead);void FindCityDistance(cityList* LHead);void UpdateCity(cityList* LHead); FILE *fp;int main()cityList* LHead;cityList* Store;char choice3 = 1,2,3;LHead = (cityList*)malloc(sizeof(cityList);Init(LHead); Store = LHead; while(strcmp(choice,7) printf(tttn); time_t t = time(0); char tmp64; strftime( tmp, sizeof(tmp), ttt %Y/%m/%d %X %A ,localtime(&t) );/获取当地时间和日期 puts( tmp ); printf(tttn); printf(tttn); printf(ttt n); printf(ttt 欢迎使用城市链表系统 n); printf(ttt n); printf(tttn); printf(tttn); printf(ttt 1.创建城市链表 n); printf(ttt 2.根据城市名查询城市 n); printf(ttt 3.根据离中心坐标距离查询城市 n); printf(ttt 4.插入新城市信息 n); printf(ttt 5.删除城市信息 n); printf(ttt 6.更新城市信息 n); printf(ttt 7.退出 n); printf(tttn); printf(请输入选项:); scanf(%s,&choice); switch(choice0)case 1:Create(Store);break;case 2:FindCity(Store);break;case 3:FindCityDistance(Store);break;case 4:Insert(Store);break;case 5:Delete(Store);break;case 6:UpdateCity(Store);break; case 7:break;default:printf(输入错误,请重新输入:);break; return 0;void Init(cityList *LHead)/初始化LHead-Next = NULL;void Create(cityList *LHead)/创建char sign20;char a20=N;char b20=n;printf(输入n/N退出,输入其余值继续:);scanf(%s,sign);/输入一个值while(1)if(strcmp(sign,a)=0)/sign和a比较break;if(strcmp(sign,b)=0) /sign和b比较break;Insert(LHead);/调用插入代码 printf(输入n/N退出,输入其余值继续:);scanf(%s,sign); system(cls);puts(); void FindCity(cityList* LHead)/查找 char cityName30;printf(请输入您要搜索的城市名:);scanf(%s,cityName);while(LHead-Next != NULL & strcmp(LHead-Next-cityName,cityName)LHead = LHead-Next;if(LHead-Next = NULL)printf(您要搜索的城市不存在!n);system(pause);system(cls);return;printf(城市坐标为:(%.1f,%.1f)n,LHead-Next-x,LHead-Next-y);system(pause);system(cls);void FindCityDistance(cityList* LHead)/根据中心距离查城市char m;float x;float y;float distance;printf(请输入中心坐标x,y:);scanf(%f%c%f,&x,&m,&y);printf(请输入距离:);scanf(%f,&distance);LHead = LHead-Next;while(LHead != NULL)if(x-LHead-x)*(x-LHead-x) + (y-LHead-y)*(y-LHead-y) cityName);printf(城市坐标为:(%.1f,%.1f)n,LHead-x,LHead-y);LHead = LHead-Next;system(pause);system(cls);void Insert(
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号