ImageVerifierCode 换一换
格式:DOCX , 页数:23 ,大小:273.90KB ,
资源ID:6032114      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/6032114.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(胡鹏《数据结构》课程方案报告.docx)为本站会员(b****6)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

胡鹏《数据结构》课程方案报告.docx

1、胡鹏数据结构课程方案报告数据结构课程设计报告找到v在图G中的位置,即v在一维数组vexs中的序号i,则二维数组arcs中第i行上第一个adj域的值为“1”的分量所在列号j,便为v的第一个临界点在图G中的位置。通知,下一个邻接点在图G中的位置便为j列之后第一个adj的值为“1”的分量所在列号。2.3系统功能模块设计我设计有以下几个模块:(1) 身份验证用户名和密码验证)(2) 校园导航系统的主界面输出;(3) 构造无向图采用数组表示法 char Menu( / 主菜单(2 char SearchMenu( / 查询子菜单(3 void search( / 查询景点信息(4 void Create

2、UDN / 采用数组 void introduce( / 介绍函数(6 void pingmu( / 屏幕输出函数(7 void ShortestPath / 迪杰斯特拉算法最短路径函数 (8 void output / 输出函数3.3 函数主要调用关系图 图3-2 主要函数调用关系图4详细设计4.1数据类型定义(1 整型类型: adj。 n。 PNUMNUM。 DNUM。 i=0,a,j。 i。 v0,v1,i。flag。 i,j。 v,w,i,t。 a,b,c,d,q=0。 finalNUM。(2 字符串类型:name20。 c。 ck。 secret20。 sight。 descript

3、ion。 info。4.2各个模块的程序流程图 图4-1 查询模块流程图图4-2 迪杰斯特拉算法流程4.3关键代码分析说明void CreateUDN(int v,int a / 采用数组邻接矩阵)表示法,构造无向图G。 int i,j。 G.vexnum=v。 / 初始化结构中的景点数! ! G.arcnum=a。/ 初始化结构中的边数! for(i=1。i G.vexi.number=i。 / 初始化每一个景点的编号 / 初始化每一个景点名及其景点描述 G.vex0.sight=学校简介。 G.vex1.sight=校大门。 G.vex2.sight=三号楼学楼。 G.vex3.sight

4、=一号教案楼。 G.vex4.sight=行政楼。 G.vex5.sight=实验楼。 G.vex6.sight=伯苓广场。 G.vex7.sight=秀英图书馆。 G.vex8.sight=艺术楼。 G.vex9.sight=一号食堂。 G.vex10.sight=操场。 G.vex11.sight=西区宿舍楼。 G.vex12.sight=二号食堂。 G.vex13.sight=篮球场。 G.vex14.sight=力功体育馆。 G.vex15.sight=东区宿舍楼。 / 这里把所有的边假定为32767(232次方,含义是这两个景点之间是不可到达 。 for(i=1。i for(j=1。

5、j G.arcsij.adj=Max。G.arcsij.info=NULL。 /下边是可直接到达的景点间的距离,由于两个景点间距离是互相的/ ,所以要对图中对称的边同时赋值。 G.arcs12.adj=G.arcs21.adj=200。 G.arcs13.adj=G.arcs31.adj=200。 G.arcs110.adj=G.arcs101.adj=1000。 G.arcs113.adj=G.arcs131.adj=1600。 G.arcs23.adj=G.arcs32.adj=400。 G.arcs26.adj=G.arcs62.adj=100。 G.arcs34.adj=G.arcs4

6、3.adj=100。 G.arcs37.adj=G.arcs73.adj=200。 G.arcs47.adj=G.arcs74.adj=300。 G.arcs56.adj=G.arcs65.adj=60。 G.arcs67.adj=G.arcs76.adj=200。 G.arcs68.adj=G.arcs86.adj=100。 G.arcs710.adj=G.arcs107.adj=300。 G.arcs711.adj=G.arcs117.adj=200。 G.arcs810.adj=G.arcs108.adj=200。 G.arcs910.adj=G.arcs109.adj=100。 G.a

7、rcs912.adj=G.arcs129.adj=200。 G.arcs1011.adj=G.arcs1110.adj=100。 G.arcs1013.adj=G.arcs1310.adj=600。 G.arcs1114.adj=G.arcs1411.adj=200。 G.arcs1213.adj=G.arcs1312.adj=100。 G.arcs1314.adj=G.arcs1413.adj=100。 G.arcs1415.adj=G.arcs1514.adj=100。该模块是对图的建立及使用邻接矩阵存储顶点信息以及权值,而邻接矩阵特点是:邻接矩阵来表示一个具有n个顶点的有向图时需要n2个

8、单元来存储邻接矩阵;对有n个顶点的无向图则只存入上=n(n-1/2个单元。5调试分析和测试结果(1) 先是进入身份验证界面,如图所示5-1图5-1 身份验证界面(2) 验证成功后进入副界面,如图所示5-2图5-2 身份验证成功界面(3) 输入数字2,进入万科大导航系统主界面,如图所示5-3图5-3 万科大导航系统主界面(4) 输入数字1,进入万科大学校简介,如图所示5-4图5-4 万科大学校简介界面(5) 退出ENTER),输入数字2,进入学校平面展示,如图所示5-5图5-5 学校平面展示界面(6) 退出ENTER),输入数字3,进入景点展示界面,如图所示5-6图5-6 景点展示界面(7) 退

9、出ENTER),输入数字4,进入景点查询界面,如图所示5-7图5-7 景点查询界面(8) 输入数字1,进入按景点编号查询,如图所示5-8图5-8 景点编号查询(9) 输入1-15任何数字查看景点介绍,如图所示5-9图5-9 查看景点介绍界面数字)(10) 按回车键返回,输入数字2进入按景点名称进行查询,如图所示5-10图5-10 景点名称进行查询界面(11) 按回车键返回到主界面,输入数字5进入计算最短路径算法查询,如图所示5-11图5-11 最短路径算法查询界面6心得体会通过此次设计,明白了很多。首先要从设计的思路入手,思路决定出路,一个好的算法可以使工作量简化达到事半功倍的目的。平时生活更

10、应该留心观察,多去想,多去做,好的程序是从历练中做出来的。其次,应该多去交流,去查阅资料,一个程序的产生不是那么容易的,更应该知难而进,积极进取。参考文献至少两个)1数据结构C语言版)严蔚敏 吴伟民 编2C语言程序设计教程杨路明 编3java开发实战经典李兴华 编4c语言程序设计第四版)谭浩强 编附:源程序可运行无误的代码)/-/校园导航系统/校园导航系统包括:学校简介,场所信息,计算路径/所使用的文件:Campus Navigation.cpp , 用户信息.text/程序编写人员:胡 鹏/编写程序时间:2018年10月30日 20:56:51/修改程序时间:2018年11月30日 14:3

11、8:32/代码规范时间:2018年12月10日 16:38:55/-/预处理命令#include#include /使用system函数#include#includevoid insert(。#define N 10int n。#define Max 32767#define NUM 16typedef struct ArcCell int adj。 / 相邻接的景点之间的路程 char *info。ArcCell。 / 定义边的类型 typedef struct VertexType int number。 / 景点编号 char *sight。 / 景点名称 char *descript

12、ion。 / 景点描述 VertexType。 / 定义顶点的类型 typedef struct VertexType vexNUM。 / 图中的顶点,即为景点 ArcCell arcsNUMNUM。 / 图中的边,即为景点间的距离 int vexnum,arcnum。 / 顶点数,边数 MGraph。 / 定义图的类型 MGraph G。 / 把图定义为全局变量 int PNUMNUM。 /long int DNUM。 / 辅助变量存储最短路径长度 void CreateUDN(int v,int a。 / 创建图的函数 void pingmu(。 /屏幕输出函数void introduce

13、(。/输入介绍内容,但不输出void ShortestPath(int num。 /最短路径函数void output(int sight1,int sight2。 /输出函数char Menu(。 / 主菜单 void search(。 / 查询景点信息 char SearchMenu(。 / 查询子菜单 void NextValue(int。 void display(。 / 显示遍历结果 void show(。/显示校园平面图void mainn(。/-初始系统-struct student char name20。 char secret20。 。struct student stuN

14、。void pf( printf(nntt*信息工程与科学系数据结构课程设计*。 printf(nnntt -。 printf(n tt |t 名称: 万科大校园导航系统t|。printf(n tt |t 姓名: 胡鹏 t|。printf(n tt |t 班级: 1101网工 t|。printf(n tt |t 指导老师: 方瑞英 t|。 printf(n tt |t 作者: 万科大校园 t|。printf(n tt -。/t表示的是向后空出8个空格,可以使自己输出字符更规范。/-身份验证-void main(/主函数 char s210,s310,s410,s510,s610,s110,s7

15、10=0。int i=0,a,j。 FILE *fp。/定义的fp是指向FILE类型结构体的指针。 可以使他指向某个文件的结构体变量/,从而通过该结构体变量中的文件信息能够访问该文件。if(fp=fopen(用户信息.txt,r=NULL/“r”为输出打开一个文本文档 printf(找不到 用户信息.txt文件!n。system(pause。 /从程序里调用“pause”命令。 exit(0。 else fscanf(fp,t%dn,&n。/fscanf(文件指针,格式字符串,输入文件表列 for(i=0。i fscanf(fp,t%st%sn,stui.name,stui.secret。 /

16、 从一个流中执行格式化输入,fscanf遇到空格和换行时结束,注意空格时也结束。 /fscanf(文件指针,格式字符串,输入列表。 fclose(fp。 printf(nnnnnnnntt保存在用户信息.txt文件中的所有信息已经读入程序中!nnttt。 system(pause。 system(cls。 for(i=0。i pf(。 printf(nntt 用户登陆。 printf(请输入用户名,你还有%d次机会。nttt,3-i。 gets(s3。 if(!strcmp(s3,s7 /strcmp比较两个字符串的大小 printf(用户名不能空格,谢谢!。 printf(用户名不正确,请从

17、新输入。n。 system(pause。/从程序里调用“pause”命令。system(cls。/从程序里调用“clear”命令。 if(i=2 printf(nnttt用户名不正确,按任意键退出。nnnttt。 exit(0。 continue。 for(j=0。j if(!strcmp(stuj.name,s3 printf(用户名正确n。strcpy(s1,stuj.name。strcpy(s2,stuj.secret。system(cls。/从程序里调用“clear”命令。 break。 if(!strcmp(s1,s3 break。 printf(用户名不正确,请从新输入。n。 sy

18、stem(pause。/从程序里调用“pause”命令。 if(i=2 printf(用户名和密码不匹配,按任意键退出。n。 system(pause。/从程序里调用“pause”命令。 exit(0。 system(cls。/从程序里调用“clear”命令。 for(i=0。i pf(。 printf(nnt 用户登陆。 printf(nn用户名正确n。 printf(n请输入用户密码,你还有%d次机会。n,3-i。 printf(密码正确,登陆成功时,系统将自动跳转n。 gets(s4。 if(!strcmp(s2,s4 system(cls。/从程序里调用“clear”命令。 break

19、。 Else if(i=2 system(cls。/从程序里调用“clear”命令。printf(nnnttt用户名和密码不匹配,按任意键退出。nnnttt。 exit(0。 else system(cls。/从程序里调用“clear”命令。 printf(输入错误,请从新输入:n。 for(i=0。i+ pf(。 printf(ntt*n。 printf(tt * 1.退出系统 * n。printf(tt * * n。 printf(tt * 2.进入万科大导航系统 * n。 printf(tt * * n。 printf(tt * 3.新增用户信息 * n。 printf(tt * * n

20、。 printf(tt * 0.修改密码 * n。printf(tt *n。 printf(请选择功能n。 scanf(%d,&a。 if(a=1 printf(按任意键退出n。 break。 getchar(。 if(a=2 mainn(。 if(a=3 insert(。 if(a=0 for(i=0。i system(cls。/从程序里调用“clear”命令。 pf(。 printf(nn请输入原密码n。 printf(两次不正确,系统将自动返回,你还有%d次机会。n,3-i-1。 gets(s3。 if(!strcmp(s2,s3 for(i=0。i+ printf(n请输入新密码n。g

21、ets(s6。printf(n请在此输入新密码n。gets(s5。 if(!strcmp(s5,s6 system(cls。/从程序里调用“clear”命令。 printf(新密码为: %sn,s5。 strcpy(s2,s5。 strcpy(stuj.secret, s2。 if(fp=fopen(用户信息.txt,w=NULL printf(n保存失败!。 exit(0。 else for(i=0。i fprintf(fp,t%st%sn,stui.name,stui.secret。 fclose(fp。 printf(新用户信息已保存在用户信息.txt中!n。 system(pause。

22、 /从程序里调用“pause”命令。 system(cls。 /从程序里调用“clear”命令。 break。 else system(cls。/从程序里调用“clear”命令。 printf(nn两次输入密码不一样,密码修改失败n。 break。 break。 else printf(原密码输入错误n。printf(请珍惜机会,从新输入。system(pause。/从程序里调用“pause”命令。system(cls。/从程序里调用“clear”命令。 if(i=2 exit(0。 /已经是第三次了,哈哈! void insert( int i。 FILE *fp。 n+。 printf(ntt输入新插入用户信息n。 printf(n输入新用户名:。 scanf(%s,stun.name。 fflush(stdin。 /清空输入缓冲区,通常是为了确保不影响后面的数据读取 printf(n输入新用户密码:。

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1