搜档网
当前位置:搜档网 › 实验三移液管容量瓶基本操作

实验三移液管容量瓶基本操作

实验三移液管容量瓶基本操作
实验三移液管容量瓶基本操作

移液管、容量瓶等基本操作

一、实验目的

1.掌握移液管、容量瓶、洗涤、干燥及存放方法;

2.掌握移液管、容量瓶的规范使用方法及使用注意事项。

二、实验原理

移液管为量出式(EX)计量玻璃仪器,吸量管是具有分刻度的玻璃管,吸量管转移溶液的准确度不如移液管。

在滴定分析中,要用到3种能准确测量溶液体积的仪器,即滴定管,移液管和容量瓶。这3种仪器的正确使用是滴定分析中最重要的基本操作。对这些仪器使用得准确、熟练就可以减少溶液体积的测量误差,为获得准确的分析结果创造了先决条件。

三、仪器与试液

(一)仪器:移液管、容量瓶。

(二)试液:自来水、洗涤剂、蒸馏水、毛刷。

◆洗液:将8克重铬酸钾用少量水润湿,慢慢加入180ml粗硫酸,搅拌以加速溶解,冷却后贮存于磨口试剂瓶中。

四、操作步骤

(一)移液管基本操作

1.洗涤

洗涤前,应先检查移液管或吸量管的管口和尖嘴有无破损,若有破损则不能使用。

(1)自来水洗涤若干次,较脏(内壁挂水珠)时,可用铬酸酸洗液洗净。使其内壁下端的外壁均不挂水珠,用滤纸片将液液口内外残留的水擦掉。

(2)实验室用水润洗:自来水洗净后,要用实验室用水润洗2-3次,方法是:用洗净并烘干的小烧杯盛装实验室用水,用移液管吸取5-10ml,立即用右手食指按信管口(尽量勿使溶液回流,以免稀释),将管横过来,用两手的拇指及食指分别拿住移液管的两端,转动移液管并使溶液布满全管内壁,当溶液流至距上口2-3cm时,将管直立,使溶液由尖嘴(流液口)放出,弃去。(3)欲移取溶液润洗:移取溶液前,先用欲移取的溶液涮洗三次,方法是:用洗净并烘干的小烧杯倒出一部分欲移取的溶液,用移液管吸取溶液5-10ml,立即用右手食指按信管口(尽量勿使溶液回流,以免稀释),将管横过来,用两手的拇指及食指分别拿住移液管的两端,转动移液管并使溶液布满全管内壁,当溶液流至距上口2-3cm时,将管直立,使溶液由尖嘴(流液口)放出,弃去。

.吸取溶液:用移液管自容量瓶中移取溶液时,右手拇指及中指拿管颈2,将移液管插入容量瓶内液面刻线以上的地方(后面二指依次靠拢中指)深度,不要插入太深,以免外壁沾带溶液过多;也不要插入1-2cm以下太浅,以免液面下降时吸空,左手拿洗耳球,排除空气后紧按在移液管口上,借吸力使液面慢慢上升,移液管应随容量瓶中液面的下降而下降,当管中液面上升至刻线以上时,迅速用右手食指堵住管口(食指最好是。潮而不湿).调节液面:用滤纸擦去管尖外部的溶液,将移液管的流液口靠洁净小3度,管身保持直立,稍松食指,用拇指及中30烧杯内壁,小烧杯倾斜约指轻轻捻转管身,使液面缓慢下降,直到调定零点,按紧食指,使溶液不再流出,将移液管插入准备承接溶液的容器中。度,.放出溶液:承接溶液的器皿如是锥形瓶,应使锥形瓶倾斜成约430称液管或吸量管直立,管下紧靠锥形瓶内壁,放开食指,使溶液自由地再将移液管或吸量管移去。15秒,沿壁流下,流完后管尖端接触瓶内壁约残留在管末端的少量溶液,不

可用外力强使其流出,因校准移液管或吸量管时已考虑了末端保留溶液的体积。5.注意事项:)在调整零点和排放溶液过程中,移液管都要保持垂直,其流液口要(1秒后,流15接触倾斜的器壁(不可接触下面的溶液)并保持不动;等待液口内残留的一点溶液绝对不可用外力使其被震出或吹出;移液管用完应放在管架上,不要随便放在实验台上,尤其要防止管颈下端被沾污。,它是带有分度的量出式量器,用)吸量管的全称是“分度吸量管”(2于移取非固定量的溶液。吸量管的使用方法与移液管大致相同,这里只强调几点:以上固定量溶)由于吸量管的容量精度低于移液管,所以在移取2ml1(液时,应尽可能使用移液管。2)使用吸量管时,尽量在最高标线调整零点。()吸量管的种类较多,要根据所做实验的具体情况,合理地选用吸量3(管,但由于种种原因,目前市场上的产品不一定都符合标准,有些产品标志不全,有的产品质量不合格,使得用户无法分辨其类型和级别,如果实验精度要求很高,最好经容量校准后再使用。(二)容量瓶基本操作容量瓶主要用于准确地配制一定浓度的溶液。它是一种细长颈、梨形的平底玻璃瓶,配有磨口塞。瓶颈上刻有标线,当瓶内液体在所指定温度下达到标线处时,其体积即为瓶上所注明的容积数。一种规格的容量瓶只能量取一个量。常用的容量瓶有100、250、500毫升等多种规格。

.试漏:使用前检查瓶塞处是否漏水。具体操作方法是:在容量瓶内 1装入半瓶水,塞紧瓶塞,用右手食指顶住瓶塞,另一只手五指托住容量瓶底,将其倒立(瓶口朝下),观察容量瓶是否漏水。若不漏水,将瓶180°后,再次倒立,检查是否漏水,若两次操作,容正立且将瓶塞旋转量瓶瓶塞周围皆无水漏出,即表明容量瓶不漏水。经检查不漏水的容量瓶才能使用。.洗涤: 2可用铬酸酸洗液洗涤,时,较脏(内壁挂水珠)(1)自来水洗涤若干次,边转动,10-20mL盖上塞,洗涤时将瓶内水尽量倒空,然后倒入铬酸洗液边向瓶口倾斜,至洗液布满全部内壁。放置数分钟,倒出洗液,用自来水充分洗涤。2-3次。(2)实验室用水润洗.转移:若要将固体物质配制一定体积的溶液,通常是将把准确称量好3的固体物质放在烧杯中,用少量溶剂溶解后,再定量地转移到容量瓶中。转移时要用玻璃棒引流。方法是将玻璃棒一端紧靠在容量瓶颈内壁上,但不要太接近瓶口,以免有溶液溢出。待烧杯中的溶液倒尽后,烧杯不同,要直接离开搅棒,而应在烧杯扶正的同时使杯嘴沿玻璃棒上提1-2cm时直立,使附着在烧杯嘴上的一滴溶液流回烧杯中。为保证溶质能全部次,每次用洗3-4转移到容量瓶中,用少量水(或其他溶剂)涮洗烧杯瓶或滴管冲洗杯壁和搅棒,按同样的方法移入瓶中。如果固体溶质是易溶的,而且溶解时又没有很大的热效应发生,也可

将称取的固体溶质小心地通过干净漏斗放入容量瓶中,用水冲洗漏斗并使溶质直接在容量瓶中溶解。如果是浓溶液稀释,则用移液管吸取一定体积的浓溶液,放入容量瓶

中,再按下述方法稀释并定容。体积时,将容量瓶平.定容:溶液转入容量瓶后,加溶剂,稀释至3/44摇几次(切勿倒转摇动),作初步混匀。这样又可避免混合后体积的改,小心地逐滴加入,直1-2min变。继续加溶剂至刻线以下约1cm,等待至溶液的弯月面与标线相切为止。盖紧塞子。5.摇匀:左手捏住瓶颈止端,食指压住瓶塞,右手三指托住瓶底,将容量瓶倒转并振荡,再倒转过来,仍使气泡上升至顶,如此反复10-15次,即可混匀。

6.注意事项

(1)容量瓶的容积是特定的,刻度不连续,所以一种型号的容量瓶只能配制同一体积的溶液。在配制溶液前,先要弄清楚需要配制的溶液的体积,然后再选用相同规格的容量瓶。.

其他物质 (2)易溶解且不发热的物质可直接用漏斗到入容量瓶中溶解,基本不能在容量瓶里进行溶质的溶解,应将溶质在烧杯中溶解后转移到容量瓶里。 (3)用于洗涤烧杯的溶剂总量不能超过容量瓶的标线。

(4)容量瓶不能进行加热。如果溶质在溶解过程中放热,要待溶液冷却后再进行转移,因为一般的容量瓶是在20℃的温度下标定的,若将温度较高或较低的溶液注入容量瓶,容量瓶则会热

胀冷缩,所量体积就会不准确,导致所配制的溶液浓度不准确。

(5)容量瓶只能用于配制溶液,不能储存溶液,因为溶液可能会对瓶体进行腐蚀,从而使容量瓶的精度受到影响。

(6)容量瓶用毕应及时洗涤干净,塞上瓶塞,并在塞子与瓶口之间夹一条纸条,防止瓶塞与瓶口粘连。

图的遍历操作实验报告

. .. . .. .. 实验三、图的遍历操作 一、目的 掌握有向图和无向图的概念;掌握邻接矩阵和邻接链表建立图的存储结构;掌握DFS及BFS对图的遍历操作;了解图结构在人工智能、工程等领域的广泛应用。 二、要求 采用邻接矩阵和邻接链表作为图的存储结构,完成有向图和无向图的DFS 和BFS操作。 三、DFS和BFS 的基本思想 深度优先搜索法DFS的基本思想:从图G中某个顶点Vo出发,首先访问Vo,然后选择一个与Vo相邻且没被访问过的顶点Vi访问,再从Vi出发选择一个与Vi相邻且没被访问过的顶点Vj访问,……依次继续。如果当前被访问过的顶点的所有邻接顶点都已被访问,则回退到已被访问的顶点序列中最后一个拥有未被访问的相邻顶点的顶点W,从W出发按同样方法向前遍历。直到图中所有的顶点都被访问。 广度优先算法BFS的基本思想:从图G中某个顶点Vo出发,首先访问Vo,然后访问与Vo相邻的所有未被访问过的顶点V1,V2,……,Vt;再依次访问与V1,V2,……,Vt相邻的起且未被访问过的的所有顶点。如此继续,直到访问完图中的所有顶点。 四、示例程序 1.邻接矩阵作为存储结构的程序示例

#include"stdio.h" #include"stdlib.h" #define MaxVertexNum 100 //定义最大顶点数 typedef struct{ char vexs[MaxVertexNum]; //顶点表 int edges[MaxVertexNum][MaxVertexNum]; //邻接矩阵,可看作边表int n,e; //图中的顶点数n和边数e }MGraph; //用邻接矩阵表示的图的类型 //=========建立邻接矩阵======= void CreatMGraph(MGraph *G) { int i,j,k; char a; printf("Input VertexNum(n) and EdgesNum(e): "); scanf("%d,%d",&G->n,&G->e); //输入顶点数和边数 scanf("%c",&a); printf("Input Vertex string:"); for(i=0;in;i++) { scanf("%c",&a); G->vexs[i]=a; //读入顶点信息,建立顶点表 }

MATLAB基本操作实验报告

南昌航空大学 数学与信息科学学院 实验报告 课程名称:数学实验 实验名称: MATLAB基本操作 实验类型:验证性■综合性□ 设计性□ 实验室名称:数学实验室 班级学号: 10 学生姓名:钟 X 任课教师(教师签名): 成绩: 实验日期: 2011-10- 10

一、实验目的 1、熟悉MATLAB基本命令与操作 2、熟悉MATLAB作图的基本原理与步骤 3、学会用matlab软件做图 二、实验用仪器设备、器材或软件环境 计算机MATLAB软件 三、实验原理、方案设计、程序框图、预编程序等 问题1:在区间【0,2π】画sinx 实验程序: >> x=linspace(0,2*pi,30); >> y=sin(x); >> plot(x,y) 问题2:在【0,2π】用红线画sinx,用绿圈画cosx,实验程序:

>> x=linspace(0,2*pi,30); >> y=sin(x); >> z=cos(x); >> plot(x,y,'r',x,z,'co') >> 问题3:在【0,π】上画y=sinx的图形。 实验程序: >> ezplot('sin(x)',[0,pi]) >> 问题4:在【0,π】上画x=cos3t,y=sin3t星形图形。

实验程序: >> ezplot('cos(t).^3','sin(t).^3',[0,pi]) >> 问题5:[-2,0.5],[0,2]上画隐函数 实验程序: >> ezplot('exp(x)+sin(x*y)',[-2,0.5,0,2]) >> 问题6:在[-2,2]范围内绘制tanh的图形。实验程序: >> fplot('tanh',[-2,2])

实验三移液管容量瓶基本操作

移液管、容量瓶等基本操作 一、实验目的 1.掌握移液管、容量瓶、洗涤、干燥及存放方法; 2.掌握移液管、容量瓶的规范使用方法及使用注意事项。 二、实验原理 移液管为量出式(EX)计量玻璃仪器,吸量管是具有分刻度的玻璃管,吸量管转移溶液的准确度不如移液管。 在滴定分析中,要用到3种能准确测量溶液体积的仪器,即滴定管,移液管和容量瓶。这3种仪器的正确使用是滴定分析中最重要的基本操作。对这些仪器使用得准确、熟练就可以减少溶液体积的测量误差,为获得准确的分析结果创造了先决条件。 三、仪器与试液 (一)仪器:移液管、容量瓶。 (二)试液:自来水、洗涤剂、蒸馏水、毛刷。 ◆洗液:将8克重铬酸钾用少量水润湿,慢慢加入180ml粗硫酸,搅拌以加速溶解,冷却后贮存于磨口试剂瓶中。 四、操作步骤 (一)移液管基本操作 1.洗涤 洗涤前,应先检查移液管或吸量管的管口和尖嘴有无破损,若有破损则不能使用。 (1)自来水洗涤若干次,较脏(内壁挂水珠)时,可用铬酸酸洗液洗净。使其内壁下端的外壁均不挂水珠,用滤纸片将液液口内外残留的水擦掉。 (2)实验室用水润洗:自来水洗净后,要用实验室用水润洗2-3次,方法是:用洗净并烘干的小烧杯盛装实验室用水,用移液管吸取5-10ml,立即用右手食指按信管口(尽量勿使溶液回流,以免稀释),将管横过来,用两手的拇指及食指分别拿住移液管的两端,转动移液管并使溶液布满全管内壁,当溶液流至距上口2-3cm时,将管直立,使溶液由尖嘴(流液口)放出,弃去。(3)欲移取溶液润洗:移取溶液前,先用欲移取的溶液涮洗三次,方法是:用洗净并烘干的小烧杯倒出一部分欲移取的溶液,用移液管吸取溶液5-10ml,立即用右手食指按信管口(尽量勿使溶液回流,以免稀释),将管横过来,用两手的拇指及食指分别拿住移液管的两端,转动移液管并使溶液布满全管内壁,当溶液流至距上口2-3cm时,将管直立,使溶液由尖嘴(流液口)放出,弃去。 .吸取溶液:用移液管自容量瓶中移取溶液时,右手拇指及中指拿管颈2,将移液管插入容量瓶内液面刻线以上的地方(后面二指依次靠拢中指)深度,不要插入太深,以免外壁沾带溶液过多;也不要插入1-2cm以下太浅,以免液面下降时吸空,左手拿洗耳球,排除空气后紧按在移液管口上,借吸力使液面慢慢上升,移液管应随容量瓶中液面的下降而下降,当管中液面上升至刻线以上时,迅速用右手食指堵住管口(食指最好是。潮而不湿).调节液面:用滤纸擦去管尖外部的溶液,将移液管的流液口靠洁净小3度,管身保持直立,稍松食指,用拇指及中30烧杯内壁,小烧杯倾斜约指轻轻捻转管身,使液面缓慢下降,直到调定零点,按紧食指,使溶液不再流出,将移液管插入准备承接溶液的容器中。度,.放出溶液:承接溶液的器皿如是锥形瓶,应使锥形瓶倾斜成约430称液管或吸量管直立,管下紧靠锥形瓶内壁,放开食指,使溶液自由地再将移液管或吸量管移去。15秒,沿壁流下,流完后管尖端接触瓶内壁约残留在管末端的少量溶液,不

图的遍历实验报告

实验四:图的遍历 题目:图及其应用——图的遍历 班级:姓名:学号:完成日期: 一.需求分析 1.问题描述:很多涉及图上操作的算法都是以图的遍历操作为基础的。试写一个程序,演示在连通的无向图上访问全部结点的操作。 2.基本要求:以邻接表为存储结构,实现连通无向图的深度优先和广度优先遍历。以用户指定的结点为起点,分别输出每种遍历下的结点访问序列和相应生成树的边集。 3.测试数据:教科书图7.33。暂时忽略里程,起点为北京。 4.实现提示:设图的结点不超过30个,每个结点用一个编号表示(如果一个图有n个结点,则它们的编号分别为1,2,…,n)。通过输入图的全部边输入一个图,每个边为一个数对,可以对边的输入顺序作出某种限制,注意,生成树的边是有向边,端点顺序不能颠倒。 5.选作内容: (1).借助于栈类型(自己定义和实现),用非递归算法实现深度优先遍历。 (2).以邻接表为存储结构,建立深度优先生成树和广度优先生成树,再按凹入表或树形打印生成树。 二.概要设计 1.为实现上述功能,需要有一个图的抽象数据类型。该抽象数据类型的定义为: ADT Graph { 数据对象V:V是具有相同特性的数据元素的集合,称为顶点集。 数据关系R: R={VR} VR={ | v,w v且P(v,w),表示从v到w得弧,谓词P(v,w)定义了弧的意义或信息} } ADT Graph 2.此抽象数据类型中的一些常量如下: #define TRUE 1 #define FALSE 0 #define OK 1 #define max_n 20 //最大顶点数 typedef char VertexType[20]; typedef enum{DG, DN, AG, AN} GraphKind; enum BOOL{False,True}; 3.树的结构体类型如下所示:

实验报告1windows的基本操作范例

实验名称:Windows的基本操作 一、实验目的 1.掌握桌面主题的设置。 2.掌握快捷方式的创建。 3.掌握开始菜单的组织。 4.掌握多任务间的数据传递——剪贴板的使用。 5.掌握文件夹和文件的创建、属性查看和设置。 6.掌握文件夹和文件的复制、移动和删除与恢复。 7.熟悉文件和文件夹的搜索。 8.熟悉文件和文件夹的压缩存储和解压缩。 二、实验环境 1.中文Windows 7操作系统。 三、实验内容及步骤 通过上机完成实验4、实验5所有内容后完成该实验报告 1.按“实验4--范例内容(1)”的要求设置桌面,将修改后的界面复制过来。 注:没有桌面背景图“Autumn”的,可选择其它背景图。 步骤:在桌面空白区域右击,选择菜单中的“个性化”,在弹出的窗口中点击“桌面背景”,在背景栏内选中“某一张图片”,单击“确定”。 修改后的界面如下图所示: 2.将画图程序添加到“开始”菜单的“固定项目列表”上。 步骤:右击“开始/所有程序/附件”菜单中的画图程序项,在弹出的快捷菜单中选“附到「开始」菜单”命令。 3.在D盘上建立以“自己的学号+姓名”为名的文件夹(如01108101刘琳)和其子文件 夹sub1,然后:

步骤:选定D:\为当前文件夹,选择“文件/新建/文件夹”命令,并将名字改为“学号+姓名”;选定“ D:\学号+姓名”为当前文件夹,选择“文件/新建/文件夹”命令,并将名字改为“sub1” ①在C:\WINDOWS中任选2个TXT文本文件,将它们复制到“学号+姓名”文件夹中;步骤:选定“C:\WINDOWS”为当前文件夹,随机选取2个文件, CTRL+C复制,返回“D:\学号+姓名”的文件夹,CTRL+V粘贴 ②将“学号+姓名”文件夹中的一个文件移到其子文件夹sub1中; 步骤:选定“ D:\学号+姓名”为当前文件夹,选中其中任意一个文件将其拖拽文件到subl ③在sub1文件夹中建立名为“”的空文本文档; 步骤:选定“ D:\学号+姓名\ sub1”为当前文件夹,在空白处单击右键,选择“新建\文本文档”,把名字改为test,回车完成。 ④删除文件夹sub1,然后再将其恢复。 步骤:选定“ D:\学号+姓名”为当前文件夹,右键单击“sub1”文件夹,选择“删除”,然后打开回收站,右键单击“sub1”文件夹,在弹出的快捷菜单中选择“还原”。 4.搜索C:\WINDOWS\system文件夹及其子文件夹下所有文件名第一个字母为s、文件长 度小于10KB且扩展名为exe的文件,并将它们复制到sub1文件夹中。 步骤:选定“ C:\WINDOWS\system”为当前文件夹,单击“搜索”按钮,在左侧窗格选择“所有文件和文件夹”,在“全部或部分文件名”中输入“s*.exe”,在“大小”中,选择“0~10KB”。 5.用不同的方法,在桌面上创建名为“计算器”、“画图”和“剪贴板”的三个快捷方式, 它们应用程序分别为:、和。并将三个快捷方式复制到sub1文件夹中。 步骤:①在"开始"菜单的"所有程序"子菜单中找到"计算器",单击右键,在弹出的快捷菜单中选择“发送到\桌面快捷方式”。 ②在"开始"菜单的"所有程序"子菜单中找到"画图",将其拖至桌面空白处。 ③在桌面上单击右键,在弹出的快捷菜单中选择“新建\快捷方式”,在“创建快捷方式”

数据结构实验报告-图的遍历

数据结构实验报告 实验:图的遍历 一、实验目的: 1、理解并掌握图的逻辑结构和物理结构——邻接矩阵、邻接表 2、掌握图的构造方法 3、掌握图的邻接矩阵、邻接表存储方式下基本操作的实现算法 4、掌握图的深度优先遍历和广度优先原理 二、实验内容: 1、输入顶点数、边数、每个顶点的值以及每一条边的信息,构造一个无向图G,并用邻接矩阵存储改图。 2、输入顶点数、边数、每个顶点的值以及每一条边的信息,构造一个无向图G,并用邻接表存储该图 3、深度优先遍历第一步中构造的图G,输出得到的节点序列 4、广度优先遍历第一部中构造的图G,输出得到的节点序列 三、实验要求: 1、无向图中的相关信息要从终端以正确的方式输入; 2、具体的输入和输出格式不限; 3、算法要具有较好的健壮性,对错误操作要做适当处理; 4、程序算法作简短的文字注释。 四、程序实现及结果: 1、邻接矩阵: #include #include #define VERTEX_MAX 30 #define MAXSIZE 20 typedef struct { int arcs[VERTEX_MAX][VERTEX_MAX] ; int vexnum,arcnum; } MGraph; void creat_MGraph1(MGraph *g) { int i,j,k; int n,m; printf("请输入顶点数和边数:"); scanf("%d%d",&n,&m); g->vexnum=n; g->arcnum=m; for (i=0;iarcs[i][j]=0;

数据结构实验图的基本操作

浙江大学城市学院实验报告 课程名称数据结构 实验项目名称实验十三/十四图的基本操作 学生姓名专业班级学号 实验成绩指导老师(签名)日期2014/06/09 一.实验目的和要求 1、掌握图的主要存储结构。 2、学会对几种常见的图的存储结构进行基本操作。 二.实验内容 1、图的邻接矩阵定义及实现: 建立头文件test13_AdjM.h,在该文件中定义图的邻接矩阵存储结构,并编写图的初始化、建立图、输出图、输出图的每个顶点的度等基本操作实现函数。同时建立一个验证操作实现的主函数文件test13.cpp(以下图为例),编译并调试程序,直到正确运行。 2、图的邻接表的定义及实现: 建立头文件test13_AdjL.h,在该文件中定义图的邻接表存储结构,并编写图的初始化、建立图、输出图、输出图的每个顶点的度等基本操作实现函数。同时在主函数文件test13.cpp中调用这些函数进行验证(以下图为例)。

3、填写实验报告,实验报告文件取名为report13.doc。 4、上传实验报告文件report13.doc到BB。 注: 下载p256_GraphMatrix.cpp(邻接矩阵)和 p258_GraphAdjoin.cpp(邻接表)源程序,读懂程序完成空缺部分代码。 三. 函数的功能说明及算法思路 (包括每个函数的功能说明,及一些重要函数的算法实现思路) 四. 实验结果与分析 (包括运行结果截图、结果分析等)

五.心得体会

程序比较难写,但是可以通过之前的一些程序来找到一些规律 (记录实验感受、上机过程中遇到的困难及解决办法、遗留的问题、意见和建议等。) 【附录----源程序】 256: //p-255 图的存储结构以数组邻接矩阵表示, 构造图的算法。 #include #include #include #include typedef char VertexType; //顶点的名称为字符 const int MaxVertexNum=10; //图的最大顶点数 const int MaxEdgeNum=100; //边数的最大值 typedef int WeightType; //权值的类型 const WeightType MaxValue=32767; //权值的无穷大表示 typedef VertexType Vexlist[MaxVertexNum]; //顶点信息,定点名称 typedef WeightType AdjMatrix[MaxVertexNum][MaxVertexNum]; //邻接矩阵typedef enum{DG,DN,AG,AN} GraphKind; //有向图,有向网,无向图,无向网typedef struct{ Vexlist vexs; // 顶点数据元素 AdjMatrix arcs; // 二维数组作邻接矩阵 int vexnum, arcnum; // 图的当前顶点数和弧数 GraphKind kind; // 图的种类标志 } MGraph; void CreateGraph(MGraph &G, GraphKind kd)// 采用数组邻接矩阵表示法,构造图G {//构造有向网G int i,j,k,q; char v, w; G.kind=kd; //图的种类 printf("输入要构造的图的顶点数和弧数:\n"); scanf("%d,%d",&G.vexnum,&G.arcnum); getchar();//过滤回车 printf("依次输入图的顶点名称ABCD...等等:\n"); for (i=0; i

数据结构实验报告图实验

邻接矩阵的实现 1. 实验目的 (1)掌握图的逻辑结构 (2)掌握图的邻接矩阵的存储结构 (3)验证图的邻接矩阵存储及其遍历操作的实现2. 实验内容 (1)建立无向图的邻接矩阵存储 (2)进行深度优先遍历 (3)进行广度优先遍历3.设计与编码MGraph.h #ifndef MGraph_H #define MGraph_H const int MaxSize = 10; template class MGraph { public: MGraph(DataType a[], int n, int e); ~MGraph(){ void DFSTraverse(int v); void BFSTraverse(int v); private: DataType vertex[MaxSize]; int arc[MaxSize][MaxSize]; }

int vertexNum, arcNum; }; #endif MGraph.cpp #include using namespace std; #include "MGraph.h" extern int visited[MaxSize]; template MGraph::MGraph(DataType a[], int n, int e) { int i, j, k; vertexNum = n, arcNum = e; for(i = 0; i < vertexNum; i++) vertex[i] = a[i]; for(i = 0;i < vertexNum; i++) for(j = 0; j < vertexNum; j++) arc[i][j] = 0; for(k = 0; k < arcNum; k++) { cout << "Please enter two vertexs number of edge: " cin >> i >> j; arc[i][j] = 1; arc[j][i] = 1; } }

数字图像处理实验报告

目录 实验一:数字图像的基本处理操作 (4) :实验目的 (4) :实验任务和要求 (4) :实验步骤和结果 (5) :结果分析 (8) 实验二:图像的灰度变换和直方图变换 (9) :实验目的 (9) :实验任务和要求 (9) :实验步骤和结果 (9) :结果分析 (13) 实验三:图像的平滑处理 (14) :实验目的 (14) :实验任务和要求 (14) :实验步骤和结果 (14) :结果分析 (18) 实验四:图像的锐化处理 (19) :实验目的 (19) :实验任务和要求 (19) :实验步骤和结果 (19) :结果分析 (21)

实验一:数字图像的基本处理操作 :实验目的 1、熟悉并掌握MATLAB、PHOTOSHOP等工具的使用; 2、实现图像的读取、显示、代数运算和简单变换。 3、熟悉及掌握图像的傅里叶变换原理及性质,实现图像的傅里叶变换。:实验任务和要求 1.读入一幅RGB图像,变换为灰度图像和二值图像,并在同一个窗口内分 成三个子窗口来分别显示RGB图像和灰度图像,注上文字标题。 2.对两幅不同图像执行加、减、乘、除操作,在同一个窗口内分成五个子窗口来分 别显示,注上文字标题。 3.对一幅图像进行平移,显示原始图像与处理后图像,分别对其进行傅里叶变换, 显示变换后结果,分析原图的傅里叶谱与平移后傅里叶频谱的对应关系。 4.对一幅图像进行旋转,显示原始图像与处理后图像,分别对其进行傅里 叶变换,显示变换后结果,分析原图的傅里叶谱与旋转后傅里叶频谱的 对应关系。 :实验步骤和结果 1.对实验任务1的实现代码如下: a=imread('d:\'); i=rgb2gray(a); I=im2bw(a,; 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('原图像'); 结果如图所示:

图的深度优先遍历实验报告

一.实验目的 熟悉图的存储结构,掌握用单链表存储数据元素信息和数据元素之间的关系的信息的方法,并能运用图的深度优先搜索遍历一个图,对其输出。 二.实验原理 深度优先搜索遍历是树的先根遍历的推广。假设初始状态时图中所有顶点未曾访问,则深度优先搜索可从图中某个顶点v出发,访问此顶点,然后依次从v的未被访问的邻接点出发深度优先遍历图,直至图中所有与v有路径相通的顶点都被访问到;若此时图有顶点未被访问,则另选图中一个未曾访问的顶点作起始点,重复上述过程,直至图中所有顶点都被访问到为止。 图的邻接表的存储表示: #define MAX_VERTEX_NUM 20 #define MAXNAME 10 typedef char VertexType[MAXNAME]; typedef struct ArcNode{ int adjvex; struct ArcNode *nextarc; }ArcNode; typedef struct VNode{ VertexType data; ArcNode *firstarc;

}VNode,AdjList[MAX_VERTEX_NUM]; typedef struct{ AdjList vertices; int vexnum,arcnum; int kind; }ALGraph; 三.实验容 编写LocateVex函数,Create函数,print函数,main函数,输入要构造的图的相关信息,得到其邻接表并输出显示。 四。实验步骤 1)结构体定义,预定义,全局变量定义。 #include"stdio.h" #include"stdlib.h" #include"string.h" #define FALSE 0 #define TRUE 1 #define MAX 20 typedef int Boolean; #define MAX_VERTEX_NUM 20

数字图像处理实验报告

目录 实验一:数字图像的基本处理操作....................................................................... 错误!未定义书签。:实验目的 .............................................................................................................. 错误!未定义书签。:实验任务和要求..................................................................................................... 错误!未定义书签。:实验步骤和结果..................................................................................................... 错误!未定义书签。:结果分析................................................................................................................. 错误!未定义书签。实验二:图像的灰度变换和直方图变换............................................................... 错误!未定义书签。:实验目的 .............................................................................................................. 错误!未定义书签。:实验任务和要求..................................................................................................... 错误!未定义书签。:实验步骤和结果..................................................................................................... 错误!未定义书签。:结果分析................................................................................................................. 错误!未定义书签。实验三:图像的平滑处理....................................................................................... 错误!未定义书签。:实验目的 .............................................................................................................. 错误!未定义书签。:实验任务和要求..................................................................................................... 错误!未定义书签。:实验步骤和结果..................................................................................................... 错误!未定义书签。:结果分析................................................................................................................. 错误!未定义书签。实验四:图像的锐化处理......................................................................................... 错误!未定义书签。:实验目的 .............................................................................................................. 错误!未定义书签。:实验任务和要求..................................................................................................... 错误!未定义书签。:实验步骤和结果..................................................................................................... 错误!未定义书签。:结果分析................................................................................................................. 错误!未定义书签。

图的基本操作 实验报告

实验五图的基本操作 一、实验目的 1、使学生可以巩固所学的有关图的基本知识。 2、熟练掌握图的存储结构。 3、熟练掌握图的两种遍历算法。 二、实验内容 [问题描述] 对给定图,实现图的深度优先遍历和广度优先遍历。 [基本要求] 以邻接表为存储结构,实现连通无向图的深度优先和广度优先遍历。以用户指定的结点为起点,分别输出每种遍历下的结点访问序列。 【测试数据】 由学生依据软件工程的测试技术自己确定。 三、实验前的准备工作 1、掌握图的相关概念。 2、掌握图的逻辑结构和存储结构。 3、掌握图的两种遍历算法的实现。 四、实验报告要求 1、实验报告要按照实验报告格式规范书写。 2、实验上要写出多批测试数据的运行结果。 3、结合运行结果,对程序进行分析。

五、算法设计 1、程序所需头文件已经预处理宏定义和结构体定义如下 #include #define MaxVerNum 100 struct edgenode { int endver; int inform; edgenode* edgenext; }; struct vexnode { char vertex; edgenode* edgelink; }; struct Graph { vexnode adjlists[MaxVerNum]; int vexnum; int arcnum; }; 2、创建无向图 void CreatAdjList(Graph* G) { int i,j,k; edgenode* p1; edgenode* p2; cout<<"请输入顶点数和边数:"<>G->vexnum>>G->arcnum; cout<<"开始输入顶点表:"<vexnum;i++) { cin>>G->adjlists[i].vertex; G->adjlists[i].edgelink=NULL; } cout<<"开始输入边表信息:"<arcnum;k++) { cout<<"请输入边对应的顶点:"; cin>>i>>j; p1=new edgenode; p1->endver=j; p1->edgenext=G->adjlists[i].edgelink; G->adjlists[i].edgelink=p1;

数据结构实验—图实验报告

精品文档数据结构 实 验 报 告

目的要求 1.掌握图的存储思想及其存储实现。 2.掌握图的深度、广度优先遍历算法思想及其程序实现。 3.掌握图的常见应用算法的思想及其程序实现。 实验内容 1.键盘输入数据,建立一个有向图的邻接表。 2.输出该邻接表。 3.在有向图的邻接表的基础上计算各顶点的度,并输出。 4.以有向图的邻接表为基础实现输出它的拓扑排序序列。 5.采用邻接表存储实现无向图的深度优先递归遍历。 6.采用邻接表存储实现无向图的广度优先遍历。 7.在主函数中设计一个简单的菜单,分别调试上述算法。 源程序: 主程序的头文件:队列 #include #include #define TRUE 1 #define FALSE 0 #define OK 1 #define ERROR 0 #define OVERFLOW -2 typedef int QElemType; typedef struct QNode{ //队的操作 QElemType data; struct QNode *next; }QNode,*QueuePtr; typedef struct { QueuePtr front; QueuePtr rear; }LinkQueue; void InitQueue(LinkQueue &Q){ //初始化队列 Q.front =Q.rear =(QueuePtr)malloc(sizeof(QNode)); if(!Q.front) exit(OVERFLOW); //存储分配失败 Q.front ->next =NULL; } int EnQueue(LinkQueue &Q,QElemType e) //插入元素e为Q的新的队尾元素{ QueuePtr p; p=(QueuePtr)malloc(sizeof(QNode)); if(!p) exit(OVERFLOW); p->data=e;

数字图像处理实验报告

数字图像处理实验报告实验一数字图像基本操作及灰度调整 一、实验目的 1)掌握读、写图像的基本方法。 2)掌握MATLAB语言中图像数据与信息的读取方法。 3)理解图像灰度变换处理在图像增强的作用。 4)掌握绘制灰度直方图的方法,理解灰度直方图的灰度变换及均衡化的方法。 二、实验内容与要求 1.熟悉MATLAB语言中对图像数据读取,显示等基本函数 特别需要熟悉下列命令:熟悉imread()函数、imwrite()函数、size()函数、Subplot()函数、Figure()函数。 1)将MA TLAB目录下work文件夹中的forest、tif图像文件读出、用到imread,imfinfo 等文件,观察一下图像数据,了解一下数字图像在MA TLAB中的处理就就是处理一个矩阵。将这个图像显示出来(用imshow)。尝试修改map颜色矩阵的值,再将图像显示出来,观察图像颜色的变化。 2)将MA TLAB目录下work文件夹中的b747、jpg图像文件读出,用rgb2gray()将其转化为灰度图像,记为变量B。 2.图像灰度变换处理在图像增强的作用 读入不同情况的图像,请自己编程与调用Matlab函数用常用灰度变换函数对输入图像进行灰度变换,比较相应的处理效果。 3.绘制图像灰度直方图的方法,对图像进行均衡化处理 请自己编程与调用Matlab函数完成如下实验。 1)显示B的图像及灰度直方图,可以发现其灰度值集中在一段区域,用imadjust函 数将它的灰度值调整到[0,1]之间,并观察调整后的图像与原图像的差别,调整后的灰度直方图与原灰度直方图的区别。 2)对B进行直方图均衡化处理,试比较与源图的异同。 3)对B进行如图所示的分段线形变换处理,试比较与直方图均衡化处理的异同。

图的遍历操作实验报告

实验三、图的遍历操作 一、目的 掌握有向图和无向图的概念;掌握邻接矩阵和邻接链表建立图的存储结构;掌握DFS及BFS对图的遍历操作;了解图结构在人工智能、工程等领域的广泛应用。 二、要求 采用邻接矩阵和邻接链表作为图的存储结构,完成有向图和无向图的DFS 和BFS操作。 三、DFS和BFS 的基本思想 深度优先搜索法DFS的基本思想:从图G中某个顶点Vo出发,首先访问Vo,然后选择一个与Vo相邻且没被访问过的顶点Vi访问,再从Vi出发选择一个与Vi相邻且没被访问过的顶点Vj访问,……依次继续。如果当前被访问过的顶点的所有邻接顶点都已被访问,则回退到已被访问的顶点序列中最后一个拥有未被访问的相邻顶点的顶点W,从W出发按同样方法向前遍历。直到图中所有的顶点都被访问。 广度优先算法BFS的基本思想:从图G中某个顶点Vo出发,首先访问Vo,然后访问与Vo相邻的所有未被访问过的顶点V1,V2,……,Vt;再依次访问与V1,V2,……,Vt相邻的起且未被访问过的的所有顶点。如此继续,直到访问完图中的所有顶点。 四、示例程序 1.邻接矩阵作为存储结构的程序示例 #include"" #include"" ertex); irstedge; irstedge; } } }//endwhile } //==========主函数=========== void main() { ALGraph *G; G=(ALGraph *)malloc(sizeof(ALGraph));

CreatALGraph(G); printf("Print Graph DFS: "); DFS(G); printf("\n"); printf("Print Graph BFS: "); BFS(G,3); printf("\n"); } 五、实验内容 1调试程序。设计一个有向图和一个无向图,任选一种存储结构,完成有向图和无向图的DFS(深度优先遍历)和BFS(广度优先遍历)的操作。 邻接矩阵作为存储结构的运行结果: 邻接链表作为存储结构的运行结果: 六、实验报告要求 画出你所设计的图,写出两种方法的遍历序列。

数字图像处理实验一图像的基本操作和基本统计指标计算实验报告

实验一图像的基本操作和基本统计指标计算 一、实验目的 熟悉MATLAB图像处理工具箱,在掌握MATLAB基本操作的基础上,本课程主要依靠图像处理工具箱验证和设计图像处理算法。对于初学者来说,勤学多练、熟悉MATLAB图像处理工具箱也是学号本课程的必经之路。 了解计算图像的统计指标的方法及其在图像处理中的意义。 了解图像的几何操作,如改变图像大小、剪切、旋转等。 二、实验主要仪器设备 (1)台式计算机或笔记本电脑 (2)MATLAB(安装了图像处理工具箱,即Image Processing Toolbox(IPT)) (3)典型的灰度、彩色图像文件 三、实验原理 (1)将一幅图像视为一个二维矩阵。 < (2)利用MATLAB图像处理工具箱读、写和显示图像文件。 ①调用imread函数将图像文件读入图像数组(矩阵)。例如“I=imread(‘’);”。其基本格式为:“A=imread(‘’)”,其中,A为二维矩阵,filename.为文件名,fmt为图像文件格式的扩展名。 ②调用imwrite函数将图像矩阵写入图像文件。例如“imwrite(A,’’);”。其基本格式为“imwrite(a,”。 ③调用imshow函数显示图像。例如“imshow(‘’);”。其基本格式为:I为图像矩阵,N 为显示的灰度级数,默认时为256。 (3)计算图像有关的统计参数。 四、实验内容 (1)利用MATLAB图像处理工具箱和Photoshop读、写和显示图像文件。 (2)利用MATLAB计算图像有关的统计参数。 五、实验步骤 (1)利用“读图像文件I/O”函数读入图像。 (2)利用“读图像文件I/O”的iminfo函数了解图像文件的基本信息:主要包括Filename(文件名)、FileModDate(文件修改时间)、Filesize(文件尺寸)、Format(文件格式)、FormatVersion(格式版本)、Width(图像宽度)、Height(图像高度)、BitDepth(每个像素的位深度)、ColorType(彩色类型)、CodingMethod(编码方法)等。 ' (3)利用“像素和统计处理”函数计算读入图像的二维相关系数(corr2函数)、确定像素颜色值(impixel函数)、确定像素的平均值(mean2函数)、显示像素信息(pixval函数)、计算像素的标准偏移(std2函数)等。 要求:参照例题,对图像J加均值为0、方差为的高斯白噪声形成有噪图像J1,即

数据结构图实验报告汇总

一、实验目的和要求 (1)掌握图的相关概念,包括图,有向图,无向图,完全图,子图,连通图,度,入度,出度,简单回路和环等定义。 (2)重点掌握图的各种存储结构,包括邻接矩阵和邻接表等。 (3)重点掌握图的基本运算,包括创建图,输出图,深度优先遍历,广度优先遍历等。 (4)掌握图的其他运算 ,包括最小生成树,最短路径,拓扑排序和关键路径等算法。 (5)灵活运用图这种数据结构解决一些综合应用问题。 二、实验内容和方法 (1)实验内容: 1、编写一个程序algo8-1.cpp ,实现不带权图和带权图的邻接矩阵与邻接表的相互转换算法、输出邻接矩阵与邻接表的算法,并在此基础上设计一个程序exp8-1.cpp 实现如下功能: ①建立如图1所示的有向图G 的邻接矩阵,并输出; ②由有向图G 的邻接矩阵产生邻接表,并输出; ③再由②的邻接表产生对应的邻接矩阵,并输出。 图1 2、编写一个程序algo8-2.cpp ,实现图的遍历运算,并在此基础上设计一个程序exp8-2.cpp 完成如下功能: ①输出图1所示的有向图G 从顶点0开始的深度优先遍历序列(递归算法); ②输出图1所示的有向图G 从顶点0开始的深度优先遍历序列(非递归算法); ③输出图1所示的有向图G 从顶点0开始的广度优先遍历序列。 3、设计一个程序exp8-3.cpp,采用邻接表存储图,并输出图8.1(a )中从指定顶点1出发的所有深度优先遍历序列。 1 5 6 9 7 5 8 4 5 3 0 1 5 2 4 3

(2)实验方法: 1、综合运用课本所学的知识,用不同的算法实现在不同的程序功能。 2、结合指导老师的指导,解决程序中的问题,正确解决实际中存在的异常情况,逐步改善功能。 3、根据实验内容,编译程序。 三、实验环境: Windows 7,Visual C++6.0 三、实验过程描述 文件graph.h中定义了图的邻接矩阵表示类型和邻接表表示类型,该头文件在以下三个实验中都会使用到。其代码如下: #ifndef GRAPH_H_INCLUDED #define GRAPH_H_INCLUDED typedef int InfoType; #define MAXV 100 //最大顶点个数 #define INF 32767 //INF表示无限大 //以下定义邻接矩阵类型 typedef struct { int no; InfoType info; }VertexType; typedef struct { int edges[MAXV][MAXV]; int n,e; VertexType vexs[MAXV]; }MGraph; //以下定义邻接表类型 typedef struct ANode { int adjvex; struct ANode* nextarc; InfoType info; }ArcNode; typedef int Vertex; typedef struct VNode { Vertex data;

相关主题