实验报告:图
图像处理实验报告
![图像处理实验报告](https://img.taocdn.com/s3/m/af56e540df80d4d8d15abe23482fb4daa58d1d19.png)
图像处理实验报告图像处理实验报告一、引言图像处理是计算机科学与工程领域的一个重要研究方向,它涉及到对数字图像进行获取、处理、分析和显示等一系列操作。
本实验旨在通过使用图像处理技术,对一幅给定的数字图像进行处理和分析,以探索图像处理的原理和应用。
二、实验目的本实验有以下几个目的:1. 理解图像处理的基本概念和原理;2. 掌握图像处理的常用技术和方法;3. 熟悉图像处理软件的使用。
三、实验步骤1. 图像获取在本实验中,我们选择了一张风景图作为实验对象。
该图像是通过数码相机拍摄得到的,保存在计算机中的文件格式为JPEG。
我们使用图像处理软件将该图像导入到程序中,以便进行后续的处理和分析。
2. 图像预处理在进行图像处理之前,我们需要对图像进行预处理。
预处理的目的是去除图像中的噪声、平滑图像的边缘等。
我们使用了均值滤波和中值滤波两种常用的图像平滑方法。
通过对比两种方法的效果,我们可以选择合适的方法来进行图像预处理。
3. 图像增强图像增强是指通过一系列的操作,使得图像在视觉上更加鲜明、清晰、易于观察。
在本实验中,我们使用了直方图均衡化和灰度拉伸两种图像增强方法。
直方图均衡化通过对图像的像素值进行变换,使得图像的直方图更加均匀,从而增强图像的对比度。
灰度拉伸则是通过对图像的像素值进行线性变换,将图像的灰度范围拉伸到更广的范围内,从而增强图像的细节。
4. 图像分割图像分割是将图像分成若干个互不重叠的区域,每个区域具有一定的意义和特征。
在本实验中,我们使用了阈值分割和边缘检测两种图像分割方法。
阈值分割是指通过设置一个合适的阈值,将图像中的像素分为两个类别。
边缘检测则是通过检测图像中的边缘信息,将图像分割为不同的区域。
5. 图像特征提取图像特征提取是指从图像中提取出具有一定意义和特征的信息。
在本实验中,我们选择了纹理特征和颜色特征两种常用的图像特征提取方法。
纹理特征提取通过对图像的纹理进行分析,提取出图像的纹理特征。
类图、对象图实验报告
![类图、对象图实验报告](https://img.taocdn.com/s3/m/046b12ff910ef12d2af9e7ee.png)
UML建模课程实验三、UML类图、对象图模型的设计班级:信息0702 组别:指导老师:徐凯波姓名:王姗学号:2007030331205一、实验要求:掌握利用UML建模工具建立类图和对象图的方法。
二、实验内容:利用UML建模工具设计类图和对象图三、实验环境:Windows 2000 Professional以上环境、Rational Rose2003、Sybase Power Designer 10四、操作步骤:五、遇到的问题和解决方法:类图是所有图中比较好画的一种图,就是将角色、系统它们所具有的属性和活动输入到软件中去,我的类图中角色有管理员、学生,管理员的属性有:管理学的账号、管理员的姓名、管理员的性别、管理员的年龄,他所参与的活动有添加课程信息、删除课程信息、修改课程信息、查询课程信息、登录系统、添加学生信息、删除学生信息、修改学生信息、查询学生信息、查询学生信息;学生的属性有:学生账户、学生姓名、学生性别、学生年龄,他所参与的活动有:查询课程信息、选课、查询个人选课信息,登录系统。
系统的包括:学生信息维护系统、课程管理系统、选课管理系统,学生信息维护系统的属性有:学生的账号、姓名、性别、年龄、管理员的账号;选课管理系统:学生账号、课程编号、课程名称、课程地点、课程时间、课程学分、课程学时;课程管理系统:课程编号、课程名称、课程地点、课程时间、课程学分、课程学时。
在画整个类图的过程中,我没有遇到太多的问题。
六、实验心得和体会:在老师的辅导下,我经过前一阶段的练习,基本掌握了UML的要领,类图我基本上没有太费时间,只是想好属性和动作,还有就是个角色之间的关系,类图的难点是角色与角色之间的关系,究竟是一对多、一对一、多对多。
确定好角色与角色的关系,类图就很容易完成了。
多普勒效应综合实验报告及数据处理图
![多普勒效应综合实验报告及数据处理图](https://img.taocdn.com/s3/m/516c11f3a58da0116c174969.png)
多普勒效应综合实验(附数据处理图)(注:由于上传后文库中数据图看不清楚,须下载后才能看清楚) 当波源和接收器之间有相对运动时,接收器接收到的波的频率与波源发出的频率不同的现象称为多普勒效应。
多普勒效应在科学研究,工程技术,交通管理,医疗诊断等各方面都有十分广泛的应用。
例如:原子,分子和离子由于热运动使其发射和吸收的光谱线变宽,称为多普勒增宽,在天体物理和受控热核聚变实验装置中,光谱线的多普勒增宽已成为一种分析恒星大气及等离子体物理状态的重要测量和诊断手段。
基于多普勒效应原理的雷达系统已广泛应用于导弹,卫星,车辆等运动目标速度的监测。
在医学上利用超声波的多普勒效应来检查人体内脏的活动情况,血液的流速等。
电磁波(光波)与声波(超声波)的多普勒效应原理是一致的。
本实验既可研究超声波的多普勒效应,又可利用多普勒效应将超声探头作为运动传感器,研究物体的运动状态。
【实验目的】1、测量超声接收器运动速度与接收频率之间的关系,验证多普勒效应,并由f-V关系直线的斜率求声速。
2、利用多普勒效应测量物体运动过程中多个时间点的速度,查看V-t关系曲线,或调阅有关测量数据,即可得出物体在运动过程中的速度变化情况,可研究:①匀加速直线运动,测量力、质量与加速度之间的关系,验证牛顿第二定律。
②自由落体运动,并由V-t关系直线的斜率求重力加速度。
③简谐振动,可测量简谐振动的周期等参数,并与理论值比较。
④其它变速直线运动。
【实验原理】1、超声的多普勒效应根据声波的多普勒效应公式,当声源与接收器之间有相对运动时,接收器接收到的频率f为:f = f0(u+V1cosα1)/(u–V2cosα2)(1)式中f0为声源发射频率,u为声速,V1为接收器运动速率,α1为声源与接收器连线与接收器运动方向之间的夹角,V2为声源运动速率,α2为声源与接收器连线与声源运动方向之间的夹角。
若声源保持不动,运动物体上的接收器沿声源与接收器连线方向以速度V运动,则从(1)式可得接收器接收到的频率应为:f = f0(1+V/u)(2)当接收器向着声源运动时,V取正,反之取负。
大物实验报告 克拉尼图形
![大物实验报告 克拉尼图形](https://img.taocdn.com/s3/m/536388b30912a21614792990.png)
二维振动与模式-薄板 对于圆形薄板 厚为 h的圆形薄板振动挠度的波方程为
二维圆形薄板振动模式激发 振动模式满足
中间支撑 边缘自由
三.实验主要步骤或操作要点
1、研究薄膜的振动模式 a)选择弹性化学实验防护薄手套的局部,将其拉伸绷紧于一个圆形水杯口,
注意使得膜各方向张力均匀一致,用绳子将膜缠紧固定,形成小定音鼓。 b)用笔杆敲击膜面使其发出响声,由 phyphox软件记录下波形以及其频谱,
2
5.520 7.016 8.417 9.761
3
8.654 10.173 11.619 13.015
4
11.792 13.324 14.796 16.223
模态(m,n)命名在图上部中给 出,以ωa/c=2.405时的频率作 比较在图下部给出的数值 bmn 以表示相对频率。要将这些转 换为实际频率 fmn,bmn要乘以 (2.405/2na)√T/σ,其中 a为膜 半径。
物理实验报告
哈工大物理实验中心
班 号 33006 学 号 1190501917 姓 名 刘福田
教师签字
实验日期 2020.4.18
预习成绩
学生自评分
(注:为方便登记实验成绩,班号填写后 5位,请大家合作。)
总成绩
实验 (二 ) 克拉尼图形
一.实验目的
1、模拟克拉尼实验,观察克拉尼图形 2、理解二维薄膜(板)振动模式
哈尔滨工业大学
实验现象观察与原始数据记录
物理实验中心
学生 姓 名
签字
学号
日期
教师
签字
姓名
·7·
图 4-2 图 4-3
对应频率(Hz) 700
650 490
图 4-4
分光计的调节实验报告
![分光计的调节实验报告](https://img.taocdn.com/s3/m/8ee2499fe53a580217fcfe1b.png)
分光计的调节实验报告篇一:大学物理实验分光计实验报告分光计法测光栅常数3.7 分光计的调节及光栅常数的测定分光计又称光学测角仪,是一种分光测角光学实验仪器。
它常用来测量折射率、色散率、光波波长、光栅常数和观测光谱等。
分光计是一种具有代表性的基本光学仪器,学好分光计的调整和使用,可为今后使用其他精密光学仪器打下良好基础。
3.7.1 分光计的调节实验目的了解分光计的结构和基本原理,学习调整和使用方法。
分光计的结构和原理分光计主要由五个部分构成:底座、平行光管、自准直望远镜、载物台和读数装置。
不同型号分光计的光学原理基本相同。
JJY型分光计如图3-7-1所示。
图3-7-1 JJY型分光计1.狭缝装置 2.狭缝装置锁紧螺钉 3.平行光管 4.元件夹 5.望远镜 6.目镜锁紧螺钉 7.阿贝式自准直目镜 8.狭缝宽度调节旋钮9.平行光管光轴高低调节螺钉 10.平行光管光轴水平调节螺钉11.游标盘止动螺钉 12.游标盘微调螺钉 13.载物台调平螺钉(3只) 14.度盘 15.游标盘 16.度盘止动螺钉 17.底座 18.望远镜止动螺钉 19.载物台止动螺钉 20.望远镜微调螺钉 21.望远镜光轴水平调节螺钉 22.望远镜光轴高低调节螺钉 23.目镜视度调节手轮1.底座分光计底座(17)中心固定有一中心轴,望远镜、度盘和游标盘套在中心轴上,可绕中心轴旋转。
2.平行光管平行光管安装在固定立柱上,它的作用是产生平行光。
平行光管由狭缝和透镜组成,如图3-7-2。
狭缝宽度可调(范围0.02~2mm),透镜与狭缝间距可以通过伸缩狭缝筒进行调节。
当狭缝位于透镜焦平面上时,由狭缝经过透镜出射的光为平行光。
图3-7-2 平行光管3.自准直望远镜阿贝式自准直望远镜安装在支臂上,支臂与转座固定在一起并套装在度盘上。
它用来观察和确定光线行进方向。
自准直望远镜由物镜、目镜、分划板等组成(如图3-7-3),三者间距可调。
其中,分划板上刻有“”形叉丝;分划板下方与一块45o全反射小棱镜的直角面相贴,直角面上涂有不透明薄膜,薄膜上划有一个“十”形透光的窗口,当小电珠光从管侧经另一直角面入射到棱镜上,即照亮“十”字窗口。
图的搜索与应用实验报告(附源码)(word文档良心出品)
![图的搜索与应用实验报告(附源码)(word文档良心出品)](https://img.taocdn.com/s3/m/40e5836752d380eb63946d00.png)
哈尔滨工业大学计算机科学与技术学院实验报告课程名称:数据结构与算法课程类型:必修实验项目名称:图的搜索与应用实验题目:图的深度和广度搜索与拓扑排序设计成绩报告成绩指导老师一、实验目的1.掌握图的邻接表的存储形式。
2.熟练掌握图的搜索策略,包括深度优先搜索与广度优先搜索算法。
3.掌握有向图的拓扑排序的方法。
二、实验要求及实验环境实验要求:1.以邻接表的形式存储图。
2.给出图的深度优先搜索算法与广度优先搜索算法。
3.应用搜索算法求出有向图的拓扑排序。
实验环境:寝室+机房+编程软件(NetBeans IDE 6.9.1)。
三、设计思想(本程序中的用到的所有数据类型的定义,主程序的流程图及各程序模块之间的调用关系)数据类型定义:template <class T>class Node {//定义边public:int adjvex;//定义顶点所对应的序号Node *next;//指向下一顶点的指针int weight;//边的权重};template <class T>class Vnode {public:T vertex;Node<T> *firstedge;};template <class T>class Algraph {public:Vnode<T> adjlist[Max];int n;int e;int mark[Max];int Indegree[Max];};template<class T>class Function {public://创建有向图邻接表void CreatNalgraph(Algraph<T>*G);//创建无向图邻接表void CreatAlgraph(Algraph<T> *G);//深度优先递归搜索void DFSM(Algraph<T>*G, int i);void DFS(Algraph<T>* G);//广度优先搜索void BFS(Algraph<T>* G);void BFSM(Algraph<T>* G, int i);//有向图的拓扑排序void Topsort(Algraph<T>*G);/得到某个顶点内容所对应的数组序号int Judge(Algraph<T>* G, T name); };主程序流程图:程序开始调用关系:主函数调用五个函数 CreatNalgraph(G)//创建有向图 DFS(G) //深度优先搜索 BFS(G) //广度优先搜索 Topsort(G) //有向图拓扑排序 CreatAlgraph(G) //创建无向图其中 CreatNalgraph(G) 调用Judge(Algraph<T>* G, T name)函数;DFS(G)调用DFSM(Algraph<T>* G , int i)函数;BFS(G) 调用BFSM(Algraph<T>* G, int k)函数;CreatAlgraph(G) 调选择图的类型无向图有向图深 度 优 先 搜 索广度优先搜索 深 度 优 先 搜 索 广度优先搜索拓 扑 排 序程序结束用Judge(Algraph<T>* G, T name)函数。
计算机网络实验报告-局域网设计图
![计算机网络实验报告-局域网设计图](https://img.taocdn.com/s3/m/4b731277bb4cf7ec4afed0f1.png)
switch (con fig-if)#exit计算机网络实验报告 局域网设计图:第一步:交换机的VLAN 配置 交换机1: 划分VLANswitch #con figure term inal !进入交换机全局配置模式switch (con fig)#vla n 1!switch #show vlan ! 查看 VLAN 划分情况 将接口分配到VLANswitch (con fig)#i nterface fastEthernet 0/1-21 ! 配置模式switch (con fig-if)#switch port access vla n 1 !计算机网络实验报告-局域网设计图switch (con fig-vla n)#n ame test1 ! 将 vlan 1 命名为test1r M 31A"创建vlan 1进入1~21的接口将1~21端口加入vlan操作步骤ji.'.ioooefl_______ 十一_ 甬“兀山?宾 口?氐1 !]_雯 汙 % 3EJ丿汇^轴I(config-if)#endswitch #show vlan !查看VLAN 的端口划分情况Switch (config)# interface fastethernet 0/21 Switch (config-if)# switchport mode trunk (config-if)#endswitch #show vlan ! 查看VLAN 的端口划分情况交换机 2:(config)#vlan 2 ! 创建 vlan 2(config)#vlan 2 ! 创建 vlan 2switch (config-vlan)#name test3!将 vlan 3 命名为 test3 switch(config-vlan)#end switch #show vlan ! 查看VLAN 划分情况 switch (config)#interface fastEthernet 0/1-11 ! 进入 1-11 的接口配置模式 switch (config-if)#switchport access vlan 2! 将 1-11 端口加入 vlan 2switch (config)#interface fastEthernet 0/11-21! 进入 11-21 的接口配置模式 switch (config-if)#switchport access vlan 3 ! 将 11-21 端口加入 vlan 3switch (config-if)#exit Switch (config)# interface fastethernet 0/11 Switch (config-if)# switchport mode trunk 〜配置 trunk 端口 switch〜配置trunk 端口 switchswitch #configure terminal !进入交换机全局配置模式 switchswitch (config-vlan)#name test2!将 vlan 2 命名为 test2 switch第二步: 路由器配置路由器1:在路由器Router1 上配置快速以太网口的IP 地址Router1#configure terminalRouter1(config)#interface FastEthernet 0/0 ! 进入以太网0 口配置状态或Router1(config)#interface FastEthernet 1/0Router1(config-if)#ip address 210.100.10.33 255.255.255.224 ! 为以太网0 口配置地址Router1(config-if)#no shutdown ! 打开以太网0 口Router1(config-if)#end在路由器Routerl上配置广域网口的IP地址和时钟频率(假设Routerl为DCE端)Router1#conRouter1(config)#interface serial 2/0 ! 进入广域网0 口配置状态或Router1(config)#interface serial 1/2Router1(config-if)#ip address 210.100.10.65 255.255.255.0 ! 为广域网0口配置地址Router1(config-if)#clock rate 64000 ! DCE 端需设置端口时钟频率Router1(config-if)#no shutdown ! 打开广域网0 口Router1(config-if)#end为Router1 添加静态路由Router1#conRouter1(config)#ip route 210.100.10.96 255.255.255.224 210.100.10.66Router1(config)#ip route 210.100.10.128 255.255.255.224210.100.10.66 ! 添加静态路由Router1(config)#endRouter1#show ip route ! 显示路由表路由器2在路由器2上配置接口F0的子接口Router (config)# interface fastethernet 1/0Router (config-if)# no ip address Router (config-if)# no shutdownRouter (config-if)# exitRouter (config)# interface fastethernet 1/0.2 〜进入子接口F0.2配置模式Router (config-subif)# encapsulation dotlq 2 〜封装802.1Q 并指定Vlan 号2Router (config-subif)# ip address 210.100.10.97 255.255.255.224 〜配置子接口F0.2IP 地址Router (config-subif)# exitRouter (config)# interface fastethernet 1/0.3 〜进入子接口F0.3 配置模式Router (config-subif)# encapsulation dotlq 3 〜封装802.1Q 并指定Vlan 号3Router (config-subif)# ip address 210.100.10.129 255.255.255.224配置子接口F0.3IP 地址Router (config-subif)# end在路由器 2 上配置广域网口的IP 地址Router2#conf或Router2(config)#interface Router2(config)#interface serial 2/0 serial1/2 Router2(config-if)#ip address210.100.10.66255.255.255.224Router2(config-if)#no shutdown Router2(config-if)#end为路由器 2 添加静态路由Router2#conConfiguring from terminal, memory, or network [terminal]?Enter configuration commands, one per line. End with CNTL/Z.Router2(config)#ip route 210.100.10.32 255.255.255.224 210.100.10.65 Router2(config)#endRouter2#show ip route。
图像处理实验报告
![图像处理实验报告](https://img.taocdn.com/s3/m/a947ca6103d8ce2f01662334.png)
大学新闻与传播学院实验教学中心实验报告实验名称图像处理指导教师洪杰文华滢年级08 学号23 成绩一、预习部分1、实验目的2、实验基本原理3、主要仪器设备(含必要的元器件、工具)1、实验目的:(1)熟悉和掌握数字图像的基本概念和技术指标,掌握色彩模式、图像分辨率、图像深度、图像文件格式与图像的显示效果、文件容量的关系。
(2)了解和掌握数字图像压缩的概念,观察不同的压缩比对图像的影响。
(3)了解和掌握图像中色彩的确定及选取方法,掌握前景色和背景色的概念及调整方法,掌握色彩填充的基本概念及应用。
(4)了解和掌握图像处理软件Photoshop的基本功能和基本使用方法,熟练掌握图层与选择区的基本使用方法。
(5)通过创造性的构图和对布局及色彩等的巧妙处理,一幅好的图画可以将一个主题以含蓄而又深刻的方式予以提示,并往往具有比单纯的语言文字更强的表现力。
在掌握图像处理基本概念和Photoshop基本使用方法的基础上,对已有的数字图像做一些基本的创意设计和编辑处理。
2、实验基本原理:基于photoshop软件的图像处理。
3、主要仪器设备(含必要的元器件、工具):Adobe Photoshop二、实验操作部分1、实验操作过程2、实验数据、观察到的实验现象1、实验操作过程:1.图像的基本变换(1)自选一幅不小于400×400pixel的彩色数字图像。
在Photoshop中打开该图像,记录其技术参数:文件格式、文件容量,图像尺寸(pixel和cm)、分辨率、色彩模式等。
文件格式:JPEG 图像;文件容量:59.7kb;图像尺寸(pixel和cm):600×600pixel;分辨率:72像素/英寸;色彩模式:RGB模式。
(2)对该图像重采样,要求采样后的图像分辨率为150dpi,图像尺寸为300×300pixel。
色彩模式分别变换成灰度、Indexed和RGB模式,按BMP格式分别保存成不同名称的图像文件;重新打开并观察变换后的显示效果,并记录各个文件的容量。
图像的边缘检测实验报告
![图像的边缘检测实验报告](https://img.taocdn.com/s3/m/cdb350ab846a561252d380eb6294dd88d0d23d86.png)
图像的边缘检测实验报告
《图像的边缘检测实验报告》
图像的边缘检测是计算机视觉领域中的重要技术之一,它可以帮助我们识别图
像中物体的边缘和轮廓,从而实现图像分割、特征提取和目标识别等应用。
在
本次实验中,我们将对几种常用的边缘检测算法进行比较和分析,以评估它们
在不同场景下的性能和适用性。
首先,我们使用了Sobel算子进行边缘检测。
Sobel算子是一种基于梯度的边缘检测方法,它通过对图像进行卷积操作来寻找像素值变化最大的地方,从而找
到图像中的边缘。
实验结果显示,Sobel算子在一些简单场景下表现良好,但
在复杂背景和噪声干扰较大的情况下效果不佳。
接着,我们尝试了Canny边缘检测算法。
Canny算法是一种多阶段的边缘检测
方法,它通过对图像进行高斯滤波、计算梯度、非极大值抑制和双阈值处理等
步骤来检测图像中的边缘。
实验结果显示,Canny算法在复杂场景下表现出色,能够有效地抑制噪声并找到图像中的真实边缘。
最后,我们还尝试了Laplacian算子和Prewitt算子等其他边缘检测算法,并对
它们的性能进行了比较和分析。
实验结果显示,不同的边缘检测算法在不同场
景下表现出各自的优势和劣势,需要根据具体的应用需求来选择合适的算法。
总的来说,本次实验对图像的边缘检测算法进行了全面的比较和分析,为我们
进一步深入理解和应用这些算法提供了重要的参考和指导。
希望通过这些实验
结果,我们能够更好地利用边缘检测技术来解决实际的图像处理问题,为计算
机视觉领域的发展做出更大的贡献。
EDA实验报告含结果图
![EDA实验报告含结果图](https://img.taocdn.com/s3/m/05cb13e30740be1e640e9aae.png)
EDA电子课程实验报告专业:班级:姓名:学号:实验一四人表决器一实验目的1、熟悉Quartus II软件的使用。
2、熟悉EDA-IV实验箱。
3、熟悉EDA开发的基本流程。
二硬件需求1、RC-EDA-IV型实验箱一台;2、RC-EDA-IV型实验箱配套USB-Blaster下载器一个;3、PC机一台。
三实验原理所谓表决器就是对于一个行为,由多个人投票,如果同意的票数过半,就认为此行为可行;否则如果否决的票数过半,则认为此行为无效。
四人表决器顾名思义就是由四个人来投票,当同意的票数大于或者等于3人时,则认为同意;反之,当否决的票数大于或者等于2人时,则认为不同意。
实验中用4个拨挡开关来表示4个人,当对应的拨挡开关输入为‘1’时,表示此人同意;否则若拨挡开关输入为‘0’时,则表示此人反对。
表决的结果用一个LED表示,若表决的结果为同意,则LED被点亮;否则,如果表决的结果为反对,则LED不会被点亮。
四实验内容VHDL程序:library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_arith.all;use ieee.std_logic_unsigned.all;--------------------------------------------------------------------entity EXP3 isport(k1,K2,K3,K4 : in std_logic;ledag : out std_logic_vector(3 downto 0);m_Result : out std_logic);end EXP3;--------------------------------------------------------------------architecture behave of EXP3 issignal K_Num : std_logic_vector(2 downto 0); signal K1_Num,K2_Num: std_logic_vector(2 downto 0); signal K3_Num,K4_Num: std_logic_vector(2 downto 0);beginprocess(K1,K2,K3,K4)beginK1_Num<='0'&'0'&K1;K2_Num<='0'&'0'&K2;K3_Num<='0'&'0'&K3;K4_Num<='0'&'0'&K4;end process;process(K1_Num,K2_Num,K3_Num,K4_Num,)beginK_Num<=K1_Num+K2_Num+K3_Num+K4_Num;end process;process(K_Num) beginif(K_Num>2) thenm_Result<='1';elsem_Result<='0';end if;end process;end behave;实验电路实验二格雷码转换一实验目的1、了解格雷码变换的原理。
地图学实验报告
![地图学实验报告](https://img.taocdn.com/s3/m/d0bbafc2f605cc1755270722192e453610665bf6.png)
地图学实验报告第一部分:引言地图是人类历史上重要的发明之一,它不仅提供了空间信息,还是人们了解世界、探索未知的重要工具。
随着科技的不断进步,地图制作和应用也得到了极大发展。
为了更好地了解地图学的基本原理和方法,我们进行了一次地图学实验。
第二部分:实验目的我们的实验旨在通过实距测量,探索地图上的比例尺;通过地图解决实际问题,理解地图的应用价值;通过制作用地图进行路线规划,掌握地图绘制的基本步骤。
第三部分:实验方法在实验过程中,我们使用了以下方法:首先,我们选取一幅城市地图,测量地图上两个已知点之间的实际距离,并计算出地图上的比例尺。
接下来,我们选择了一个实际问题——寻找两个地点间最短的行车路线,并通过地图上的道路网络计算出最佳路线。
最后,我们选择了一个目的地,并制作了一幅地图,标注上主要的交通路线和必要的地标信息。
第四部分:实验结果与分析通过实际测量,我们发现地图上的比例尺为1:10000,即地图上的1厘米相当于现实世界中的100米。
在解决实际问题时,我们使用了地图上的道路网络,并计算出了最短路线的行车时间。
通过制作地图,我们整理了必要的交通路线和地标信息,使目的地的位置更加清晰明了。
第五部分:实验结论通过这次实验,我们对地图学有了更深入的认识。
地图的比例尺是非常重要的,可以在实际应用中导航和规划路线。
地图的道路网络也是节约时间和资源的重要工具。
同时,制作地图也需要准确和系统的信息整理和绘制技巧。
第六部分:实验心得这次地图学实验让我更加务实地认识到地图的实用性和重要性。
在日常生活中,我们经常使用地图来指引行进方向,但很少意识到地图背后的科学原理和制作工艺。
实验让我深入了解地图的比例尺、道路网络和绘制方法,让我对地图的使用有了更全面的理解。
第七部分:实验展望地图学作为一个极其广泛的学科,涉及的内容非常丰富。
希望在今后的学习中,能够更加深入地了解地图学的不同领域,例如地图投影、地形测量和地图符号等,为我们更好地应用地图提供更多的知识支持。
图的基本操作实验报告
![图的基本操作实验报告](https://img.taocdn.com/s3/m/fa06531d302b3169a45177232f60ddccdb38e643.png)
图的基本操作实验报告图的基本操作实验报告一、引言图是计算机科学中常用的数据结构之一,它由节点和边组成,用于表示事物之间的关系。
图的基本操作是对图进行增、删、改、查等操作,本实验旨在通过编程实现图的基本操作,加深对图的理解。
二、实验目的1. 理解图的基本概念和表示方法;2. 掌握图的基本操作,包括节点的插入、删除,边的添加、删除等;3. 运用图的基本操作解决实际问题。
三、实验方法本实验使用Python编程语言实现图的基本操作。
首先,定义图类,包括图的初始化、节点的插入、删除,边的添加、删除等方法。
然后,根据实际需求设计测试用例,验证图的基本操作的正确性。
四、实验过程1. 图的初始化在图类的初始化方法中,创建一个空的字典用于存储节点和边的信息。
节点用唯一的标识符表示,边用包含两个节点标识符的元组表示。
2. 节点的插入编写节点插入方法,接收节点标识符作为参数,将节点添加到图中。
在添加节点时,需要判断节点是否已存在于图中,如果存在则不进行插入操作。
3. 节点的删除编写节点删除方法,接收节点标识符作为参数,将节点从图中删除。
在删除节点时,需要同时删除与该节点相关的边。
4. 边的添加编写边添加方法,接收两个节点标识符作为参数,将边添加到图中。
在添加边时,需要判断节点是否存在于图中,如果不存在则先进行节点的插入操作。
5. 边的删除编写边删除方法,接收两个节点标识符作为参数,将边从图中删除。
在删除边时,需要判断边是否存在于图中。
6. 测试用例设计设计多个测试用例,包括插入节点、删除节点、添加边、删除边等操作,并验证操作的正确性。
七、实验结果经过多次测试,图的基本操作均能正常运行,符合预期结果。
通过图的基本操作,可以方便地对图进行增、删、改、查等操作,解决实际问题。
八、实验总结通过本次实验,我深入理解了图的基本概念和表示方法,并掌握了图的基本操作。
图作为一种重要的数据结构,在计算机科学中有着广泛的应用,例如社交网络分析、路线规划等领域。
时序图实验报告
![时序图实验报告](https://img.taocdn.com/s3/m/3d11cfa9162ded630b1c59eef8c75fbfc67d9448.png)
时序图实验报告时序图实验报告引言:时序图是一种用于描述系统中各个对象之间交互的图形工具,它能够清晰地展示对象之间的消息传递和时间顺序。
本实验旨在通过设计和实现一个简单的时序图,加深对时序图的理解,并掌握其使用方法。
实验过程:1. 设计时序图的目标系统:我们选择了一个简单的在线购物系统作为目标系统,该系统包括用户、购物车和商品三个对象。
2. 确定对象之间的交互关系:用户通过添加商品到购物车的方式进行购物,购物车负责管理用户选择的商品。
3. 绘制时序图:根据对象之间的交互关系,我们使用UML语法绘制了相应的时序图。
时序图中,用户首先发送“添加商品”消息给购物车,购物车接收到消息后将商品添加到购物车中,并返回“添加成功”消息给用户。
实验结果:通过实验,我们成功地绘制了一个简单的时序图,清晰地展示了用户和购物车之间的交互过程。
时序图不仅能够帮助我们理解系统的运行流程,还能够在系统设计和开发过程中起到指导作用。
实验心得:1. 时序图是一种非常有用的工具,能够帮助我们更好地理解系统的运行过程。
在实际开发中,时序图可以作为需求分析和系统设计的重要参考。
2. 绘制时序图需要清晰地理解对象之间的交互关系,因此在设计时序图之前,我们需要对系统进行充分的分析和思考。
3. 在绘制时序图时,要注意消息的传递顺序和时间顺序,确保图形能够准确地反映实际的交互过程。
4. 时序图可以用于不同层次的系统设计,从高层次的系统架构到具体的对象交互,都可以通过时序图进行描述和分析。
结论:通过本次实验,我们深入了解了时序图的使用方法和作用,掌握了时序图的绘制技巧。
时序图作为一种清晰、直观的图形工具,能够帮助我们更好地理解和设计系统,提高系统开发的效率和质量。
未来展望:在今后的学习和实践中,我们将进一步研究和应用时序图,探索其更广泛的应用领域。
同时,我们也将学习和掌握其他UML图形工具,以便更好地进行系统建模和设计。
通过不断地实践和学习,我们相信能够在软件开发领域取得更大的成就。
用例图实验报告
![用例图实验报告](https://img.taocdn.com/s3/m/5698143a0a1c59eef8c75fbfc77da26924c5965e.png)
用例图实验报告一、实验目的本次实验的主要目的是通过绘制和分析用例图,深入理解系统的功能需求和用户与系统之间的交互关系,为系统的设计和开发提供清晰、直观的指导。
二、实验环境1、操作系统:Windows 102、绘图工具:StarUML三、实验内容(一)用例图的概念和作用用例图(Use Case Diagram)是 UML(统一建模语言)中用于描述系统功能的一种图形化工具。
它从用户的角度出发,展示了系统提供的一系列功能(用例)以及不同用户(参与者)与这些用例之间的关系。
用例图的主要作用包括:1、帮助开发团队更好地理解系统的需求和功能,明确系统的边界和范围。
2、作为与用户和其他利益相关者沟通的有效工具,便于他们直观地了解系统的功能和使用方式。
3、为后续的系统设计和开发工作提供基础,如确定系统的架构、模块划分等。
(二)绘制用例图的步骤1、确定参与者参与者是与系统进行交互的外部实体,可以是人、其他系统或设备。
通过对系统的需求分析,找出所有可能与系统交互的参与者,并为每个参与者赋予一个有意义的名称。
2、识别用例用例代表了系统能够为参与者提供的功能或服务。
从参与者的角度出发,思考他们在与系统交互过程中希望系统完成的任务,将这些任务确定为用例。
3、绘制用例图使用绘图工具,将参与者和用例分别用不同的图形元素表示,并通过线条连接参与者和与之相关的用例,以表示它们之间的交互关系。
同时,可以为用例图添加必要的注释和说明,以提高其可读性。
(三)实验案例分析以一个在线购物系统为例,绘制用例图并进行分析。
1、确定参与者顾客:购买商品的用户。
管理员:负责管理系统的人员,包括商品管理、订单处理、用户管理等。
2、识别用例顾客相关用例注册/登录浏览商品搜索商品查看商品详情加入购物车提交订单支付订单查看订单状态评价商品管理员相关用例商品管理(添加、修改、删除商品)订单处理(确认订单、发货、退款)用户管理(添加、修改、删除用户信息)3、绘制用例图(此处插入绘制好的用例图)通过对这个用例图的分析,可以清晰地看到在线购物系统的主要功能和不同用户与系统之间的交互关系。
数据流图实验报告
![数据流图实验报告](https://img.taocdn.com/s3/m/7d0dfb0c842458fb770bf78a6529647d2628344a.png)
数据流图实验报告数据流图实验报告引言数据流图是一种用于描述系统功能的图形化工具,它展示了系统内各个组件之间的数据流动和处理过程。
数据流图可以帮助我们更好地理解和设计系统,提高系统的可靠性和效率。
本实验旨在通过构建数据流图,探索其在系统分析和设计中的应用。
一、实验目的本实验的目的是通过构建数据流图,了解数据流图的基本概念和使用方法,掌握数据流图的绘制规则和符号表示法,并通过实践应用数据流图进行系统分析和设计。
二、实验过程1. 确定系统范围和目标在进行数据流图的绘制之前,首先需要明确系统的范围和目标。
通过与系统相关的人员交流和调研,我们确定了一个简单的图书馆管理系统作为实验对象。
该系统的目标是实现对图书馆资源的管理,包括图书的借阅、归还和查询等功能。
2. 绘制上层数据流图上层数据流图是对系统整体功能的概括性描述,用于展示系统的输入、输出和处理过程。
我们根据系统目标,绘制了一个简化的上层数据流图,其中包括图书管理员、读者和图书馆资源等主要组件。
通过分析数据流的来源和去向,我们确定了系统的输入和输出。
3. 划分子功能模块根据上层数据流图,我们可以进一步划分系统的子功能模块,以便更详细地描述系统的功能和流程。
在图书馆管理系统中,我们划分了图书管理、读者管理和借阅管理等子功能模块。
每个子功能模块都包含了一些具体的数据流和处理过程。
4. 绘制下层数据流图根据子功能模块,我们绘制了相应的下层数据流图。
下层数据流图展示了子功能模块内部的数据流动和处理过程。
通过分析数据流的细节,我们可以更深入地了解系统的具体实现方式和数据处理逻辑。
5. 完善数据流图在绘制下层数据流图的过程中,我们发现了一些问题和改进的空间。
通过与系统相关的人员讨论和反复修改,我们对数据流图进行了完善和优化。
例如,在借阅管理模块中,我们增加了对借阅记录的管理和统计功能,以提高系统的效率和便利性。
三、实验结果通过本实验,我们成功地构建了一个图书馆管理系统的数据流图。
顺序图实验报告
![顺序图实验报告](https://img.taocdn.com/s3/m/52febca59a89680203d8ce2f0066f5335a8167fb.png)
顺序图实验报告简介本实验旨在通过使用顺序图来描述系统中不同对象之间的交互流程。
顺序图是一种常用的软件工程工具,可帮助我们更好地理解系统中各个对象之间的关系和交互。
实验步骤以下是本次实验的具体步骤:步骤一:确定系统中的对象和交互关系在开始绘制顺序图之前,我们首先需要确定系统中的对象和它们之间的交互关系。
这些对象可以是软件组件、模块、类等,它们之间通过消息进行交互。
步骤二:绘制顺序图框架在确定了系统中的对象和交互关系后,我们可以开始绘制顺序图的框架。
顺序图由一条垂直的虚线表示,并沿着该虚线上方绘制对象以及它们之间的消息传递。
步骤三:添加对象和消息根据系统的需求,我们可以添加对象和消息到顺序图中。
对象以矩形框的形式表示,每个对象的上方标有对象的名称。
消息以箭头的形式表示,从一个对象指向另一个对象,表示消息的传递。
步骤四:标注消息的顺序和条件在顺序图中,消息的顺序和条件对于理解系统的交互流程非常重要。
我们可以使用数字或字母来标注消息的顺序,以表示消息的先后关系。
此外,我们还可以使用条件语句来表示消息的条件执行。
步骤五:完善顺序图根据实际需求,我们可以添加更多的对象和消息到顺序图中,以完善系统的交互描述。
同时,我们也可以调整对象和消息的位置,以使顺序图更加清晰易懂。
实验结果通过以上步骤,我们成功地绘制了系统的顺序图。
该顺序图清晰地展示了系统中各个对象之间的交互流程,并帮助我们更好地理解系统的工作原理。
结论顺序图是一种有力的工具,可以帮助我们更好地理解系统中不同对象之间的交互。
通过绘制顺序图,我们可以清晰地描述系统的交互流程,并帮助开发人员更好地设计和实现系统。
顺序图的绘制步骤包括确定对象和交互关系、绘制框架、添加对象和消息、标注消息顺序和条件,以及完善顺序图。
通过按照这些步骤进行顺序图的绘制,我们可以得到清晰易懂的交互描述,有助于系统的开发和维护。
在今后的软件工程实践中,我们将继续运用顺序图这一工具,以更好地理解和描述系统中的交互关系。
计算机绘图实训报告(范文)
![计算机绘图实训报告(范文)](https://img.taocdn.com/s3/m/7d71207a1fb91a37f111f18583d049649b660e18.png)
计算机绘图实训报告计算机绘图实训报告篇一:计算机制图实训实训报告计算机制图实训实训报告一.计算机制图的历史及其发展。
计算机强化训练是一门实践性很强的基础课。
通过该实训,使我们熟悉三维软件和二维软件的操作,为今后的课程设计、毕业设计打下坚实的绘图功底。
机械图样是表达和交流设计思想的重要工具 ,制图是机械类专业学生必须掌握的基本功。
AutC AD 具有强大的几何图形的绘制和编辑功能,已被企业广泛地应用于设计绘图。
本次实训尝试将制图与AutCA D软件相结合,让学生在学习手工制图的基础上,熟练掌握AutC AD界面及学习计算机绘图的技能,并为学习其它软件打好基础。
进入20世纪70年代以后,随着计算机硬件质量的迅速提高和成本的降低,再加上先进的软件不断地推出,并同计算机辅助制造(CA M)相结合,在工程界,计算机辅助绘图与设计已成为一个迅速发展的领域。
二.实训要求要求利用AutC AD软件绘制零件图、利用零件图绘制装配图,利用装配图拆画零件图,并标注尺寸公差,形位公差,绘制明细栏、序号等;要求利用三维软件(推荐使用Pr E或Slidrks)进行零件的建模,零件的装配和工程图的制作等。
加强学生对专业绘图软件操作能力的培养;促使学生养成能独立完成相对比较简单设备或机构的图纸设计。
为后续的课程设计和毕业设计打下绘图功底和基本设计思路。
三、实训内容(一) AutCAD强化训练1、基本知识要求:(1)AutCAD基本绘图命令和编辑命令的使用;(2)AutCAD的图层设置和尺寸标注;(3)AutC AD的图纸打印设置和技巧;(4)利用AutCAD绘制零件图的基本步骤和方法;(5)利用AutCAD根据零件图组装成装配图,并标注序号、明细栏等;(6)利用A utCAD根据装配图拆画零件图;2、基本技能要求:(1)掌握利用AutCAD绘制零件图;(2)掌握根据零件图组装成装配图;(3)掌握根据装配图拆画零件图;(二)三维建模和绘图强化训练1、知识要求:(1)零件的装配和运动仿真;(2)工程图的生成(包括,图框的设置、视图的生成、尺寸的标注、粗糙度和形位公差的标注)。
实验报告-流程图学习
![实验报告-流程图学习](https://img.taocdn.com/s3/m/af5de97a8e9951e79b89273e.png)
天津师范大学管理学院学生实验报告
实验课程名称物流管理学概论
实验时间2012.12 实验地点兴A506
学生班级12物流指导教师侯玲娟
学生姓名胡佳丽学号1230130214 成绩
一、实验目的和要求:
实验目的:运用物流综合管理平台,学习物流各相关活动的流程。
要求:
1、针对物流综合管理平台下的各种物流系统里提供的多个物流活动的流程图进行学习;
2、仔细阅读流程图,并详细阐述流程图里的所有操作过程;
3、认真填写《实验报告》
二、流程图
三、流程图所属物流子系统介绍
供应链管理包括与产品从原料阶段(提炼)到最终用户之间的流动和转化相关的所有活动以及相关的信息流动。
首先,供应链不是一个新概念,因为传统上组织一直依靠供应商,而且传统上组织也一直服务于顾客。
供应链管理包括涉及供源和采购、转化活动和所用物流管理活动的计划和管理。
重要的是,它还包括供应商、中介、第三方服务提供商和顾客等渠道伙伴的协调和合作。
本质上,供应链管理整合了公司内和公司间的供需管理。
供应链管理是指完善供应链联系将所有活动整合的过程,以此取得稳定的竞争优势。
供应链是包括信息流通在内的从原材料阶段直到最后的商品流通和递送的所有活动,物料和信息贯穿于供应链始终。
供应链系统包括管理系统、操作和组装、采购、生产计划、订单加工、库存管理、运输、仓储和客户服务。
供应链管理包括涉及供源和采购、转化活动和所有物流活动的计划和管理。
重要的是,。
数字图像处理实验报告
![数字图像处理实验报告](https://img.taocdn.com/s3/m/0aa93e0ff68a6529647d27284b73f242336c3107.png)
目录实验一:数字图像的基本处理操作 (2)1。
1:实验目的 (2)1。
2:实验任务和要求 (2)1.3:实验步骤和结果 (2)1。
4:结果分析 (6)实验二:图像的灰度变换和直方图变换 (7)2.1:实验目的 (7)2.2:实验任务和要求 (7)2。
3:实验步骤和结果 (7)2。
4:结果分析 (11)实验三:图像的平滑处理 (12)3.1:实验目的 (12)3。
2:实验任务和要求 (12)3。
3:实验步骤和结果 (12)3。
4:结果分析 (16)实验四:图像的锐化处理 (17)4.1:实验目的 (17)4.2:实验任务和要求 (17)4。
3:实验步骤和结果 (17)4.4:结果分析 (19)实验一:数字图像的基本处理操作1.1:实验目的1、熟悉并掌握MATLAB、PHOTOSHOP等工具的使用;2、实现图像的读取、显示、代数运算和简单变换。
3、熟悉及掌握图像的傅里叶变换原理及性质,实现图像的傅里叶变换。
1。
2:实验任务和要求1.读入一幅RGB图像,变换为灰度图像和二值图像,并在同一个窗口内分成三个子窗口来分别显示RGB图像和灰度图像,注上文字标题。
2.对两幅不同图像执行加、减、乘、除操作,在同一个窗口内分成五个子窗口来分别显示,注上文字标题.3.对一幅图像进行平移,显示原始图像与处理后图像,分别对其进行傅里叶变换,显示变换后结果,分析原图的傅里叶谱与平移后傅里叶频谱的对应关系。
4.对一幅图像进行旋转,显示原始图像与处理后图像,分别对其进行傅里叶变换,显示变换后结果,分析原图的傅里叶谱与旋转后傅里叶频谱的对应关系。
1.3:实验步骤和结果1.对实验任务1的实现代码如下:a=imread(’d:\tp.jpg’);i=rgb2gray(a);I=im2bw(a,0。
5);subplot(1,3,1);imshow(a);title('原图像');subplot(1,3,2);imshow(i);title(’灰度图像’);subplot(1,3,3);imshow(I);title('二值图像’);subplot(1,3,1);imshow(a);title('原图像');结果如图1。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
实验报告(实验七)专业班级姓名学号课程名称数据结构学年2009 --2010 学期1□/ 2□课程类别专业必修□限选□任选□实践□●实验内容:实验时间:2010年7月2日1.编写函数,采用邻接矩阵表示法,构造一个无向网。
2.编写函数,实现从键盘输入数据,建立一个有向图的邻接表。
3.编写函数,输出该邻接表。
4.编写函数,采用邻接表存储实现无向图的深度优先非递归遍历。
5.编写函数,采用邻接表存储实现无向图的广度优先遍历。
6.编写一个主函数,在主函数中设计一个简单的菜单,分别调试上述算法。
●实验目的及要求:1.掌握图的存储思想及其存储实现2.掌握图的深度、广度优先遍历算法思想及其程序实现3.掌握图的常见应用算法的思想及其程序实现●方法与步骤:详见从第2页开始的源代码●实验结果:●小结:分数:批阅老师:2010年月日实验报告(附页)源代码:#include<stdio.h>#include<stdlib.h>#include<string.h>#define MAX_VERTEX_NUM 10 //顶点最大个数#define STACK_INIT_SIZE 100//邻接矩阵的类型定义#define INFINITY 888 /* 用888代替∞*/typedef struct ArcCell{int adj;}ArcCell,AdjMatrix[MAX_VERTEX_NUM][MAX_VERTEX_NUM]; typedef struct{int vexs[MAX_VERTEX_NUM];AdjMatrix arcs;int vexnum,arcnum;}MGraph;//构造无向网MGraph *CreateUDN(MGraph *N){int i,j,k,w;int v1,v2;printf("输入顶点的个数:");scanf("%d",&N->vexnum);printf("输入边数:");scanf("%d",&N->arcnum);printf("输入%d个顶点的元素:",N->vexnum);for(i=0;i<N->vexnum;i++){scanf("%d",&N->vexs[i]);}for(i=0;i<N->vexnum;i++)for(j=0;j<N->vexnum;j++)N->arcs[i][j].adj=INFINITY;for(k=0;k<N->arcnum;k++){printf("输入第%d条边所依附的顶点:",k+1);scanf("%d%d",&v1,&v2);printf("输入权值:");scanf("%d",&w);for(i=0;i<N->vexnum;i++)if(v1==N->vexs[i])break;for(j=0;j<N->vexnum;j++)if(v2==N->vexs[j])break;N->arcs[i][j].adj=w;N->arcs[j][i]=N->arcs[i][j];}printf(" ");for(i=0;i<N->vexnum;i++)printf(" v%d",N->vexs[i]);printf("\n");for(i=0;i<N->vexnum;i++){printf(" v%d",N->vexs[i]);for(j=0;j<N->vexnum;j++)printf(" %3d ",N->arcs[i][j].adj);printf("\n");}return N;}//邻接表的类型定义typedef struct ArcNode{int adjvex;struct ArcNode *nextarc;int weight; //边的权}ArcNode; //表结点typedef struct VNode{int degree,indegree;//顶点的度,入度int data;ArcNode *firstarc;}VNode,AdjList[MAX_VERTEX_NUM];typedef struct{AdjList vertices;int vexnum,arcnum;//顶点的实际数,边的实际数}ALGraph;#define TRUE 0#define FALSE -1//确定位置int LocateVex(ALGraph *G,int v){int i;for( i=0;v!=G->vertices[i].data&&i<G->vexnum;++i);if(i>G->vexnum)return -1;return i;}//创建有向图的邻接表ALGraph *createDG(ALGraph *G){int i,j,k;int v1,v2;ArcNode *p;printf("输入顶点的个数:");scanf("%d",&G->vexnum);printf("输入边数:");scanf("%d",&G->arcnum);printf("输入%d个顶点的元素:",G->vexnum);for(i=0;i<G->vexnum;++i){scanf("%d",&G->vertices[i].data);G->vertices[i].firstarc=NULL;}for(k=0;k<G->arcnum;++k){printf("输入第%d条边所依附的顶点:",k+1);scanf("%d%d",&v1,&v2);i=LocateVex(G,v1);j=LocateVex(G,v2);p=(ArcNode *)malloc(sizeof(ArcNode));p->adjvex=j;p->nextarc=G->vertices[i].firstarc;G->vertices[i].firstarc=p;}printf("创建成功邻接表!\n");return G;}//输出邻接表void printfAdjList(ALGraph *G){int i;ArcNode *p;printf(" %s %s %s\n","编号","顶点","相邻边编号");for (i=0;i<G->vexnum;++i){printf("%4d v%d",i,G->vertices[i].data);for(p=G->vertices[i].firstarc;p;p=p->nextarc)printf("->%2d", p->adjvex);printf("\n");}}//顺序栈类型定义typedef struct{int *base;int *top;int stacksize;}SqStack;//栈初始化SqStack *InitStack(){SqStack *s;s=(SqStack *)malloc(sizeof(SqStack));s->base=(int *)malloc(STACK_INIT_SIZE*sizeof(int));s->top=s->base;s->stacksize=STACK_INIT_SIZE;return s;}//入栈SqStack *PushStack(SqStack *s,int i){(*s->top)=i;s->top++;return s;}//出栈int PopStack(SqStack *s){int i;if(s->top==s->base)return NULL;s->top--;i=(*s->top);return i;}//深度优先非递归遍历void DFSTraverse(ALGraph *G){int i,u;char visited[MAX_VERTEX_NUM]={0};SqStack *s;ArcNode *p;s=InitStack();for(i=0;i<G->vexnum;i++)visited[i]=FALSE;for(i=0;i<G->vexnum;i++)if(visited[i]){visited[i]=TRUE;printf("%d ",G->vertices[i].data);s=PushStack(s,i);while((s->base!=s->top)){u=PopStack(s);s=PushStack(s,u);for(p=G->vertices[u].firstarc;p;p=p->nextarc){if(visited[p->adjvex]){visited[p->adjvex]=TRUE;printf("%d ",G->vertices[p->adjvex].data);s=PushStack(s,p->adjvex);break;}else{u=PopStack(s);}}}}}//创建无向图的邻接表ALGraph *createUDG(ALGraph *G){int i,j,k;int v1,v2;ArcNode *p,*q;printf("输入顶点的个数:");scanf("%d",&G->vexnum);printf("输入边数:");scanf("%d",&G->arcnum);printf("输入%d个顶点的元素:",G->vexnum);for(i=0;i<G->vexnum;++i){scanf("%d",&G->vertices[i].data);G->vertices[i].firstarc=NULL;}for(k=0;k<G->arcnum;++k){printf("输入第%d条边所依附的顶点:",k+1);scanf("%d%d",&v1,&v2);i=LocateVex(G,v1);j=LocateVex(G,v2);p=(ArcNode *)malloc(sizeof(ArcNode));p->adjvex=j;p->nextarc=G->vertices[i].firstarc;G->vertices[i].firstarc=p;q=(ArcNode *)malloc(sizeof(ArcNode));q->adjvex=i;q->nextarc=G->vertices[j].firstarc;G->vertices[j].firstarc=q;}printf("创建成功邻接表!\n");return G;}//单链队列的类型定义typedef struct QNode{int data;struct QNode *next;}QNode,*QueuePtr;typedef struct{QueuePtr front;//队头指针QueuePtr rear;//队尾指针}*LinkQueue,Queue;//创建队列LinkQueue InitLinkQueue(){LinkQueue Q;Q=(LinkQueue)malloc(sizeof(Queue));Q->front=Q->rear=(QueuePtr)malloc(sizeof(QNode));Q->front->next=NULL;return Q;}//入队LinkQueue EnLinkQueue(LinkQueue Q,int data){QueuePtr p;p=(QueuePtr)malloc(sizeof(QNode));p->data=data;p->next=NULL;Q->rear->next=p;Q->rear=p;return Q;}//出队int DeLinkQueue(LinkQueue Q){QueuePtr p;int data;p=Q->front->next;data=p->data;Q->front->next=p->next;if(Q->rear==p)Q->rear=Q->front;free(p);return data;}//广度优先遍历void BFSTraverse(ALGraph *G){LinkQueue Q;ArcNode *p;int i,u;char visited[MAX_VERTEX_NUM];Q=InitLinkQueue();for(i=0;i<G->vexnum;i++)visited[i]=FALSE;for(i=0;i<G->vexnum;i++)if(visited[i]){visited[i]=TRUE;printf("%d ",G->vertices[i].data);Q=EnLinkQueue(Q,i);while(Q->front!=Q->rear){u=DeLinkQueue(Q);for(p=G->vertices[u].firstarc;p;p=p->nextarc){if(visited[p->adjvex]){visited[p->adjvex]=TRUE;printf("%d ",G->vertices[p->adjvex].data);Q=EnLinkQueue(Q,p->adjvex);}}}}}//主函数void main(){int choice;MGraph *N;ALGraph *G;N=(MGraph *)malloc(sizeof(MGraph));G=(ALGraph *)malloc(sizeof(ALGraph));do{ printf("\t\t************************************************\n");printf("\t\t*1.采用邻接矩阵表示法,构造一个无向网*\n");printf("\t\t*2.实现从键盘输入数据,建立一个有向图的邻接表*\n");printf("\t\t*3.输出2中建立的有向图的邻接表*\n");printf("\t\t*4.构造一个无向图*\n");printf("\t\t*5.采用邻接表存储实现无向图的深度优先非递归遍历*\n");printf("\t\t*6.采用邻接表存储实现无向图的广度优先遍历*\n");printf("\t\t*0:退出*\n");printf("\t\t*请选择:0-6 *\n");printf("\t\t************************************************\n");scanf("%d",&choice);switch(choice){case 1:CreateUDN(N);break;case 2:G=createDG(G);break;case 3:printfAdjList(G);break;case 4:G=createUDG(G);break;case 5:DFSTraverse(G);printf("\n");break;case 6:BFSTraverse(G);printf("\n");break;}}while(choice!=0);}程序调试截图:主菜单:采用邻接矩阵表示法,构造一个无向网:实现从键盘输入数据,建立一个有向图的邻接表:输出2中建立的有向图的邻接表:构造一个无向图:采用邻接表存储实现无向图的深度优先非递归遍历:采用邻接表存储实现无向图的广度优先遍历:。