校园导游咨询系统课程设计报告

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

目录

一、需求分析 (2)

二、概要设计 (2)

三、详细设计 (4)

四、设计和调试分析 (9)

五、用户手册 (9)

六、测试结果 (10)

1.操作命令符为s/S, (10)

2.操作命令符为v/V, (11)

3.操作符为v/V, (11)

4.操作符为e/E, (11)

5.综上可以查得: (12)

七、附录 (12)

参考文献 (13)

校园导游咨询系统

一、需求分析

1.从福建农林大学的平面图中选取28个有代表性的景点,抽象成一个无向带权图。以图中顶点表示景点,边上的权值表示两地间的距离。

2.本程序的目的是为了用户提供路径咨询,根据用户指定的始点和终点输出相应路径,或者根据用户指定的景点输出景点的信息。

3.测试数据(附后)。

二、概要设计

1.抽象数据类型图的定义如下:

ADT {

struct arcnode

{ int v;

int w;

struct arcnode *next;

};

struct node

{ int degree;

struct arcnode *first;

}adjlist[28];

}

2.主程序

V oid mian(){

初始化临接矩阵

windows(); / /初始化串口

getch();

}

3.函数定义的变量

#define infi 32767

#define MAX 28

int M,N; //无向图中的顶点M,无向图的变数

int adjmatrix[MAX][MAX]; // 保存临接矩阵的2唯数组

char *schoolIfo[MAX+1]={ //此数组用于界面显示信息

"null","东台-dt","金1-j1","金2-j2","金3-j3","金4-j4","食堂-st","田径场-tjc",

"校大门-xdm","创业园-cyy","校医院-xyy","图书馆-tsg","映辉桥-yhq","观

音湖-gyh",

"成教楼-cjl","生物楼-swl","博学楼-bxl","创新楼-cxl","明德楼-mdl",

"拓荒广场-thgc","南区公寓-nqgy","田家炳楼-tjbl","农大新区-ndxq","中华广场-zhgc",

"905终点站-zdz","蜂疗医院-flyy","研究生公寓-yjsgy","昌融学生街-crxsj","北区学生公寓-bqxsgy"

};

char *charcd2[MAX]={ //用于显示最短路径时走向的数组

"校大门","金1","昌融学生街","创业园","东台","金2","田径场",

"拓荒广场","南区公寓","校医院","食堂","成教楼","创新楼",

"田家炳楼","农大新区","观音湖","金3","映辉桥","金4","明德楼","中华广场",

"905终点站","蜂疗医院","生物楼","博学楼","图书馆","研究生公寓","北区学生公寓"

};

char *charcd[MAX]={ //用于用户输入起始点与终止点时对应的数组

"xdm","j1","crxsj","cyy","dt","j2","tjc",

"thgc","nqgy","xyy","st","cjl","cxl",

"tjbl","ndxq","gyh","j3","yhq","j4","mdl","zhgc",

"zdz","flyy","swl","bxl","tsg","yjsgy","bqxsgy"

};

char *infor[MAX]={ //介绍景点信息数组

"校大门:\n 占不提供介绍","金1:\n 指金山大道的一处,由图可知","昌融学士街:\n 农大的小吃一条街,来农大一定要来尝尝!",

"创业园:\n 农大创业有志者的孵化地","东台:\n 农大老师所住之处","金2:\n 金山大道的第二处有图可看出",

"田径场:\n 农大的运动场地","拓荒广场:\n 大礼堂就在此处","南区公寓:\n 顾名思意,学生公寓","校医院:\n 希望你不要来",

"食堂:\n 学校八九十食堂都在这,不错蛮好吃的。","成教楼:\n 成人教育教学大楼","创新楼:\n 教学处",

"田家炳楼:\n 教学楼","农大新区:\n 此处景点很多,由于时间不多.占不介绍。你自己看看,不错的....",

"观音湖:\n 来农大必到之处,口碑也非常好,来了就一定要去","金3:\n 金山大道第三处分叉口","映辉桥:\n 情人之桥美丽而烂漫,值得留恋",

"金4:\n 金山大道第四处分叉口","明德楼:\n 学校的最高建筑","中华广场:\n 学校最好的照相之处,那是相当漂亮哦",

"终点站,你离开农大再来我这吧!","蜂疗医院:\n 学校特色,其他学校可没有","生物楼:\n 搞研究的","博学楼:\n 搞化学方面的",

"图书馆:\n 不错,可以来看看","研究生公寓:\n 不要介绍了吧","北区学生公寓:\n 不要说你不懂哦"

};

void windows(); //主界面窗口

void ReadCommand(char cmd); //读取用户需要的操作码

void Interpret(char cmd); //执行正确的用户输入操作码

void Shortpath(); //得到用户想要计算的起点与终点void getshortpath(int v0,int v1); //计算两点间的最短路径及走向

void getinformation();

4.本程序仅有三个模块

三、详细设计

void CreatGraph()

{

//创建学校平面图

//采用邻接矩阵为存储结构

FILE *fp2;

int i=0,j=0,k;

int vi=0,vj=0,w=0;

fp2=fopen("D:\\TC\\tcwork\\Graph.txt","r");

if(!fp2){printf("Open Graph file error.");}

fscanf(fp2,"%d %d",&M,&N);

for(i=0; i

for(j=0; j

if(i==j) adjmatrix[i][j]=0;

else adjmatrix[i][j]=infi;

for(k=0;k

{

fscanf(fp2," %d %d %d",&vi,&vj,&w);

i=vi;

j=vj;

adjmatrix[i][j]=adjmatrix[j][i]=w;

}

}/* CreatGraph */

void windows(){

int i;

char cmd;

printf("******************************************************\n");

相关文档
最新文档