数据结构课程设计实验1 城市链表.doc

数据结构课程设计实验1 城市链表.doc

ID:56759460

大小:177.00 KB

页数:18页

时间:2020-07-07

数据结构课程设计实验1 城市链表.doc_第1页
数据结构课程设计实验1 城市链表.doc_第2页
数据结构课程设计实验1 城市链表.doc_第3页
数据结构课程设计实验1 城市链表.doc_第4页
数据结构课程设计实验1 城市链表.doc_第5页
资源描述:

《数据结构课程设计实验1 城市链表.doc》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、数据结构课程设计实验报告实验一链表部分选题为:2.4.3—城市链表1、需求分析(1)创建一个带有头结点的单链表。(2)结点中应包含城市名和城市的位置坐标。(3)对城市链表能够利用城市名和位置坐标进行有关查找、插入、删除、更新等操作。(4)能够对每次操作后的链表动态显示。2、概要设计为了实现以上功能,可以从以下3个方面着手设计。(1)主界面设计为了实现城市链表相关操作功能的管理,设计一个含有多个菜单项的主控菜单子程序以链接系统的各项子功能,方便用户使用本程序。本系统主控菜单运行界面如下所示。(2)存储结构设计

2、本系统主要采用链表结构类型来表示存储在“城市链表”中的信息。其中链表结点由4个分量组成:城市名name、城市的横坐标posx、城市的纵坐标posy、指向下一个结点的指针next。(3)系统功能设计本程序设计了9个功能子菜单,其描述如下:①建立城市链表。由函数creatLink()实现。该功能实现城市结点的输入以及连接。②插入链表记录。由函数insert()实现。该功能实现按坐标由小到大的顺序将结点插入到链表中。③查询链表记录。由searchName()函数和searchPos()函数实现。其中searchN

3、ame()实现按照城市名查询的操作,searchPos()实现按照城市坐标查询的操作。④删除链表记录。由delName()函数和delPos()函数实现。其中delName()函数实现按照城市名删除的操作,delPos()函数实现按照城市坐标删除的操作。①显示链表记录。由printList()函数实现。该功能实现格式化的链表输出操作,可以显示修改后的链表状态。②更新链表信息。由update()函数实现。该功能实现按照城市名更新城市的坐标信息。③返回城市坐标。由getPos()函数实现。该功能实现给定一个已存

4、储的城市,返回其坐标信息的操作。④查看与坐标P距离小于等于D的城市。由getCity()函数实现。该功能实现返回与给定坐标P距离小于等于D的城市名称。⑤退出链表系统。由exit(0)实现。1、模块设计(1)模块设计本程序包含两个模块:主程序模块和链表操作模块。其调用关系如下图所示:主程序模块链表操作模块(2)系统子程序及功能设计本系统共设置3个子程序,各程序的函数名及功能说明如下:①LinklistcreatLink()//创建一个城市链表,返回头结点地址②printList(LinklistL)//打印头

5、结点地址为L的城市链表③intsearchName(LinklistL,charname[20])//以城市名查找④intsearchPos(LinklistL,intpx,intpy)//以城市坐标查找⑤intinsert(LinklistL,Linklistcity)//插入⑥intdelName(LinklistL,charname[20])//利用城市名称删除⑦intdelPos(LinklistL,intpx,intpy)//利用坐标删除⑧intupdate(LinklistL,charname[

6、20])//更新⑨intgetPos(LinklistL,charname[20])//给定一个城市名,返回城市坐标⑩intgetCity(LinklistL,intpx,intpy,intd)//给定一个城市坐标P,返回距离小于等于d的城市⑪voidmain()//主函数,实现链表各项操作的选择(3)函数主要调用关系图本系统3个子程序之间的主要调用关系如图所示。128967543102222211main()4、详细设计(1)数据类型定义typedefstructLNode{//城市结点charname[

7、20];intposx;//横坐标intposy;//纵坐标structLNode*next;}LNode,*Linklist;(2)系统主要子程序详细设计①建立城市链表LinklistcreatLink()//创建一个城市链表,返回头结点地址{LinklistL=(Linklist)malloc(LEN);//头结点L->next=NULL;Linklistp;charname[20];intpx;intpy;charend[4]="end";printf("请输入城市名称、横坐标和纵坐标,建立城市链表,

8、以'end'为输入结束标志");printf("请输入城市名称:");scanf("%s",name);while(strcmp(name,end)){printf("请输入横坐标x:");scanf("%d",&px);printf("请输入纵坐标y:");scanf("%d",&py);p=(Linklist)malloc(LEN);//新结点strcpy(p->name,name);p->posx=px

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。