数据结构课程设计文档模板.doc
《数据结构课程设计文档模板.doc》由会员分享,可在线阅读,更多相关《数据结构课程设计文档模板.doc(15页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、课程设计报告课程名称: 数据结构 设计题目: 公路收费模拟系统 院 部: 专 业: 组 别: 第2组 起止日期: 指导教师: 计算机与信息工程学院二一二年制课程设计题目公路收费模拟系统组长学号班级系别专业组员指导教师课程设计目的掌握数据结构的基本理论和基本方法;培养学生的编程能力、协作能力以及撰写文档的能力。课程设计环境Window XP,Microsoft Visual C+ 6.0。课程设计任务根据实际问题,构造相应的数据结构,设计解决问题的算法,以及撰写规范的文档。课程设计工作进度计划序号起止日期工作内容分工情况14月9日至4月15日选题所有的组员根据所选的题目查找资料,讨论思路24月1
2、6日至4月22日讨论解题思路34月23日至5月20日编码及单元测试45月21日至6月11日集成测试56月12日至6月28日撰写文档指导教师签字: 年 月 日系(教研室)审核意见: 系(教研室)主任签字: 年 月 日课程设计任务书目录1.引言12 .需求分析12.1课程设计题目12.2课程设计内容12.3课程设计要求12.4课程设计思想12.5软硬件运行环境13 概要设计13.1课程设计的流程图13.2主要的数据结构23.3算法分析24 详细设计34.1绘出计算机程序框图34.2程序的实现34.2.1预编命令,定义结构体和全局变量34.2.2从文件中读入图的结构44.2.3显示出收费站的结构54
3、.2.4弗洛伊德算法54.2.5求最短路径的长度64.2.6判断车型函数64.2.7计算路费的函数74.2.8结束函数84.2.9菜单函数84.2.10主体函数84.3数据存储格式95 调试分析与调试结果说明95.1 系统调试分析95.2 调试结果105.2.1开始界面105.2.2显示收费站的结构105.2.3显示最短路径115.2.4显示站与站之间的费用115.2.5退出系统116 课程设计总结与体会127 致谢128 参考文献121.引言 高速公路传统的收费方式以手工收费为主,这种传统的收费方式效率低、出错率高,管理人员无法及时的看到收费报表,无法及时了解一线收费人员的收费情况。随着高速
4、公路的快速发展,收费站数目的不断增加,传统的收费方式已经不能够满足现实的需要,基于此,设计与实现一个简单而高效的模拟公路收费系统2 .需求分析2.1课程设计题目 公路收费模拟系统。2.2课程设计内容设计一个包含不少于10个收费站的高速公路网,公路里程和每公里的费用自行设定,编写程序模拟公路收费。2.3课程设计要求选择合适的数据存储结构;(注:数据的输入以文件输入的方式)输入上高速公路时所进的收费站和下高速公路时所出的收费站,系统能够自动计算两地之间的应收费用。2.4课程设计思想首先用无向图来模拟公路的收费站,各个收费站就相当于图的结点,站与站之间的距离就相当于弧的长度,利用图的邻接矩阵来存储高
5、速公路收费站的模型,用Floyd算法来求收费站之间的最短路径;建立好文本文件来存储站点名称以及两个邻接站点之间的距离;通过构建并存储图的结构、求最短路径、显示最短路径、求任意站与站之间距离、计算路径长度、退出系统以及显示主菜单等子函数来达到课程设计要求。2.5软硬件运行环境Window XP,Microsoft Visual C+ 6.0。3 概要设计理解题意查找资料算法分析编写程序运行调试3.1课程设计的流程图 图3-1 课程设计的流程图 3.2主要的数据结构抽象数据类型图的定义如下:ADT Graph 数据对象V:V是具有相同特性数据元素的集合,称为顶点集。 数据关系R: R=VR VR=
6、(v,w)| v , wV, (v , w)表示v和w之间存在路径基本操作P:CreatGraph(&G, V, VR)初始条件: V是图的顶点集,VR是图中边的集合。操作结果: 按定义(V, VR) 构造图G。Show(&G)初始条件:图G已存在。操作结果:显示图G中的所有路径关系。3.3算法分析1. 定义结构体Algraph:定义一个既简单又符合题目设计要求的结构体,采用邻接矩阵来作为图的存储结构;2. 构建图的结构(creatgraph函数):首先, 建立文本文件,利用程序打开文件,从文件中读取图的信息,把图的基本信息存入邻接矩阵中,然后关闭文件。借助邻接矩阵就容易判断出任意两个点之间是
7、否有路径,并且可以存储弧的带权长度值。3. 显示收费站结构的(show函数):在邻接矩阵中,判断两点之间的距离是否小于无穷大,小于无穷大,就说明该两点之间有路径,便能将收费站的结构输出。4. 求最短路径(floyd算法):定义两个数组length和path,path用来存储路径,length用来保存两点之间的最短路径。求两点之间的最短路径,首先要判断这两点是否有路径可走,如果有,但那不一定是最短的路径,需要进行n次试探。若(vi,vk)和(vk,vj)分别是从vi到vk和从vk到vj的中间顶点的序号不大于k-1的最短路径,则将(vi,vk,vj)和已经得到的从vi到vj且中间顶点序号不大于k-
8、1的最短路径相比较,其较长度短者是从vi到vj的中间顶点的序号不大于k的最短路径。这样,经过n次的比较后,最后求得的必是从vi到vj的最短路径。按此方法,可以同时求得各对顶点之间的最短路径。5.求任意两点之间的最短路径(minist函数):在调用floyd算法后,函数中有返回length的值,只要将任意两收费站在数组中的下标找到并带入到length中就可以输出两收费站之间的最短路径。6.求任意两收费站之间的收费(mmoney函数):调用foyld函数求得各收费站之间的最短路径,输入车辆的类型,根据类型的不同,来计算路费。7.定义菜单函数(menu),采用分支函数,列举出菜单,可以任意选择程序的
9、功能,进入相应的函数,得到所需要的结果。4 详细设计4.1绘出计算机程序框图根据车类型来计算路费求任意两点之间的最短路径用flyod算法求最短路径利用邻接矩阵构建图的结构输出任意两点之间最短路径所经过的路径输出函数(输出图的结构)图4-1 程序框图4.2程序的实现4.2.1预编命令,定义结构体和全局变量/ 交通路费系统 / 2012年 6月17日 /# include#include# define M 100typedef int PathMM;typedef structchar vexM; /保存顶点信息int n; / 定义顶点数int edgesMM; /保存每条边的权值Algrap
10、h; /定义图的结构体/*定义全局变量*/int pathMM,lengthMM; /path保存最短路径的结点,length是保存最短路径距离Algraph G;4.2.2从文件中读入图的结构/*利用文件函数打开文本文件f4.txt,将收费站的名称先存储到结构体的数组中,关闭文本文件f4.txt,再打开文本文件f3.txt,将弧的信息存储到结构体的二维数组中,构建出收费站的基本结构*/void creatgraph(Algraph &G)int i,m,n,k;FILE *fp1,*fp2; /*定义文件名*/fp1 = fopen(f4.txt,r); /*r为读取文件*/if(fp1 =
11、 NULL) /*打开文件并判断文件是否存在*/printf(File open error!n);exit(0);i = 1;G.n = 0;while(!feof(fp1) /*从文件中读取信息并存入数组中*/G.n+; fscanf(fp1,%c,&G.vexi);i+;G.n-;if(fclose(fp1) /*关闭文件*/printf(Can not close the file!n);exit(0);for(int h = 1;h=G.n;h+) for(int j = 1;j=G.n;j+)G.edgeshj = 10000; /*给每条边附带权长度初值*/fp2=fopen(f
12、3.txt,r);if(fp2=NULL)printf(File open error!n);exit(0); while(!feof(fp2) fscanf(fp2,%d%d%d,&m,&n,&k); /*从文件中读取边的权值并存入二维数*/ G.edgesmn = k;G.edgesnm=k; if(fclose(fp1) printf(Can not close the file!n); /*关闭文件*/exit(0);4.2.3显示出收费站的结构/*利用函数输出构建的图的存储结构显示出每个站点的距离*/void show(Algraph G)int i,j; creatgraph(G)
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数据结构 课程设计 文档 模板
限制150内