校园导航系统数据结构课程设计
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
课程设计报告书
课程名称数据结构
设计题目校园导航系统
专业班级计算机11-4 班
学号 1101050110 姓名刘冬冬
指导教师彭延军
2013 年12 月
目录
1.设计时间 (2)
2.设计目的 (2)
3.设计任务 (2)
4.设计内容 (2)
4.1需求分析 (2)
4.2总体设计 (3)
4.3详细设计 (4)
4.4测试与分析 (12)
4.4.1测试 (12)
4.4.2分析 (13)
4.5 附录 (14)
5 总结与展望 (20)
6.参考文献 (21)
7.成绩评定 (21)
1 设计时间
2013年12月3日
2 设计目的
1.加深对《数据结构》这一课程所学内容的进一步理解与巩固
2.通过完成课程设计,逐渐培养自己的编程能力;
3.培养给出题目后,构建框架,用计算机解决的能力;
4.通过调试程序积累调试C程序设计的经验;
3设计任务
给出校园各主要建筑的名称信息及有线路联通的建筑之间的距离,利用校园导航系统计算出给定的起点到终点之间的最近距离及线路。
4 设计内容
4.1需求分析
1.程序所能达到的功能:
(1) map——输出山东科技大学平面图。
(2) init()——按相应编号输入各个节点内容,对相应路径赋值的函数。
(3) floyd()-- --弗洛伊德求最短路径
(4) information()——输出简介的函数
(5) Path()——最短路径的输出函数
(6) shortestpath()——调用弗洛伊德和最短路径输出的函数
(7) main()——主函数
2.输入的形式和输入值的范围:
输入数字和字母:
字母:以s查询最短路径;以i查询信息;以e退出程序。
数字:从1到9输入。
3.输出的形式:
从A到B得最短路径为:
A-到-C-到-D-到-B
最短距离为:xxx米。
4.测试数据包括在正确的输入及输出结果及含有错误的输入及输出结果:
Input:s
Output:Please enter the number two to query : 1 7
Output:The shortest path from Area C dormitory building to library is: Area C dormitory building--Area C restaurant--library;
The shortest distance is:150meters.
Input:i
Output:Please enter the number of query site: 3
Output:@name: Area B dormitory building
@introduction:Area B student rest area
input:e
output:Thank you for you use
4.2总体设计
1.抽象数据类型定义
typedef struct
{
char name[100] ;
int number;
char introduce[100];
}Vertex;
2.主程序模块的整体流程
1、进入主函数,调用init(),map()。
2、选择“s”,调用shortestpath函数,并同时调用floyd和way函数。
3、选择“i”,调用information函数
4、选择“e”,退出。
3.各模块调用关系如下:
主函数
s e i
shortestpath Exit Information
4.3详细设计
1.有向网节点结构体类型定义:
typedef struct
{
char name[100] ;
int number;
char introduce[100];
}Vertex;
2.主程序和其它主要函数伪码算法
1)主程序
int main()
{
char i;
printf(" Welcome to use the shandong university of science and technology of navigation system\n\n\n\n");
init();
map();
char c;
do
{
printf("Please enter the 's' to query the shortest path\n");
printf("Please enter the 'i' to query information\n");
printf("Please input 'e' to exit the program\n\n\n");
loop:
scanf("%c",&c);
if(c >= 'A' && c <= 'Z')
{
c += 32;
}
if(c == '\n')
{
goto loop;
}
if(c != '\n')
{
if(c == 's')
{
shortestpath();
continue;
}
else if(c == 'i')
{
Information();
continue;
}
else if(c == 'e')
{
printf("\n\n\n\t\t\t\tThank you for you use\n\n\n"); return 0;
}
else