齐 齐 哈 尔 大 学
计控学院
数据结构课程设计
选题名称:
系(院):
专
班
姓
业:
级:
名:
学 号 :
指导教师:
校园导游图
计算机与控制工程学院
软件工程
软件121班
刘泽强
2012023019
吴 迪
2014 年 7 月 1 日
1
数据结构课程设计评分表
软件 121
指导教师
姓名
刘泽强
吴迪
班级
题目: 数据结构课程设计
评分标准
分数权重
评分标准
评分的依据
A
C
得分
工作态度
10
态度端正,能主动认真
完成各项内容,不迟到
早退,出勤好。
能够完成各环节基本工
作,出勤较好。
程序设计,完
成及运行情况
20
功能达到设计要求,程
序稳定、界面美观、符
合规范、程序易读、完
成率 100%、程序运行正
确。
功能实现了大部分,程
序较稳定、界面可用性
一般、程序有注释、完
成率不足 70%。
相关文档
40
答辨问题回答
30
格式规范,层次清晰,
设计思想明确,解决问
题方法合理,文档编写
完整规范,编写过程符
合软件工程开发设计流
程等。
能准确回答老师提出的
问题,并充分理解数据
库开发技术,程序逻辑
清晰。
总分
格式较规范,设计思想
基本明确,解决问题方
法较合理,基本遵循软
件工程开发流程。
能基本准确回答老师提
出的问题
指导教师(签字):
注:介于 A 和 C 之间为 B 级,低于 C 为 D 级和 E 级。按各项指标打分后,总分
90~100 为优,80~89 为良,70~79 为中,60~69 为及格,60 分以下不及格
2
目录
一、问题描述.....................................................................................4
二、程序设计.....................................................................................5
三、运行结果:.................................................................................8
四、总结........................................................................................... 11
附录:...............................................................................................12
3
一.问题描述
设计你所在的学校的校园平面图,所含景点不少于 10 个。以图中顶点表示
校内各景点,存放景点的名称、代号、简介等信息;以边表示路径,存放路径长
度等相关信息。
(2)为来访客人提供图中任意景点相关信息的查询。
(3)为来访客人提供图中任意景点的问路查询,即查询任意两个景点之间的最
短的简单路径。
4
二、程序设计
1.用数据结构知识创建校园图。
void creatgraph(vexnode g[],int *n, EdgeType e[],adjmax *adj) //
创建校园图
{
int b,i,s,d,len;
struct edgenode *p,*q;
//定义图的结构体
2.手动给校园图赋上相关信息(景点名称、代号、简介),路径及路径长度。
得到一个模拟的校园图:
图 2.2
3.利用 C 语言知识编写查找景点相关信息的程序。
手动创建一个校园图 creat(Matrix_Graph *G),然后为相应的边赋上真
正的值。
主要代码:
do{
printf("是否继续? Y/N");
5
scanf("%c",&ch);
getchar();
if(ch == 'Y' || ch == 'y')
//继续
{
flag = 1;
i = 1;
printf("请输入您要查询的景点序号:\n");
scanf("%d",&len);
getchar();
printf("此景点的名称是:");
Name(len);
printf("此景点的介绍是:");
Information(len);
4.利用迪杰斯特拉算法计算任意两点之间的最短路径。
用 path 函数来求任意两景点之间的最短路径。
while(c<=N)
{
t=MAX;
for(i=1;i<=N;i++)
if(flag[i]&&G->arcs[s][i]arcs[s][i];v=i;r[v][1]=v;}
for(i=1;i<=c;i++)
for(j=1;j<=N;j++)
if(flag[j]&&d[i]+G->arcs[T[i]][j]arcs[T[i]][j];v=j;
if(r[v][0]!=-1)
{
}
u=1;
while(r[T[i]][u]!=0)
{
r[v][u]=r[T[i]][u];u++;}
r[v][u]=v;
6
}
r[v][0]=-1;
T[c]=v;
flag[v]=0;
d[c]=t;
c++;
}
5.最后用一个主函数 main 输出各项结果。
用 switch 语句分别输出,要创建校园图时调用 creatgraph 函数;查找景点相关
信息时调用 travgraph 函数;要查找任意两景点之间的最短路径时,先输入你目
前所在的位置,再输入你的目的地,最后调用 path 函数。
7
三、运行结果:
1.运行结果界面:
图-3.1
8