




免费预览已结束,剩余14页可下载查看
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
课程设计报告书课程名称: 数据结构课程设计 题 目: 列车运行查询程序的设计与实现 系 名: 专业班级: 姓 名: 学 号: 指导教师: 年 月 日课程设计任务书学生姓名: 专业班级: 指导教师: 工作单位: 题 目: 列车运行查询程序的设计与实现初始条件:理论:学习了数据结构课程,掌握了基本的数据结构和常用的算法;实践:信息工程系实验室提供计算机及软件开发环境。要求完成的主要任务: (包括课程设计工作量及其技术要求,以及说明书撰写等具体要求)1、系统应具备的功能:(1)输入列车时刻表(2)按各种查询条件对列车时刻 2、数据结构设计;3、主要算法设计;4、编程及上机实现;5、撰写课程设计报告,包括:(1)设计题目;(2)摘要和关键字;(3)正文,包括引言、需求分析、数据结构设计、算法设计、程序实现及测试等;(4)结束语;(5)参考文献。时间安排: 2011年6月27日2011年7月1日 (第19周)星期一 查阅资料星期二 系统设计,数据结构设计,算法设计星期三-星期四 编程并上机调试星期五 撰写报告星期五 验收程序,提交设计报告书。指导教师签名 2011年6月27日 系主任(或责任教师)签名: 2011年6月27日 目录1引言12需求分析13数据结构设计54算法设计55程序实现及测试96不足之处137设计体会138结束语14列车运行查询程序的设计与实现摘要现要设计列车运行查询系统,使乘客通过各种查询方式得到所要查询列车的基本信息,该信息包括列车号、始发地点、始发时间、抵达地点、抵达时间、票价等。如何用数据结构中的算法来实现呢?我们知道,在数据结构中有一种存储结构叫链式存储,链表的结点正好可以用来存储每辆列车的基本信息,结点的指针域能对该链表存储的信息进行查找、删除,而查找方式又有两种方式,一是基于列车编号的查找,二是根据抵达城镇的查找。关键字:结点、 指针 、单链表的插入、列车查询、单链表的查找1引言链式存储结构是用一组任意的存储单元来存储表的结点。也就是说,链式存储结构中,存储单元可以是相邻的,也可以是不相邻的;同时,相邻的存储单元中的数据,不一定是相邻的结点,因为结点存储的不连续性,因而它为没有顺序存储列车信息提供的方便,能随时将安排运行的列车添加到链表中,又链表中的每一个结点还包含一个指针域,它保存了在逻辑上相邻的结点的地址信息,该指针域中的指针,将线性表的n个结点按其逻辑顺序连接在一起。因此查询某辆列车的基本信息就要用到该指针域,因而单链表的结点结构非常适合来存储列车的基本信息。列车作为现代社会出门旅行的重要工具,要怎样不用出门就能了解到列车的具体开往时间,进而为自己的行程做好安排。因此网上列车查询系统的建立为人们的出行提供了轻松与便捷,这种查询系统也为车站的售票员提供了便利。结合实际,我想通过自己的知识尝试着去编写一个这样的系统,一来可以完成课程设计,二来可以加深自己的数据结构知识,锻炼自己的同时也提升了自己。2需求分析2.1提出需求在日常生活中,对于出行,人们最关心的就是列车的始发时间,到站时间以及票价,要满足人们的需求,故本系统将包括以下几个方面1.列车基本信息的建立。用单链表的结点来存储列车的基本信息,也可以用结点的插入来添加新增的列车班次或更新列车班次。 2.按不同的查询条件来查询列车的信息。通过列车的编号或者通过列车的始发地和目的地两种方式查询列车,方便找到适合自己的。通过将用户输入信息与链表存储的相应信息一一做比较找到所需的列车信息并输出,利用指针的移动来查找该信息。2.2开发计划更具所学课程的只是,结合实际情况,本系统开发的计划表如下:开发计划表第1阶段: 查阅资料时间:6月27日工作内容和工作成果:用户需求调研与分析,查阅资料第2阶段:系统设计时间:6月28日工作内容和工作成果:系统设计,数据结构设计,算法设计第3阶段:系统测试时间:6月29日6月30日工作内容和工作成果:编程并上机调试第4阶段:课程报告时间:7月1日工作内容和工作成果:撰写实验报告第5阶段验收程序时间:7月1日工作内容和工作成果:验收程序,提交设计报告书开发进度表查阅资料系统设计系统测试课程报告验收程序6月27日6月28日6月29日6月30日7月1日7月1日2.3列车运行查询程序待发计划的模块划分根据任务书中的设计要求,对该模拟进行如下划分:主菜单输入列车基本信息查询列车按列车编号查询按始发地和目的地查询退出系统2.4系统流程图调用menu()0开始输入sel的值sel=1调用Traininfo()1=iic输入列车的信息sel=2调用searchtrain()sel=0m=1=1根据列车编号查询根据始发地和目的地查询退出查到输出列车的信息YYNYNYNYNY3 数据结构设计3.1程序所需结构体定义结构体train,用来存储列车信息typedef struct train /*定义存储列车信息的结构体*/ char num10; /*列车号*/ char startcity10; /*出发城市*/ char reachcity10; /*目的城市*/ char takeofftime10; /*发车时间*/ char receivetime10; /*到达时间*/ int price; /*票价*/ lieche; typedef struct node /*定义列车信息链表的结点结构*/ lieche data; /*数据域 */ struct node *next; /*指针域*/ Node, *Link; 3.2程序中,列车的链表操作模块void menu() /*定义菜单选择界面函数*/void Traininfo(Link l) /*定义列车信息链表函数*searchtrain(Link l) /*定义查询列车信息的函数*/main() /*定义主函数*/3.3引用库函数及变量的定义#include #include #include #include #define DATEp-data.num,p-data.startcity,p-data.reachcity,p-data.takeofftime,p-data.receivetime,p-data.price, p-data.ticketnumint c; /*定义全局变量,用来控制输入列车信息的辆数*/4算法设计4.1列车信息链表的操作模块这个模块主要是实现列车链表的初始化、插入、以及各种查询的操作,在进行列车信息的存储时,系统一边为结点分配内存,一边将该结点插入到链表中后。在查询时,查询按照画面的提示,选择不同的查询方式进行查询,然后便显示出了查询结果。在本程序中是最基础,最基本的操作,但也是最主要的。4.2主菜单主菜单界面函数,为用户显示该系统的功能,方便用户进行操作void menu() puts(nn); puts(tt|); puts(tt| The information of the train |); /* 列车信息*/ puts(tt|); puts(tt| 0:quit the system |); /*退出该程序* / puts(tt|1:Insert a train information |); /*输入列车信息 */ puts(tt|2:Search a train information |); /* 查询列车信息*/ 4.3列车信息输入自定义Traininfo()函数,作用是添加列车信息 void Traininfo(Link l) struct node *p,*r,*s; /*定义链表指针 */ char num10; int i; r=l; /* 让r指向头结点* / s=l-next; /*让s指向头结点的下一个结点*/ while(r-next!=NULL) /*链表没有存储任何信息* / r=r-next; /*r后移,r指向头结点的下一个结点 */ for(i=1;idata.num,num)=0) /*检测链表中是否已有该列车的基本信息*/ printf(the train %s is existing!n,num); /*输出该列车信息已存在于链表中 * / return; s=s-next; *s后移指向下一个结点 * p=(struct node*)malloc(sizeof(struct node); /*申请新结点*/ strcpy(p-data.num,num); /*输入车号*/ printf(Input the city where the train will start:); scanf(%s,p-data.startcity); /*输入出发城市*/ printf(Input the city where the train will reach:); scanf(%s,p-data.reachcity); /*输入到站城市*/ printf(Input the time which the train take off:); scanf(%s,p-data.takeofftime); /*输入出发时间*/ printf(Input the time which the train receive:); scanf(%s,p-data.receivetime); /*输入到站时间*/ printf(Input the price of ticket:); scanf(%d,p-data.price); /*票价*/ p-next=NULL; r-next=p; r=p; /*插入到链表中*/ clrscr(); /*清屏*/ menu(); /*调用主菜单界面函数*/ 4.4列车查询自定义searchtrai()函数 ,实现列车信息查询,程序代码如下 searchtrain(Link l) Node *r,*t; /*定义链表指针*/ int sel, k,flat=0; char str15,str210,str310; if(!l-next) printf(There is not receord !); /*链表为空*/ return; printf(choo
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025福建福州市体育工作大队招聘食堂小工2人考前自测高频考点模拟试题附答案详解(黄金题型)
- 2025福建福州罗源县卫健系统事业单位招聘编内41人模拟试卷及答案详解(全优)
- 2025江苏连云港恒驰实业有限公司招聘5人考前自测高频考点模拟试题及完整答案详解1套
- 2025年百菌清项目合作计划书
- 2025年不锈钢、镍纤维及纤维毡项目发展计划
- 2025福建三明市明溪县公安局招聘警务辅助人员13人考前自测高频考点模拟试题完整答案详解
- 2025广东东莞市寮步镇人民政府招聘网格管理员10人考前自测高频考点模拟试题带答案详解
- 2025赤峰环保投资有限公司招聘3人考前自测高频考点模拟试题附答案详解(黄金题型)
- 2025安徽阳光采购服务平台有限责任公司社会招聘1人(第二次)模拟试卷及答案详解(全优)
- 2025年装订活动及印刷用附件合作协议书
- 学堂在线 军事理论 章节测试答案
- 六年级科学上册各单元知识点梳理归纳
- 制氢技术简介
- GB/T 79-2007内六角圆柱端紧定螺钉
- GB/T 12755-2008建筑用压型钢板
- OTN技术与应用(阿法迪)
- 高标准基本农田建设项目电力施工组织设计
- 隧道运营养护管理手册-下册
- 旋挖钻桩基施工方案
- 钢结构监理实施细则(新)
- 某某大学数字化校园建设项目可行性研究报告
评论
0/150
提交评论