数据结构实训报告Word格式文档下载.docx

上传人:b****2 文档编号:4816859 上传时间:2023-05-04 格式:DOCX 页数:17 大小:401.17KB
下载 相关 举报
数据结构实训报告Word格式文档下载.docx_第1页
第1页 / 共17页
数据结构实训报告Word格式文档下载.docx_第2页
第2页 / 共17页
数据结构实训报告Word格式文档下载.docx_第3页
第3页 / 共17页
数据结构实训报告Word格式文档下载.docx_第4页
第4页 / 共17页
数据结构实训报告Word格式文档下载.docx_第5页
第5页 / 共17页
数据结构实训报告Word格式文档下载.docx_第6页
第6页 / 共17页
数据结构实训报告Word格式文档下载.docx_第7页
第7页 / 共17页
数据结构实训报告Word格式文档下载.docx_第8页
第8页 / 共17页
数据结构实训报告Word格式文档下载.docx_第9页
第9页 / 共17页
数据结构实训报告Word格式文档下载.docx_第10页
第10页 / 共17页
数据结构实训报告Word格式文档下载.docx_第11页
第11页 / 共17页
数据结构实训报告Word格式文档下载.docx_第12页
第12页 / 共17页
数据结构实训报告Word格式文档下载.docx_第13页
第13页 / 共17页
数据结构实训报告Word格式文档下载.docx_第14页
第14页 / 共17页
数据结构实训报告Word格式文档下载.docx_第15页
第15页 / 共17页
数据结构实训报告Word格式文档下载.docx_第16页
第16页 / 共17页
数据结构实训报告Word格式文档下载.docx_第17页
第17页 / 共17页
亲,该文档总共17页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

数据结构实训报告Word格式文档下载.docx

《数据结构实训报告Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《数据结构实训报告Word格式文档下载.docx(17页珍藏版)》请在冰点文库上搜索。

数据结构实训报告Word格式文档下载.docx

第四章详细设计8

4.1最短路径查找8

4.2文件存储10

4.2景点信息查询11

第五章系统测试13

5.1测试策略13

5.2测试结果13

第六章总结16

第一章概述

1.1任务描述

由于学习任务和为方便大一新生们对我校的景点有所了解,我两人决定协作完成校园导游程序。

此程序是一个可以实现同学们对我校园区的多数景点的查询,方便新生们对学校各个场所的寻找。

该校园导游系统是由校园全景浏览、景点信息查询、最短路径查询和校园美景评价几个功能组成。

其中希望实现全景浏览可以俯瞰学校大轮廓,景点信息查询用作为用户介绍景点特色,最短路径查询功能可以告诉用户景点之间最短距离,最后一个功能是用户对景点的评价功能。

评价功能中有管理员权限,可以进行景点的修改。

程序中用到了结构体函数,顺序链表的存储和修改,图的创建等知识点。

1.2分组情况

本小组人员是倪远远和沈建曦,编码工作是由沈建曦为主,倪远远从旁协助。

文档的编写由倪远远为主编写。

编码的主框架由两人齐力修改,其中沈建曦负责路径长度的修改和学校地图的修改,本人负责图描述的修改。

子函数添加的构思组要参考实训要求编写。

第二章需求分析

2.1功能描述

系统主要有的功能:

校园全景浏览、景点信息查询、最短路径查询、和校园美景评价等功能模块,其中还有管理员权限。

功能介绍:

1、全景浏览功能能够让用户看到我校的大致轮廓图,较为清晰地看到我校的建筑物和景点;

2、景点信息查询功能是向用户介绍景点的特点,用户可以输入想要查询的景点,按回车键即可显示你想要查询的景点;

3、最短路径的查询功能能够查询用户想要查询的每一个景点之间的最短路径;

4、校园美景评价功能可以让每一个用户都能对学校景点进行评价,用户只要输入景点的代号即可进入评价界面,然后可以输入评价;

5、管理员权限功能普通用户也可以进入,但是要修改需要获得密码权限,管理员进入权限需要输入密码登陆,它可以进行多个功能的操作,即及时添加或删除景点和对评价进行管理。

即管理员权限功能主要是对校方对景点和建筑物的变化进行修改,和搜集用户对特定景点的评价,及时掌握同学们的意见和看法。

2.2关键技术

关键技术是:

校园地图的创建、图的创建、景点列表的创建、输出函数的创建、关于修改链表的函数的创建。

1、校园地图的创建规划出来了校园的大致轮廓,和学校的主要建筑物的所在位置,较为直观反映了学校建筑规模和建筑的分布情况。

校园的地图是由手绘画出来的,由于线条很是繁多,绘画起来很麻烦,花了两天的时间,但是其拥有比界面寻址更加直观的视觉效果。

2、图的创建是建立了学校景点的介绍和描述,被景点信息查询功能模块所调用。

我们定义了边节点和景点节点,并且计算了各个景点之间的距离,在用户输入景点查询后就可以显示景点之间的最短路径。

3、景点列表的创建将各个主要的景点做成了一份表格的形式输出的,比较直观,同时它还调用了景点的查询功能。

景点列表也是用手绘图做出来的效果,代码量虽不大,但是视觉效果较为直观,同时在景点查询时需要调用该景点列表。

4、输出函数在此程序中毫无疑问是扮演着很重要的一个角色,它实现了图的输出、景点列表的输出、主菜单的输出等等。

5、关于修改链表的函数的创建。

在此程序中实现了对景点的删除和添加的功能,对多个子函数进行调用,能够及时更新我校的景点评价的变化。

修改函数中在管理员权限设置上的问题是:

不知道应该将密码登陆代码添加到三个修改函数中的哪个修改函数中,经过多次测试,最终确定添加在modify()函数内解决可以这个问题。

其中最为突出的亮点是游客用户的留言簿,游客可以对我校的各个景点进行评价并且可以浏览其他游客对各个景点的评价。

同时管理员可以对游客的留言簿进行系统管理,即上述所提到的管理员功能。

第三章概要设计

3.1核心结构体

核心结构体是顺序链表的结构体创建、顶点节点图的创建。

下面是结构体的展示:

1、typedefstruct

{intnumber;

charsight[50];

此结构体是定义游客对景点的评价,

结构体定义了游客可以评价的景点信息,

charscrible[100];

景点编号和游客信息。

charname[50];

}view;

2、typedefstruct定义文件存储:

将各个景点的信息按照线性表的方式存入文件中,

{当游客想要了解想要的景点信息时,

viewv[50];

输入景点编号信息就可以从存储的文件里读出并显示。

intlast;

}SeqList;

typedefstructVertexNode

{

intnumber;

//景点的编号

char*name;

//景点的名称

char*info;

//景点的简介

}VertexNode;

//顶点结点的定义

3.2系统结构(子函数)

下面是程序中各个子函数:

intxiugai()修改目录

voidMap()校园地图

voidCreateGraph()创建图

voidOutputPlace()输出景点列表

voidSearchPlace()查询景点信息

voidSearchPath()查询最短路径

voidShortpath(inti)计算最短路径

voidOutput(intsight1,intsight2)景点输出函数

voidchangesight()景点更改函数

gai_number(SeqList*L,inti)景点代码调数

gai_sight(SeqList*L,inti)新景点输入函数

gai_scrible(SeqList*L,inti)景点描述函数

gai_name(SeqList*L,inti)景点名函数

change(SeqList*L)修改景点号的函数

intpassword()密码设置函数

SeqList*init_SeqList()链表函数

SaveFile(SeqList*L)文件读入

OpenFile(SeqList*L)文件读出

Input(SeqList*L)链表输入

Show(SeqList*L)显示文件内容

intedit_menu()主菜单函数

SaveFile(SeqList*L)文件读入

AddNode()添加评价目录

modify()修改子函数

intedit_menu()编辑菜单

voidchangesight()引入编辑菜单

图3-1系统流程图

第四章详细设计

4.1最短路径查找

最短路径查找,关键代码:

1)最短路径的查询采用了迪杰斯特拉算法定义了i、w和v为整型的计数变量,整型t表示景点个数。

还定义了标志数组、用来存放顶点的信息,用整型min来记录权值、最终输出路径。

用For语句来实现循环:

for(v=0;

v<

NUM;

v++)

{

final[v]=0;

//假设从顶点num到顶点v没有最短路径

D[v]=G.arc[num][v].length;

//将num到其余顶点的最短路径长度初始化为权值

for(w=0;

w<

w++)

path[v][w]=0;

//初始化从v到w的路径值

if(D[v]<

MAX)//存在路径

{

path[v][num]=1;

//存在标志置为一

path[v][v]=1;

//自身到自身

}

}

2)用数组D[num]=0来初始化新的路径,用final[num]=1去初始化num顶点属于final集合,开始主循环后,每一次求得num到某个顶点的最短路径,并将其加入到final集合,用for语句来实现:

for(i=0;

i<

++i)//其余G.vexnum-1个顶点

min=MAX;

//当前所知离顶点num的最近距离

++w)

if(!

final[w])//w顶点在v-s中

if(D[w]<

min)//w顶点离num顶点更近

{v=w;

min=D[w];

下面路径查询的实际操作截图:

图4-1界面显示

图4-2路径查询

4.2文件存储

1、文件的存储功能是用来存储学校导游系统的文件信息的,游客留言簿里的文件信息就是用这个子函数存储的,系统采用SaveFile(SeqList*L)来存储实现文件的读入,Show(SeqList*L)来实现显示文件的内容OpenFile(SeqList*L)实现文件的读出。

下面是文件读入的部分代码:

if((fp=fopen("

FileTest.txt"

"

wb"

))==NULL)

{

printf("

打开文件失败"

);

exit

(1);

}

while(i!

=-1)

if(fwrite(&

L->

v[i--],sizeof(view),1,fp)!

=1)

写入错误!

"

1)下面是文件输入:

图4-3文件输入

2)下面是文件读出的显示操作,读出信息子函数部分代码由if语句完成,代码如下:

If((fp=fopen("

rb"

))==NULL)

{printf("

}

while(fread(&

vi,sizeof(view),1,fp)==1)

{L->

last++;

L->

v[L->

last]=vi;

-----------------------------------------------------------------------------\n"

\t景点编号\t景点\t评价\t\t\t\t\t游客名\n"

\t%d\t\t%s\t\t%s\t\t\t\t\t%s\n"

L->

last].number,L->

last].sight,L->

last].scrible,L->

last].name);

}

图4-4文件输出

4.2景点信息查询

1、景点查询功能实现的是校园景点的查询,游客可以根据景点代码查询景点信息,此功能将会显示与景点相关联的信息咨询。

voidSearchPlace()查询景点信息,采用if(num>

0&

&

num<

=G.vexnum)来判断信息输入正确与否,用for语句来实现的代码表示为:

for(i=1;

=G.vexnum;

i++)

if(num==G.vertex[i].number)

{

printf("

\n\t\t\t\t\t\t景点编号:

%d\n"

i);

\t\t\t\t\t\t景点名称:

%s\n"

G.vertex[i].name);

\t\t\t\t\t\t景点简介:

%s\n\n"

G.vertex[i].info);

}

else

printf("

\t\t\t\t\t\t信息输入有误!

\n"

num=0;

printf("

\n\t\t\t\t\t\t是否继续查询景点信息(y/n):

c=getchar();

getchar();

图4-5景点查询界面显示

图4-6景点信息显示界面

第五章系统测试

5.1测试策略

首先是测试校园的全景浏览程序的功能,查看校园全景的效果;

其次测试校园景点查询的功能看其景点的查询功能是否完善;

然后是测试最短路径的功能,看其输出效果是否合理;

最后测试景点评价的功能,看其程序执行后评价效果怎样,输出的效果,游客浏览留言簿的显示效果。

5.2测试结果

1、校园全景浏览程序测试:

单击程序运行将会进入程序主界面,展示在下面:

图5-1校园全景图

2、景点查询测试:

在主界面的光标处输入景点代码,查询结果就会显示输出效果如下图:

图5-2景点查询界面显示图

图5-3景点介绍显示图

3、最短路径的查询:

输入想要查询的起点1,回车后输入景点2后回车,即可看到你所想要的查询结果。

图5-4最短路径查询界面显示图

4、景点评价功能测试:

游客进入系统后登陆评价系统,输入自己的意见和建议后,选择3退出并保存。

第一幅图是校园导游系统的游客浏览后留言的效果显示图,第二幅是留言簿的效果显示图,如下所示:

图5-5游客留言输入显示图

图5-6游客浏览留言簿界面显示图

第六章总结

1、收获

在这的实训中遇到了不少让人纠结的情况,虽然是这样,但是在此次的实训中依然学到了许多知识,虽然这些都是老师课堂上讲过的点,但是想要实现却是比想象中难的多,经过这次的实训却实对于程序的开发有了更深刻的理解。

实训中明白了写程序真的很痛苦,但是写好了之后那种成就感真的不知道该怎么形容。

同时明白了团队合作的重要性。

2、失误

实训中失误也很多,不知道管理员密码权限功能应该添加到哪个景点修改之内,还有操作上的失误也有。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高等教育 > 工学

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2