课程设计实验报告(含全部)

上传人:第*** 文档编号:57492798 上传时间:2018-10-22 格式:DOC 页数:34 大小:1.28MB
返回 下载 相关 举报
课程设计实验报告(含全部)_第1页
第1页 / 共34页
课程设计实验报告(含全部)_第2页
第2页 / 共34页
课程设计实验报告(含全部)_第3页
第3页 / 共34页
课程设计实验报告(含全部)_第4页
第4页 / 共34页
课程设计实验报告(含全部)_第5页
第5页 / 共34页
点击查看更多>>
资源描述

《课程设计实验报告(含全部)》由会员分享,可在线阅读,更多相关《课程设计实验报告(含全部)(34页珍藏版)》请在金锄头文库上搜索。

1、程序设计课程设计报告程序设计课程设计报告学 院:软件学院专 业:软件工程班 级:1217 班学 号:201200xxxx 201200xxxx201200xxxx 201200xxxx姓 名:xxxx 、xxxx xxxx 、xxxx 指导教师:张辉时 间:2014 年 6 月目录目录1. 交通咨询系统1.问题描述 2.设计需求及分析 3.设计功能的实现3.1 算法思想描述3.2 概要设计3.3 详细设计 4.实例测试及运行结果 5.实现提示 二.停车场管理系统1. 问题描述 2. 设计需求及分析 3. 设计功能的实现 4. 实例测试及运行结果 5. 实现提示三.学生管理系统1. 问题描述 2

2、. 设计需求及分析 3. 设计功能的实现 4. 实例测试及运行结果 5. 实现提示1. 交通咨询系统交通咨询系统专业:软件工程 班级:软件 12xx 姓名:xxx 学号:201200xxxx 完成日期: 2014.6.261问题描述问题描述设计一个交通咨询系统,能让旅客咨询从任一个城市定点到另一个城市定点之间的最短路径或最低花费或最少时间等问题。对于不同的咨询要求、可输入城市间的路程或所需时间或所需花费。设计要求: 1.建立交通网络网的存储结构。 2.总体设计要画流程图。 3.提供程序测试方案。 4.界面友好。2设计需求及分析设计需求及分析根据要求,需要在系统中建立无向图。系统应该有高度灵活性

3、,可以由用户根据当前交通网络图输入初始数据,并且可以更改。系统根据用户的输入建立无向图的结构,并通过狄克斯特拉算法和弗洛伊德算法实现要求,并提供两种功能供用户选择。3设计功能的实现设计功能的实现3.1 算法思想描述算法思想描述首先总体的思想步骤是:(图 1-1)交通咨询管理系统建立无向图进行功能 选择设置城市之间道路 距离输入城市和道路数 量情况建立交通网咨询一个城市到任意 城市距离咨询任意两个城市间 最短距离狄克斯特拉算法的具体流程图如下:(图 1-2)开 始初始化距离和路径i=1j=1;j+;jn弗洛伊德算法的具体流程图如下:(图 1-3)3.2 概要设计概要设计系统应该分为三个部分,一是

4、建立交通网络图的存储结构;二是解决单源最短路径问题;最后再实现两个城市顶点之间的最短路径问题。1、建立图的存储结构:无向图首先定义交通图的存储结构。邻接矩阵是表示图形中顶点之间相邻关系的矩阵。设G=(V,E)是具有 n 个顶点的图,则 G 的邻接矩阵是具有如下定义的 n 阶方阵。Ai,j=。,当不满足上述条件时或或,若0);(,),(GEvjvivjviWij开 始初始化距离和路 径设为从 到 的只以集合中的节点为中间节点的最短路径的长度输出结果最短路径经过点 k最短路径不经过点 k一个图的邻接矩阵表示是唯一的。图的邻接矩阵表示,除了需要用一个二维数组存储顶点之间相邻关系的邻接矩阵外,通常还需

5、要使用一个具有 n 个元素的一维数组来存储顶点信息,其中下标为 i 的元素存储顶点 vi 的信息2、单源最短路径:狄克斯特拉算法初始化 S 和 D,置空最短路径终点集,置初始的最短路径值;Sv1=TRUE;Dv1=0;/S 集初始时只有源点,源点到源点的距离为 0;while(S 集中顶点数#include#define Num 300 /定义常量定义常量 Num#define Maxint 32767enum booleanFALSE,TRUE; /定义布尔类型定义布尔类型typedef char VertexType;typedef int Adjmatrix;typedef struct

6、VertexType vexsNum;Adjmatrix arcsNumNum;MGraph;int D1Num,P1Num;int DNumNum,PNumNum;void CreateMGraph(MGraph *G,int n,int e); /构建城市的无向图的声明构建城市的无向图的声明void Dijkstra(MGraph *G,int v1,int n); /狄克斯特拉算法的声明狄克斯特拉算法的声明void Floyd(MGraph *G,int n); /弗洛伊德算法的声明弗洛伊德算法的声明void main() MGraph *G; /定义无向图定义无向图 Gint n,e,

7、v,w,k;int m=1;G=(MGraph *)malloc(sizeof(MGraph);printf(“欢迎使用欢迎使用【交通咨询系统交通咨询系统】!本系统约定:!本系统约定:n1.记一个城市为一个记一个城市为一个点,点用从点,点用从 1 开始按顺序的编号表示,两个城市的连线为一条边;开始按顺序的编号表示,两个城市的连线为一条边;n2.程序程序要求输入的文本都是按回车进行确认;要求输入的文本都是按回车进行确认;n3.程序输入输出均不带单位,单位程序输入输出均不带单位,单位默认为默认为“公里公里”。nn“);printf(“系统需要知道地图的结构,请输入顶点个数和边数,用系统需要知道地图

8、的结构,请输入顶点个数和边数,用“,”号隔开:号隔开:n“);scanf(“%d,%d“,CreateMGraph(G,n,e); /调用调用 CreateMGraph 有向图函数有向图函数while(m!=0)printf(“=n“);printf(“请输入数字:请输入数字:n“);printf(“0 : 退出退出n“);printf(“1 : 求一个城市到其他所有城市的最短路径求一个城市到其他所有城市的最短路径n“);printf(“2 : 求任意的两个城市之间的最短路径求任意的两个城市之间的最短路径n“);scanf(“%d“,if(m=2)Floyd(G,n);printf(“请输入起

9、点和终点,用请输入起点和终点,用“,”号隔开:号隔开:n“);scanf(“%d,%d“,k=Pvw;if(k=0)printf(“n 输出的结果:输出的结果:n 顶点顶点%d 到到%d 无路径无路径!n“,v,w);elseprintf(“n 输出的结果:输出的结果:n 从顶点从顶点%d 到到%d 的最短路径是的最短路径是: %d“,v,w,v);while(k!=w)printf(“%d“,k);k=Pkw;printf(“%d“,w);printf(“n 路径长度路径长度: %dn“,Dvw);elseif(m=1)printf(“请输入起点编号:请输入起点编号:n“);scanf(“%

10、d“,Dijkstra(G,v,n);printf(“程序已结束!谢谢您的使用!程序已结束!谢谢您的使用!n“);void CreateMGraph(MGraph *G,int n,int e) /构建城市的无向图构建城市的无向图int i,j,k,w;for(i=1;ivexsi=(char)i; for(i=1;iarcsij=Maxint; /距离初始化距离初始化if(i=j)G-arcsij=0;printf(“n 请输入请输入%d 条边的两端点序号和长度,用条边的两端点序号和长度,用“,”号隔开号隔开n 例如:例如:1 号城市到号城市到 2 号城市的长度为号城市的长度为 3,则输入,

11、则输入 1,2,3): n“,e);for(k=1;karcsij=w; /建立城市之间的距离建立城市之间的距离G-arcsji=w;printf(“n 地图的结构建立成功!地图的结构建立成功!n“);void Dijkstra(MGraph *G,int v1,int n) /狄克斯特拉算法求一个城市到任狄克斯特拉算法求一个城市到任意一个城市的距离意一个城市的距离 int D2Num,P2Num; int v,i,w,min;enum boolean SNum;for (v=1;varcsv1v; /距离初始化距离初始化if(D2varcsvwarcsvw;P2w=v;printf(“n 输

12、出的结果:输出的结果:n“);printf(“路径长度路径长度 路径路径n“); /输出最短路径输出最短路径for(i=1;iarcsij!=Maxint) /距离初始化距离初始化Pij=j; /路径初始化路径初始化elsePij=0;Dij=G-arcsij;for(k=1;k#include #include#include#define MAX 10#define price 0.05 typedef struct time int hour;int min;time;typedef struct carnodechar num10;time reach;time leave;carno

13、de;typedef struct carstackcarnode *stackMAX+1;int top;carstack;typedef struct qnodecarnode *data;struct qnode *next;qnode;typedef struct nodeqnode *head;qnode *rear;linkqueue;void initstack(carstack *s)int i;s-top=0;for(i=0;istacks-top=NULL;int initqueue(linkqueue *Q)Q-head=(qnode *)malloc(sizeof(qn

14、ode);if(Q-head!=NULL)Q-head-next=NULL;Q-rear=Q-head;return 1;elsereturn -1;int arrival(carstack *enter,linkqueue *w)/车辆?到?达?carnode *p;qnode *t;p=(carnode *)malloc(sizeof(carnode);printf(“n请?您输?入?车牌?号?:阰“);scanf(“%s“,if(enter-toptop+;printf(“n该?车停?在的?位?置?:阰%d号?“,enter-top);printf(“n请?您输?入?车到?达?的?时骸?间?:阰“);scanf(“%d:%d“,enter-stackenter-top=p;return 1;else printf(“对?不?起e,?停?车场

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 高等教育 > 大学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号