虚拟校园系统设计说明书.docx
- 文档编号:3524138
- 上传时间:2022-11-23
- 格式:DOCX
- 页数:13
- 大小:291.39KB
虚拟校园系统设计说明书.docx
《虚拟校园系统设计说明书.docx》由会员分享,可在线阅读,更多相关《虚拟校园系统设计说明书.docx(13页珍藏版)》请在冰豆网上搜索。
虚拟校园系统设计说明书
*******************
实践教学
*******************
兰州理工大学
计算机与通信学院
2011年秋季学期
面向对象课程设计
题目:
虚拟校园系统
专业班级:
计算机科学与技术
姓名:
韩守权
学号:
10240427
指导教师:
朱红蕾
成绩:
目录
一.中文摘要:
2
二.前言:
2
三.详细设计:
9
1.存储结构设计:
4
2.流程图设计:
5
3.主菜单窗口16
4.显示校园所以建筑信息16
5.查询校园建筑信息17
6.问路查询系统17
7.退出导游咨讯平台18
四.:
参考文献19
五.课程设计总结与体会:
19
六.致谢:
...............................................19
七.源代码...............................................20
一.中文摘要:
经过一个学期的对《C++面向对象程序设计》的学习,我们都认为真正学到了有用知识,可能一些人学的不够理想,但无论如何,这些知识都为我们下一步学习打下坚实的基础。
做这么一个课程设计,一方面是为了检验我们一个学期来的学习成果,另一方面也是让我们进一步的掌握和应运它,同时也让我们认清自己的不足之处和薄弱环节,加以弥补和加强。
本系统是虚拟校园系统,可以利用它来确定校园的信息。
系统界面清楚明了,操作简单易懂。
本文首先介绍了该系统的详细设计过程:
问题分析、结构分析,功能介绍、最后进行了总结。
关键字:
C++面向对象,虚拟校园系统,类。
2.前言
随着计算机技术的飞速发展,以及它在各行各业的广泛应用,给人们的生活及工作带来了很大的便捷。
如今人们消费水平的显著提高,人们需求的生活质量逐步在增加,如何来解决这些问题,虚拟校园系统解决这些问题,其中主要面临的问题主要有如何快速准确的对建筑景点的查找,从整体上提高建筑经典的查找效率。
虚拟校园系统主要是利用虚拟现实技术进行复杂场景的虚拟漫游已成为可能,利用这一技术我们可以游览虚拟校园欣赏校园景致。
在虚拟现实的发展过程中人们总结出一个虚拟现实系统应具有以下三个特征:
沉浸感(Immersion)、交互性(Interaction)和想象力(Imagination)。
虚拟校园导航就是要求校园内的虚拟漫游。
通过本软件的设计、开发,使游客和学生。
可以随时随地的畅游校园。
虚拟校园系统使着成为可能。
3.详细设计
4.1存储结构设计:
图的信息以邻接矩阵形式存储,邻接矩阵以二维数组的数据结构存储。
cost[i][j];
(1)、查询景点信息
将相应景点信息存入文本文档中,依据需要调用读取文件,并显示在屏幕上。
(2)、两点间所有路径
利用邻接矩阵转换为邻接表,以邻接表的遍历查找路径,并将路径暂时存储,最后一次将各路径输出。
2.流程图设计:
Main()函数流程图
3主菜单窗口
4显示校园所以建筑信息
5,查询校园建筑信息
6:
问路查询系统
7:
退出导游咨讯平台
四.参考文献
[1]初小璐.完全掌握SQLServer2000[M]机械工业出版社,2004
[2]JeraodV.Post.数据库管理系统(英文版.第三版)[美]清华大学出版社,2006.1
[3]张海藩.软件工程导论[M].北京:
清华大学出版社,1998.1
[4]谢希仁.计算机网络(第二版)[M].北京:
电子工业出版社,2003.6
[5]戴志诚,赵国峰.JSP信息化系统建设案例[M].北京:
人民邮电出版社,2006.12
[6]成晓静,毕靖.网页设计三剑客完全学习手册[M].北京:
中国电力出版社,2004.11
[7]赵强.精通JSP编程[M].北京:
电子工业出版社,2006.3
[8]萨师煊,王珊.数据库系统概论[M].北京:
高等教育出版社,2002.2
[9]张海藩,李劲,谢兆阳.SQLServer2000数据库设计与系统管理[M].北京:
清华大学出版社,2000.9
[10]刘禾,蔡锋.Web数据库假设技巧[M].北京:
科技技术出版社,1999.4
[11]徐建波.Internet与Web设计教程[M].北京:
中国矿业大学出版社,2000.12
[12]于书举,许向众.数据库设计与开发教程[M].北京:
电子工业出版社,2003.11
[13]安海忠,李文斌,林旭新.商业网站建设与管理[M].北京:
人民交通出版社,2006.8
[14]T.UmedaandS.Hagiwara.web-baseddatabaseforEPRcentersinsemiconductors[J].BPhysicaB:
CondensedMatter,3(7),249-252,2006.3
[15]Yih-LingHedley,MuhammadYounas.Sampling,informationextractionandsummarisationofHiddenWebdatabases[J].Data&KnowledgeEngineering,InPress,UncorrectedProof,Availableonline10March2006.2
五.课程设计总结与体会:
在这次的课程设计过程中,我们学到的不仅是知识,我们还认识到许多事情。
这次设计使我的编程水平提高了一大步,使我充分的认识到合作的可贵。
由于这次设计主要涉及到数据结构中的链表结构,我们学到了学到了不少关于数据链表的知识,对链表的操作有了进一步的了解。
这次设计对我的综合能力是一次很好的锻炼,但是我必须承认自己的能力和知识还很肤浅。
所以今后我的学习道路还是很漫长的。
最后,在这里由于我们水平有限,加之时间短暂,故虚拟校园系统中还有许多不足之处,请老师批评指正,我会在以后的制作中不断改进,不断完善。
六.致谢:
本人在此向所有关心我们的及帮助我们的老师和同学们致以最真诚的感谢。
在本次毕业设计中,我从指导老师--------朱老师,身上学到了很多东西。
他认真负责的工作态度,严谨的治学精神和深厚的理论水平都使我收益匪浅。
他无论在理论上还是在实践中,都给与我们很大的帮助,使我们得到很大的提高,这对于我们以后的工作和学习都有一种巨大的帮助,在此感谢她耐心的辅导。
总之,我们有了这么一个机会来检验我们自己的学习成果及学习能力。
在朱老师的指点下,我们设计虚拟校园系统的设计就清楚了很多,并最终顺利的设计好了。
附录(源代码):
**************************【以下为类的定义】********************************
#include
#include
usingnamespacestd;
constintMaxSize=18;
constintINFINITY=65535;//最大值无穷
classdirection;
template
template
classVertexNode//定义头结点
{
friendclassMGraph
public:
intvex;//顶点名称
Tvexname;//顶点名称
Tvexinf;//顶点信息
directiondir;//存放顶点方位信息的direction类的dir。
};
classdirection
{
public:
intln;//存放在方向图中的横坐标,表示东西
intcol;//存放在方向图中的纵坐标,表示南北
};
template
classMGraph//定义无向图的邻接矩阵
{
public:
MGraph();
//构造函数,初始化具有n个顶点的图
voidprintvexname();//显示所有景点及景点代号
voidprintvexinf(inti);//显示代号为i景点的名称及信息
voidprintroad(inti,intj);//显示景点i~j的最短路径方案信息
voidprintdir(inti,intj);//显示景点i到j的方向信息,如“向东100m,向南200m”
VertexNode
intvertexNum,arcNum;//图的顶点数和边数
voidRoot(intp,intq);//递归寻找pq间的最短路径
intPath[MaxSize][MaxSize],Dist[MaxSize][MaxSize];//创建Path和Dist分别存放两点间最短路径的前驱节点,两点间最短路径长度
intLine[MaxSize];//Line存放路径
intkkk;//Line[]数组的标记
private:
Tvertex[MaxSize];//存放图中顶点的数组
intarc[MaxSize][MaxSize];//存放图中边的数组
};
*************************【以下为类的实现即类函数的定义】***********************************
template
MGraph
:
MGraph()//a[]为景点代号,b[]为景点名称,c[]为景点信息,d[]为景点方位信息的横坐标,e[]为景点方位信息的纵坐标
//s[]为存放景点邻接矩阵信息的一维数组,根据其对称性可以用公式赋值给二维数组arc[][]
{
ints[]={0,
1,0,
0,2,0,
0,0,2,0,
0,0,2,3,0,
0,0,0,4,2,0,
0,0,0,0,2,3,0,
0,0,0,0,2,3,1,0,
0,0,2,0,2,0,0,2,0,
4,0,2,0,0,0,0,0,1,0,
0,0,0,0,0,0,0,0,0,2,0,
1,0,0,0,0,0,0,0,0,0,2,0,
0,0,0,0,0,0,0,0,0,3,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,2,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,
0,0,0,0,0,0,0,0,0,0,0,0,3,0,0,2,0,
0,0,0,0,0,0,0,0,0,0,0,0,4,4,0,0,2,0};
inta[]={0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17};
char*b[]={"南门","实验楼","南图","大活","睿思楼","大礼堂",
"南4教","知行楼","国交楼","南3教","南2教","南1教",
"北图","北3教","北4教","北2教","北1教","北门"};
char*c[]={"南校区正门","物理实验楼","南校区图书馆","大学生活动中心",
"教师办公楼、医务室及留学生公寓","大礼堂,用于举办各种文艺演出","南校区第4教学楼","实习基地,计算机房等",
"国际交流中心,教职工餐厅","南校区第3教学楼","南校区第2教学楼","南校区第1教学楼",
"北校区图书馆","北校区第3教学楼","北校区第4教学楼","北校区第2教学楼",
"北校区第1教学楼","北校区正门"};
intd[]={8,6,4,4,1,0,0,1,3,4,6,8,4,3,2,3,5,8};
inte[]={8,8,8,10,8,10,7,6,6,6,6,6,3,1,0,0,0,2};
inti,j;
vertexNum=18;
arcNum=30;
for(i=0;i { adjlist[i].vex=a[i]; adjlist[i].vexname=b[i]; adjlist[i].vexinf=c[i]; adjlist[i].dir.ln=d[i]; adjlist[i].dir.col=e[i]; } for(i=0;i for(j=0;j arc[i][j]=arc[j][i]=s[(i*(i+1))/2+j];//根据s[]的对称性,将一维数组中的数据赋给二维数组arc[][] } template voidMGraph : printvexname() { inti; for(i=0;i cout< } template voidMGraph : printvexinf(inti) { cout< "< } template voidMGraph : printdir(inti,intj) { intdx,nb;//临时存放i与j之间的南北东西关系j在i的哪边? ? dx=adjlist[j].dir.col-adjlist[i].dir.col; nb=adjlist[j].dir.ln-adjlist[i].dir.ln; if(dx>0)//即j在i的东边 cout<<"向东"< else cout<<"向西"< if(nb>0)//即j在i的南边 cout<<"向南"< else cout<<"向北"< } template voidMGraph : Root(intp,intq) { if(Path[p][q]>0) { Root(p,Path[p][q]); Root(Path[p][q],q); } else { Line[kkk]=q; kkk++; } } template voidMGraph : printroad(inti,intj) { intp,q,m,k,item1,item2; for(p=0;p for(q=0;q Dist[p][q]=arc[p][q];//邻接矩阵赋值 for(k=0;k for(p=0;p if(Dist[p][k]>0) for(q=0;q if(Dist[k][q]>0) if(((Dist[p][q]>Dist[p][k]+Dist[k][q])||(Dist[p][q]==0))&&(p! =q)) { Dist[p][q]=Dist[p][k]+Dist[k][q]; Path[p][q]=k; } cout<<"\n=====================================================\n"; cout<<"从"< "< cout< kkk=2; Root(i,j); item2=Line[2]; cout<<"-->"; printdir(i,item2); cout<<"-->"< for(m=3;m<=kkk-1;m++) { item1=Line[m]; cout<<"-->"; printdir(item1-1,item1); cout<<"-->"< } cout< cout<<"\n=====================================================\n"; } *****************************【以下为主函数】************************************** intfuncchoice()//系统功能选择页面 { intchoice; cout<<"=============================================================="< cout<<"欢迎进入兰州海洋虚拟大学校园平台"< cout<<"1--显示校园所有建筑物信息"< cout<<"2--查询校园建筑物信息"< cout<<"3--问路查询系统"< cout<<"4--退出校园资讯平台"< cout<<"=============================================================="< cout<<"请输入要选择的功能号: "; cin>>choice; returnchoice; } voidmain() { MGraph intfuncchoice(); intfc; while (1) { fc=funcchoice(); if(fc==1) { inti; for(i=0;i mg.printvexinf(i); } elseif(fc==2) { inti; mg.printvexname(); cout< "; cin>>i; mg.printvexinf(i); } elseif(fc==3) { inti,j; mg.printvexname(); cout<<"请输入两景点代号(我们将把最短路线反馈予您): "; cin>>i>>j; mg.printroad(i,j); } elseif(fc==4) break; else cout<<"输入有误,请重新输入! "< }
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 虚拟 校园 系统 设计 说明书
![提示](https://static.bdocx.com/images/bang_tan.gif)