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