学校门口的树C语言算法,C语言校园导游程序设计汇报.doc
C語言校園導(dǎo)游程序設(shè)計(jì)匯報(bào)
《應(yīng)用程序設(shè)計(jì)
課程設(shè)計(jì)》報(bào)告
班級(jí):
學(xué)號(hào):
姓名:
指導(dǎo)教師:
成績(jī)?cè)u(píng)定:
目錄
題目:
設(shè)計(jì)一個(gè)校園導(dǎo)游程序,為來訪的客人提供各種信息查詢服務(wù)
一.需求分析:
此次課程設(shè)計(jì)的主要內(nèi)容是校園導(dǎo)航,為來訪的客人提供各種信息查詢服務(wù)
③學(xué)校主要景點(diǎn)的分布④查詢?nèi)我鈨蓚€(gè)景點(diǎn)之間的最短路徑。
⑴對(duì)于功能①的輸入形式是沒什么要求的,主要就是根據(jù)菜單的提示輸入相應(yīng)的數(shù)字選擇相應(yīng)的功能;對(duì)于功能②的輸入形式的要求也比較簡(jiǎn)單,要查詢某一景點(diǎn)的簡(jiǎn)介直接輸入其對(duì)應(yīng)的編號(hào)即可;對(duì)于功能③的輸入形式的要求同功能①;對(duì)于功能④只需要輸入起始景點(diǎn)和目的景點(diǎn)的編號(hào)即可。此程序在輸入形式上都沒什么特殊的要求只是一些簡(jiǎn)單的數(shù)字就可以了。
⑵功能①③就是輸出由字符構(gòu)成的一幅簡(jiǎn)易圖,形式比較單一;景點(diǎn)的簡(jiǎn)介方面輸出景點(diǎn)的簡(jiǎn)單信息就可以了;要查詢最短路徑的話輸出的是從起始景點(diǎn)到目的地的最短路徑中所途經(jīng)的各個(gè)景點(diǎn)及距離。
⑶本程序所能達(dá)到的功能就是前面所提到的①—④中的功能。
二.概要設(shè)計(jì):
抽象數(shù)據(jù)類型的定義:
ADT Graph{
數(shù)據(jù)對(duì)象 V:具有相同特性的數(shù)組元素的集合,稱為頂點(diǎn)集。
數(shù)據(jù)關(guān)系 R:
R={VR}
VR={|v,w∈V且P(v,w), 表示從v到w的弧,謂詞P(v,w)定義了弧的意義或信息}
基本操作P:
CreateGraph(&G,V,VR);
初始條件:V是圖的頂點(diǎn)集,VR是圖中弧的集合。
操作結(jié)果:按V和VR的定義構(gòu)造圖G。
DistroyGraph(&G)
初始條件:圖G存在
操作結(jié)果:銷毀圖G
LocateVex(G,u);
初始條件:圖G存在,u和G中頂點(diǎn)有相同的特征。
操作結(jié)果:若存在頂點(diǎn)u,則返回該頂點(diǎn)在圖中的位置;否則返回其他信息。
GetVex(G,u);
初始條件:圖G存在,u是圖中的頂點(diǎn)。
操作結(jié)果:返回u的值。
InsertVex(&G,v);
初始條件 :圖G存在,v和圖中的頂點(diǎn)有相同的特性。
操作結(jié)果:在圖G中新增頂點(diǎn)v.
InsertArc(&G,v,w);
初始條件:圖G存在,v和w是圖中的頂點(diǎn)。
操作結(jié)果:在圖G中增添弧,若是無向圖,還增添弧。
}ADT Graph
主程序流程(各函數(shù)之間的調(diào)用關(guān)系):
Main();//主函數(shù)
Initview();//景點(diǎn)信息的初始化
InitLength();//各個(gè)景點(diǎn)之間距離的初始化
log();//登錄時(shí)的頭部
showmenu();//登錄后的菜單
browser();//全景平面圖的瀏覽
browse_view_info();//景點(diǎn)簡(jiǎn)介的查詢
browse_view_distribute();//主要景點(diǎn)的分布
onetoone();//查詢?nèi)我鈨蓚€(gè)景點(diǎn)之間的最短路徑
調(diào)用關(guān)系如下:(函數(shù)內(nèi)部沒什么調(diào)用關(guān)系)
三.詳細(xì)設(shè)計(jì):
⑴圖的結(jié)構(gòu):
typedef struct view//點(diǎn)的結(jié)構(gòu)
{
int no;//景點(diǎn)編號(hào)
char name[100];//景點(diǎn)名稱
char briefinfo[1000];//景點(diǎn)簡(jiǎn)介
}view;
typedef struct edge//邊的結(jié)構(gòu)
{
int length;//兩個(gè)景點(diǎn)之間的距離
char direction[4];//方向
}edge;
⑵偽碼算法:
Main()
{path=(edge **)malloc(MAX*sizeof(edge));
for(v=0;v
path[v]=(edge *)malloc(1000*sizeof(edge));
TD=(view *)malloc(MAX*sizeof(view));
D=(DistancMatrix )malloc(MAX*sizeof(DistancMatrix));
P=(PathMatrix )malloc(MAX*sizeof(PathMatrix));
for(v=0;v
Initview(TD);InitLength(path);//初始化
system("mode con: cols=140 lines=130");
log();while(1){
showmenu();//菜單
printf("請(qǐng)選擇:\n");
scanf("%d",&k);
switch(k){
case 1: browser();system("cls");break;
case 2: browse_view_info(TD
總結(jié)
以上是生活随笔為你收集整理的学校门口的树C语言算法,C语言校园导游程序设计汇报.doc的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 作为神经网络的输入_MATLAB实战|基
- 下一篇: 世界手机号码格式_世界上手机号码最长的国