城市链表课程设计.doc_第1页
城市链表课程设计.doc_第2页
城市链表课程设计.doc_第3页
城市链表课程设计.doc_第4页
城市链表课程设计.doc_第5页
已阅读5页,还剩9页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

城市链表课程设计(实习)报告题目 城市链表 姓 名: 学 号:080910135专 业:电子信息工程班 级:电信0804指导教师: 职 称: 计算机与电子工程学院2011年12月课程设计(实习)评审表姓 名 学 院计电学院学 号080910135专业班级电信0804题 目城市链表评审意见评审成绩指导教师签名职称评审时间 年 月 日课程设计(实习)作品验收表题目城市链表设计参与人员姓 名彭应品班 级电信0804学 号080910135设计任务与要求:将城市信息存在单链表里,对其实现常见的链表操作作品完成情况:验收情况: 验收教师签名:_ 年 月 日注:1. 除“验收情况”栏外,其余各栏均由学生在作品验收前填写。2. “验收情况”栏由验收小组按实际验收的情况如实填写。目录1 课程设计任务与要求11.2 问题分析12系统总体设计12.1 总体设计思想、设计方案的选择12.2 系统模块设计13 系统详细设计23.1 系统子程序及功能设计23.3 函数主要调用关系图34 系统详细设计34.1 数据类型定义34.2 系统主要子程序设计35 系统实现与测试65.1 建立城市链表65.2 浏览城市链表65.3城市链表的查找65.4 城市链表的插入75.6 城市链表的更新75.7 查看给定范围内的城市75.8文件的载入与保存85.9系统设置86软件使用说明书87 课程设计总结9参考文献91 课程设计任务与要求1.1 课程设计任务将城市信息存在单链表里,对其实现常见的链表操作1.2 问题分析由若干个城市的信息,存入一个带头节点的单链表。节点中的城市信息包括城市名,城市坐标,城市面积,城市人口等。要求能够利用城市名和位置坐标进行有关的查找,插入,删除,更新等操作。2系统总体设计为了实现上述需求可以从以下几个方面着手进行设计。2.1 总体设计思想、设计方案的选择 本系统主要采用链表结构类型来存储数据,其中节点由四个部分组成:城市名称,城市坐标,城市人口和城市面积。2.2 系统模块设计 系统返回主菜单设置文件的载入和保存城市链表的更新城市链表的删除插入功能建立城市链表查找城市中的信息浏览城市链表信息本系统共设计了9个主要的子功能,各功能的描叙如下所述:(1) 建立城市链表,可以一次性的输入多条城市的信息,建立城市信息表。该功能用createcityinfo ( )函数实现。(2) 浏览城市链表信息,可以查看链表中所有城市的信息。该功能由printall ( )函数来实现。(3) 查找城市中的信息,可以根据您的个性话需求来进行查找,查找设计了一个子菜单,可以选择查找方式。按名称查找,按坐标查找和查找的一定范围内的城市。菜单设计如下通过调用searchinfo()函数实现。(4) 插入功能。每次可以插入一条城市信息,插入完后可以选择继续插入信息来进行多条插入。通过调用insertinfo( ) 函数来实现。(5) 城市链表的删除,可以按照提示来删除指定的数据。能够让用户选择通过何中方式来确定要删除的文件,提供按名称和按坐标两种,删除成功后会给出“删除成功的提示”。通过调用delinfo( )函数来实现(6) 城市链表的更新功能。能够让用户选择通过何中方式来确定要修改的文件,提供按名称和按坐标两种方式,定位后用户可以选择修改城市的各个信息。通过调用 upinfo()函数来实现。(7) 文件的载入和保存。用户可以保存目前建立的城市信息,也可以从以前的文件中载入信息,从而实现数据的长期使用。通过调用filehandle( ) 函数来实现。(8) 设置。用户可以通过设置来改变文字大小,文字颜色,和界面背景颜色。通过调用usersetting( )函数来实现。(9) 返回主菜单。方便用户随时查看主菜单,并选择功能。通过调用submainmenu ( ) 函数来实现。3 系统详细设计3.1 系统子程序及功能设计本系统共设计了23个子程序,各个函数的函数名及功能说明如下。( 1 ) int mainmenu( int k );/主菜单选择( 1.1 ) void submainmenu();( 1.2 ) void customcolor(word forecolor,word backcolor); /自定义文字显示前景,背景色( 2 ) pcity createcityinfo(pcity head);/ 城市链表建立 ( 3 ) void printone (pcity );/打印一条( 3.1 ) void printall (pcity p);/ 打印所有 ( 4 ) void searchinfo(pcity head);/查找 ( 4.1 ) pcity searchusename(pcity head); /用名字查找( 4.2 ) pcity searchuseco(pcity head); /用坐标查找( 4.3) pcity searchindis(pcity head); /用距离查找( 5 ) void insertinfo(pcity head); /插入( 6 ) void delinfo(pcity head); /删除信息( 6.1 ) void delusename(pcity head); /删除按姓名( 6.2 ) void deluseco(pcity head); /删除按坐标( 7 ) void upinfo(pcity head); /修改信息( 7.1 ) void upusename(pcity head);/修改用名字( 7.2 ) void upuseco(pcity head);/修改用坐标( 7.3 ) void updetail(pcity p);/修改具体每一项 ( 8 ) void initsetting(); /初始化用户设置( 9 ) void usersetting();/用户设置( 10 ) pcity filehandle(pcity head);/文件处理( 11 ) int ynchoice();/专门执行y/n选择,选是为y,不是为n,其它无效 ( 12)int numberchoice(int min,int max); /数字选择,返回min到max之间的一个数 3.3 函数主要调用关系图4 系统详细设计4.1 数据类型定义本系统采用链式存储结构存储城市节点,节点定义如下:struct coordint x;int y;typedef struct citychar name20; coord co;int people;int area; city *next; *pcity;4.2 系统主要子程序设计 建立链表函数,用来建立城市链表9pcity createcityinfo(pcity head)/ 城市链表建立 pcity delcity,tem;if (head)printf(链表已近存在,确定重新建立 (y/n) );if(ynchoice()delcity=head-next;while (delcity) /删除所有tem=delcity-next;free(delcity);delcity=tem;head=null;elsereturn head; head=(pcity)malloc(len);/建立头结点head-next=null;char name20;int jum;/跳出输入循环用coord co;int people;int area;int k=1; int i=1; /控制while里的循环printf(请输入城市的名称:);fflush(stdin);gets(name);printf(请输入 %s 的坐标,形如(x y):,name);fflush(stdin);scanf(%d%d,&co.x,&co.y);printf(请输入 %s 的人口:,name);fflush(stdin);scanf(%d,&people);printf(请输入 %s 的面积:,name);fflush(stdin);scanf(%d,&area);jum=1;while(jum)pcity tem=(pcity)malloc(len);if(k!=1)printf(请输入城市的名称:);fflush(stdin);gets(name);printf(请输入 %s 的坐标,形如(x y):,name);fflush(stdin);scanf(%d%d,&co.x,&co.y);printf(请输入 %s 的人口:,name);fflush(stdin);scanf(%d,&people);printf(请输入 %s 的面积:,name);fflush(stdin);scanf(%d,&area);strcpy(tem-name,name);tem-co.x=co.x;tem-co.y=co.y;tem-people=people;tem-area=area;tem-next=head-next;head-next=tem;/连接了连个结点printf(信息录入成功,是否继续添加:(y/n);jum=ynchoice();i=1;k+;return head;城市链表建立流程图: 建立头结点使用while循环录入数据连接结点判断是否继续添加 结束5 系统实现与测试系统各运行界面如下,各子功能测试结果如下。5.1 建立城市链表在主菜单下(或“主菜单功能选项下”),用户输入1并回车,然后按照提示建立城市链表,分别输入每个城市的名称,坐标,人口和面积,运行结构如下图:5.2 浏览城市链表在主菜单下(或“主菜单功能选项下”),用户输入2并回车,可以浏览链表中的全部内容,结构如下5.3城市链表的查找在主菜单下(或“主菜单功能选项下”),用户输入3并回车,可以进入查找子菜单,如图:用户输入相应选项即可进入相应功能。5.4 城市链表的插入在主菜单下(或“主菜单功能选项下”),用户输入4并回车,可以进入插入功能,按照提示输入城市信息,即可插入新的城市信息。界面如下 5.5 城市链表的删除在主菜单下(或“主菜单功能选项下”),用户输入5并回车,可以进入删除子菜单,按照提示输入要删除的城市,即可删除该城市信息。界面如下 5.6 城市链表的更新在主菜单下(或“主菜单功能选项下”),用户输入6并回车,可以进入删除子菜单,按照提示输入要删除的城市,即可删除该城市信息。界面如下 5.7 查看给定范围内的城市在主菜单下(或“主菜单功能选项下”),用户输入7并回车,可以进入查看给定范围内的城市的高级功能,按照提示输入中心坐标,然后在给定一个范围,即可查找出在该范围内的所有城市。界面如下:5.8文件的载入与保存在主菜单下(或“主菜单功能选项下”),用户输入8并回车,可以进入文件载入与保存的选择功能,可以在其中载入文件数据到链表,也可以将链表中的数据保存到指定位置,子菜单如下 5.9系统设置 在主菜单下(或“主菜单功能选项下”),用户输入9并回车,可以进入系统设置功能,可以设置系统显示的文字颜色和显示背景色,还可以调整文字的大小,用户所做的更改将会自动保存,下次使用时不必重新设置,子菜单如下:6软件使用说明书( 1 ) 本程序为“城市链表.exe”,该名不可更改,更改后可能会造成文件部分功能失效。.( 2 ) 进入本系统后,一个图标界面后马上显示主菜单。用户可以在该界面上输入各子菜单前对应的数字并回车,执行相应的菜单命令。 ( 3 ) 本程序提供数据保存功能,请注意对重要数据进行保存。 ( 4 ) 本程序正常配有资源文件,程序启动图片可以更换成你的自定义,图片大小640*400,将你的图片命名为“1.bmp”,然后替换“debug”文件夹中的“1.bmp”.7 课程设计总结本程序能够很好的实现城市链表的基本功能,而且在此基础上优化了用户操作界面,加入了文件保存,文件提取和系统初始化等额外功能,其中文件保存和提取能够很大程度上优化用户数据的管理。系统初始化能够将上一次用户所有的个性化设置加载,不必每次使用时都重新设置。 通过此次实验,也了解到自己的语言知识很匮乏,缺乏独立设计程序的能力,容易产生思维定式。在今后,一定要把语言学好,基础打牢,多进行实践,独立思考,取得进步参考文献1王立柱.c/c+与数据结构.北京:清华大学出版社,2008;2 es

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论