当前位置:文档之家› 实验五 图的基本操作

实验五 图的基本操作

实验五 图的基本操作
实验五 图的基本操作

学生学号:************** 学生姓名: ********

专业班级:********

一、算法思路

1、创建一个无向图,在创建图的时候先定义图的邻接表存储表示

2、指定的结点为起点,并用函数LocateVex(ALGraph G,int v)用于查找该

点所在位置

3、逐边输入信息,将两个顶点都要插入图中

4、深度优先遍历,使标志数组visited[]的值为0,一旦被访问,则为1

5、广度优先遍历时,先定义队列的一些相关函数,用于广度优先遍历

流程图:

二、主要的一些函数

1、建立无向图的邻接表存储表示:

typedef struct ArcNode

{

int adjvex;

struct ArcNode *nextarc;

int *info;

}ArcNode;

2、typedef struct VNode

{

char data; //顶点信息

ArcNode *firstarc;//指向第一条依附该顶点的弧的指针

}VNode,AdjList[max];

3、如果所指定的顶点v存在则返回该结点的存储位置

for(i=0;v!=G.vertices[i].data&&i

if(i>=G.vexnum) return -1;

return i;

4、逐边输入:

for(k=0;k

{ cin>>v1>>v2;

i=LocateVex(G,v1);

j=LocateVex(G,v2);

p=new ArcNode;

q=new ArcNode;

p->adjvex=j;

p->nextarc=G.vertices[i].firstarc;//链入第m号链表的前端

G.vertices[i].firstarc=p;

q->adjvex=i;

q->nextarc=G.vertices[j].firstarc;

G.vertices[j].firstarc=q;}

5、无向图的深度优先遍历:

void DFS(Graph *G,int i,int visit[])

{ cout<adjlists[i].vertex<<" ";

visit[i]=1;

edgenode *p=new edgenode;

p=G->adjlists[i].edgelink;

if(G->adjlists[i].edgelink&&!visit[p->endver])

{

DFS(G,p->endver,visit);}}

6、图的广度优先遍历:

void BFS(Graph* G,int v,int visit[])

三、主要代码:

#include

#define max 100

int visited[max];

typedef struct ArcNode

{

int adjvex;

struct ArcNode *nextarc;

}ArcNode;

typedef struct VNode

{

char data;

ArcNode *firstarc;

}VNode,AdjList[max];

typedef struct

{

AdjList vertices;

int vexnum,arcnum;

}ALGraph;

typedef struct QNode

{ char data;

struct QNode *next;

}QNode,*QueuePtr;

typedef struct

{ QueuePtr front;

QueuePtr rear;

}LinkQueue;

int InitQueue(LinkQueue &Q)

{ Q.front=Q.rear=new QNode;

if(!Q.front)return 0;

Q.front->next=NULL;

return 1;

}

int QueueEmpty(LinkQueue &Q)

{

if(Q.front==Q.rear)return 1;

else

return 0;

}

int EnQueue(LinkQueue &Q,char e)

{ QNode *p;

p=new QNode;

if(!p)return 0;

p->data=e;

p->next=NULL;

Q.rear->next=p;

Q.rear=p;

return 1;

}

char DeQueue(LinkQueue &Q,int &e)

{ QNode *p;

if(Q.front==Q.rear)return 0;

p=Q.front->next;

e=p->data;

Q.front->next=p->next;

if(Q.rear==p)Q.rear=Q.front;

delete(p);

return 1;

}

int LocateVex(ALGraph G,int v)

{

int i;

for(i=0;v!=G.vertices[i].data&&i=G.vexnum) return -1;

return i;

}

void CreatGraph(ALGraph &G)

{

int k,i,j;//m,n,

ArcNode *p,*q;

cout<<"请输入定点数:";

cin>>G.vexnum;//输入顶点数

cout<<"请输入边数:";

cin>> G.arcnum;//输入边数

char v1,v2;

cout<<"输入顶点信息:";

for(i=0;i

{

cin>>G.vertices[i].data;//顶点信息

G.vertices[i].firstarc=NULL;

}

cout<<"请输入边的信息"<

for(k=0;k

{

cin>>v1>>v2;

i=LocateVex(G,v1);

j=LocateVex(G,v2);

p=new ArcNode;

q=new ArcNode;

p->adjvex=j;

p->nextarc=G.vertices[i].firstarc;//链入第m号链表的前端

G.vertices[i].firstarc=p;

q->adjvex=i;

q->nextarc=G.vertices[j].firstarc;

G.vertices[j].firstarc=q;

}

}

int FirstAdjVex(ALGraph G,int v)

{

if(!G.vertices[v].firstarc) return 0;

return G.vertices[v].firstarc->adjvex;

}

int NextAdjVex(ALGraph G,int v,int w)

{//返回v中相对于w的下一个邻接顶点

ArcNode *p;

p=G.vertices[v].firstarc;

while(p&&p->adjvex!=w) p=p->nextarc;

if(!p->nextarc) return -1;

else return p->nextarc->adjvex;

}

void DFS(ALGraph G,int v)

{

int w;

visited[v]=1;

cout<

for(w=FirstAdjVex(G,v);w>=0;w=NextAdjVex(G,v,w))

if(!visited[w]) DFS(G,w);//对v的尚未访问的邻接顶点递归调用DFS }

void BFSTraverse(ALGraph G )

{

int v,w;

LinkQueue Q;

for(v=0;v

visited[v]=0;

InitQueue(Q);//置空的辅助队列Q

for(v=0;v

if(!visited[v])

{//v尚未访问

visited[v]=1;

cout<

EnQueue(Q,v);//v入队

while(!QueueEmpty(Q))

{

DeQueue(Q,v);//队头元素出队并置为v

for(w=FirstAdjVex(G,v);w>=0;w=NextAdjVex(G,v,w))

if(!visited[w])

{//w为u的尚未访问的邻接顶点

visited[w]=1;//visit(w);

cout<

EnQueue(Q,w);

}//if

}//while

}//if

}

int main()

{

ALGraph G;

int v;

CreatGraph(G);

int n,i;

char ch;

cout<<"请输入起始搜索点:";

cin>>ch;

for(i=0;i

n=LocateVex(G,ch);

cout<<"深度优先遍历:"<

DFS(G,n);

cout<

cout<<"广度优先遍历:"<

BFSTraverse(G);

return 0; }

四、程序的编译和运行:

依次输入测试数据:

定点为abcde,边信息为ab ac ad cd bc bd

输出结果如下

图的遍历操作实验报告

. .. . .. .. 实验三、图的遍历操作 一、目的 掌握有向图和无向图的概念;掌握邻接矩阵和邻接链表建立图的存储结构;掌握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])

实验一Linux基本操作实验报告

实验一 Linux基本操作 一.实验目的: 1. 二.实验环境: 虚拟机+Red Hat Enterprise Server 5.0 三.实验内容: 根据以下的文字提示,调用相应的命令来完成,记录相应的运行结果。一)用户和组基本操作 1.添加一个user01用户,家目录为/home/sub2,并设置密码 2.添加一个group1 组 3.将user01用户添加到group1组中 4.修改group1组名称为group2 5.修改user01的家目录为/home/user01 6.判断/etc/password这个目录是否包含user01这个用户 7.修改user01的shell为/bin/tcsh 8.添加一个group3组,把user01和root用户都添加到该组

https://www.doczj.com/doc/008786873.html,er01用户从group2组切换到group3组 10.设置user01的密码在2012-5-20过期 11.把/home/user01目录所属的组修改为group3 12.删除user01帐号 13.查看内核版本号 二)进程管理 1.运行cat命令:vi test,输入若干字符如this is a example,挂起vi进程 2.显示当前所有作业 3.将vi进程调度到前台运行

4.将vi进程调度到后台并分别用kill/pkill/killall命令结束该该进程。 三)磁盘管理 1.通过fdisk 将为硬盘增加一个分区(主分区或者逻辑分区)。 2.并格式化ext3系统,

3.检测分区是否有坏道 4.检测分区的完整性 5.加载分区到/mnt目录(或者其他分区)下,并拷贝一些文件到该目录下 6.(选做)为test用户设置磁盘配额(软限制和硬限制参数自行设定) 7.退出/mnt目录后卸载该分区 8.用du查看/usr目录的大小

人教版数学四年级上册第七单元第1课时 条形统计图(1)

第7单元条形统计图 第1课时条形统计图(1) [教学内容] 教材第94页例1。 [教学目标] 1.使学生体验数据的收集、整理、描述和分析的过程,初步了解统计的意义,会用简单的方法整理数据。 2.使学生初步认识并绘制条形统计图(1格表示1个单位)。 3.能正确分析条形统计图,培养学生观察、分析的能力。 [重点和难点] 重点:学会初步收集和整理数据,初步认识条形统计图(1格代表1个单位)。 难点:能用条形图表示数,并能根据统计图回答问题。 一、谈话导入 师:同学们,我们以前学过用简单的方法收集和整理数据,学会了用画“正”字的方法记录数据,今天这节课我们一起走进第七单元统计,来认识新朋友——条形统计图。 (板书课题:条形统计图) 二、教学新课

课件出示例1的条形统计图。 1.向学生说明这就是条形统计图,用涂了颜色的竖条来表示每种天气各有多少天。 2.提问:仔细观察这个统计图,你能知道些什么信息? 小组内讨论交流。 3.指名回答,教师将学生所知道的信息进行整理归纳。 4.比较。 (1)刚才画图的方法和条形统计图相比,哪种表示得更清楚? (2)条形图和统计表各有什么特点? 5.归纳。 条形统计图左边竖线上标出的数据表示的是天数(1格表示1天),下边横线上标出的是几种天气。每种天气所对的涂色的竖条占了几格就表示几天,也可以看相对的涂色竖条最上面对着左边的数字几就是几天,从条形统计图上不但能看出具体的数据,还能看出谁多谁少。 6.小结条形统计图的画法。 步骤:①画横轴、纵轴。 ②横轴上标所要统计的具体内容,纵轴上标数字。 ③根据统计结果画直条。 三、巩固练习 1.教科书第95页“做一做”。 对全班同学出生月份的调查,先引导学生收集数据、整理和记录数据,再把整理好的数据用条形图表示出来,学生做完后,集体讲评。

图的遍历实验报告

实验四:图的遍历 题目:图及其应用——图的遍历 班级:姓名:学号:完成日期: 一.需求分析 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.了解制作条形统计图的一般步骤,初步学会制作条形统计图. 教学重点 掌握制条形统计图的一般步骤,能看图准确地回答问题. 教学难点 制条形统计图的第(2)、(3)步,即分配条形的位置和决定表示降水量多少的单位长度. 教学步骤 一、铺垫孕伏. 我们学过简单的数据整理,统计数据除了可以分类整理制成统计表外,还可以制成统 计图,用统计图表示有关数量之间的关系,比统计表更加形象、具体,使人一目了然,印象深刻.常用的统计图有条形、拆线和扇形统计图(用投影器逐一显示)五年级的时候,我们已初步认识了条形图,这节课我们继续学习“条形统计图”.(板书课题:条形统计图) 二、探求新知. (一)介绍条形统计图的意义及特点. 意义:条形统计图是用一个单位长度表示一定数量,根据数量的多少画出长短不同的 直条,然后把这些直条按照一定的顺序排列起来. 特点:从图中很容易看出各种数量的多少.

教师提问: l、图中统计的内容是什么? 2、图中画有两条互相垂直的射线,请你看看水平射线和垂直射线分别表示什么? 3、每个车间多少人?哪个车间人数最多?哪个车间人数最少? (二)教学制作条形统计图的方法. 1、出示例1 某地1996~2000年的年降水量如下表. 根据上表的数据,制成条形统计图. 2、教学制作方法,师边示范边讲解. ①根据图纸的大小,画出两条互相垂直的射线. 教师讲述:要制的统计图有年份和降水量两方面的内容,需要用两条射线来表示. 先画一条水平的射线(向右)表示年份,再画一条与水平射线垂直的射线表示降水量. 教师说明:水平射线下面及垂直射线左面都要留有一条空白,因为水平射线下面要注明每个直条所表示的内容,垂直射线旁要注明各直条的数据,两条射线不能画在图纸的中间部位,因为那样会因高度不够画不下,或排不下五个直条. ②在水平射线上适当分配条形的位置,确定直条的宽度和间隔. 教师提问:例1的统计表中有几个年份?那么图中要画几个直条?

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

浙江大学城市学院实验报告 课程名称数据结构 实验项目名称实验十三/十四图的基本操作 学生姓名专业班级学号 实验成绩指导老师(签名)日期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 药理实验基本操作 一、试验报告的撰写 实验报告要求结构完整、条理分明、用词规范、详略得当。 内容包含:试验题目、试验目的、实验原理、试验材料、试验方法、实验结果、讨论、结论、注意事项。 二、药理学实验设计的三大原则 重复、随机、对照。 三、注射器的使用方法 试验目的:掌握注射器的使用方法 试验材料: 器材:注射器 1 ml、2 ml、5 ml;针头:4号、5号、6号。一般小鼠皮下、腹腔、肌肉注射用5.0-6号针头,静脉注射用4.5号或5号针头,口服灌胃用12号针头;大鼠与兔子用16号针头。 药品:生理盐水 试验方法: 1、安装针头:选择适宜号数的针头,安装在针管的管嘴上,拧紧,要求针尖斜面与针管刻度面一致。 2、吸取药液:将针尖浸入药液中,左手持针管,右手提抽针芯,缓慢吸取药液至需要量。 3、排尽气泡:将吸入药液的注射器垂直向上,先抽一下针芯,使针头内的药液进入针管,并使针管内的空气汇集在药液上面,然后轻轻推动针芯,使空气自针头排出,直至溢出药液为止。若遇小气泡不易排出时,可再抽入空气少许,使该微量气泡汇合于抽入的空气中,然后一并排出(注意:避免将针头朝着自己或他人,防止液体喷射到人身上)。 4、持注射器: (1)用右手拇、中二指持注射器(针管的刻度面朝上以便观察注入的药液量)。食指固定在针头与针管接头处;进针后,用食指夹住针管,拇指推动针芯注药。 (2)用右手拇、中二指持注射器(针管的刻度面朝上以便观察注入的药液量)。无名指固定在针头和针管接头处,食指推动针芯注药。 注意事项: 1、选择适宜的注射器及针头; 2、按接针头时须旋转90度; 3、针头斜面与针管刻度面一致; 4、排尽气泡; 5、注射器针头按接处需用食指或无名指固定;

数据结构实验报告图实验

邻接矩阵的实现 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('原图像'); 结果如图所示:

实验一 实验基本操作规范

实验一实验基本操作规范 一、实验目的 1.了解实验室的基本要求、实验室安全及防护知识 2.熟悉常用玻璃仪器及洗涤与干燥 3.掌握称取、吸取和量取的操作规范 4.掌握移液管、容量瓶、滴定管的正确使用方法 二、实验器材 (此部分要求同学们自己写,挑主要的写即可) 三、常用玻璃仪器(此部分不用写在实验报告) 化学实验中的玻璃仪器分为普通玻璃仪器和标准磨口仪器。 1. 普通玻璃仪器 常见的普通玻璃仪器有试管、烧杯、烧瓶等,见图1-1所示。 图1-1 常用普通玻璃仪器 2. 标准磨口仪器 化学实验中常用的标准磨口仪器如图1-2所示。

短颈圆底烧瓶斜三颈烧瓶梨形烧瓶蒸馏头标准接头 克氏蒸馏头二口接管接受管真空接受管搅拌器套管 温度计套管直形冷凝管球形冷凝管蛇形冷凝管 图1-2 标准磨口仪器 四、玻璃仪器的洗涤与干燥 (实验报告此部分序号为“三”,抓自己认为重点的写,不需要全部照抄) 1. 玻璃仪器的洗涤 使用洁净的仪器是实验成功的重要条件,也是化学工作者应有的良好习惯。洗净的仪器在倒置时,器壁应不挂水珠,内壁应被水均匀润湿,形成一层薄而均匀的水膜。如果有水珠,说明仪器还未洗净,需要进一步进行清洗。 (1) 一般洗涤 仪器清洗的最简单的方法是用毛刷蘸上去污粉或洗衣粉擦洗,再用清水冲洗干净。洗刷时,不能用秃顶的毛刷,也不能用力过猛,否则会戳破仪器。有时去污粉的微小粒子粘服在器壁上不易洗去,可用少量稀盐酸摇洗一次,再用清水冲洗。如果对仪器的洁净程度要求较高时,可在用去离子水或蒸馏水进行淋洗 次,用蒸馏水淋洗仪器时,一般用洗瓶进行喷洗,这样可节约蒸馏水和提高洗涤效果。 (2) 铬酸洗液洗涤

数字图像处理实验报告

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

条形统计图的制作步骤

条形统计图的制作步骤 (1)根据统计资料整理数据; (2)画出纵轴和横轴:纵轴高度的确定,要确定一个单位长度来表示一定的数量,横轴长度的确定,要根据纸的大小、字数的多少来定; (3)画直条、条形的宽度要一致,条形之间的间隔要相等; (4)制复式条形统计图,每一组中有两个直条,这两个直条应该使用不同的线纹或颜色加以区别,并在制图日期下面画上图例,注意各直条表示的意义; (5)写上总标题、制图日期及数量单位。 例(1):单式条形统计 图上冷冰箱厂去年1~3季度冰箱产量如下:一季度570台,二季度640台,三季 度720台。制成条形统计图。 上冷冰箱厂去年1~3季度生产情况统计图: 例(2):复式条形统计科 立红小学各年级男、女生人数(单位:人)。 根据以上设计的统计表制成复式条形统计图。

猎狗探长巧查贼穴 大盗贼狐狸作案后逃往花城,住进了百草园宾馆。百草园宾馆是一幢8层的方形大楼,客人全部住在大楼南侧。每层的房https://www.doczj.com/doc/008786873.html,间都是一样的各有8个房间,一共有64个房间。狐狸就住在其中的一个房间里。 猎狗探长得到消息,立刻带领猴侦探来到百草园宾馆,并问服务员:“狐狸住在哪个房间?” “对比起,先生,我只能用“是”或“不是”来回答您的问题。”服务员不冷不热地回答说。 猎狗探长说:“我只问你六个问题。” “它的房间在1—4楼吗?”“不是。” “那么在5—8楼的1—4号房间吗?”“是的。” “在7、8楼吗?”“是。” “在7、8楼的1、2号房间吗?”“不是。” “在8楼吗?”“是。” “在8楼的3号房间吗?”“不是。” 猎狗探长说:“谢谢,我的提问结束了。”转身对身后的猴侦探说:“走,到8楼4号房间去捉拿罪犯。” 果然过了一会盗贼在8楼的4号房间被抓获。 统计的A~Z A-Application (应用) 要懂得应用统计的观念,学统计绝不是仅止于课堂上标准答案的追求,必须能应用在各种状况工作中。 B-Bias (偏误) 运用统计,必须避免偏误,特别是在抽样的时候,因为一旦抽样时就带有偏误,那么后

图的基本操作 实验报告

实验五图的基本操作 一、实验目的 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;

实验一 Matlab基本操作(2016)

实验一 MATLAB 基本操作 一、实验目的 1. 学习和掌握MA TLAB 的基本操作方法 2. 掌握命令窗口的使用 3. 熟悉MATLAB 的数据表示、基本运算 二、实验内容和要求 1. 实验内容 1) 练习MATLAB7.0或以上版本 2) 练习矩阵运算与数组运算 2. 实验要求 1) 每位学生独立完成,交实验报告 2) 禁止玩游戏! 三、实验主要软件平台 装有MATLAB7.0或以上的PC 机一台 四、实验方法、步骤及结果测试 1. 实验方法:上机练习。 2. 实验步骤: 1) 开启PC ,进入MA TLAB 。 2) 使用帮助命令,查找sqrt 函数的使用方法 答: help sqrt 3) 矩阵、数组运算 a) 已知 ??????????=987654321A ,???? ??????=963852741B ,求)2()(A B B A -?+ 答: A=[1, 2, 3; 4, 5, 6; 7, 8, 9]; B=[1, 4, 7; 2, 5, 8; 3, 6, 9]; (A+B)*(2*B-A) b) 已知?? ????-=33.1x ,??????=π24y ,求T xy ,y x T c) 已知??????????=987654321A ,???? ??????=300020001B ,求A/B, A\B. d) 已知???? ??????=987654321A ,求:(1) A 中第三列前两个元素;(2) A 中所有第二行元素;(3) A 中四个角上的元素;(4) 交换A 的第1、3列。(5) 交换A 的第1、2行。(6) 删除A 的第3列。

e) 已知[]321=x ,[]654=y ,求:y x *.,y x /.,y x \.,y x .^, 2.^x ,x .^2。 f) 给出x=1,2,…,7时,x x sin 的值。 3)常用的数学函数 a )随机产生一个3x3的矩阵A ,求:(1) A 每一行的最大、最小值,以及最大、最小值所在的列;(2) A 每一列的最大、最小值,以及最大、最小值所在的行;(3) 整个矩阵的最大、最小值;(4) 每行元素之和;(5) 每列元素之和;(6) 每行元素之积;(7) 每列元素之积。 b) 随机产生两个10个元素的向量x ,y 。(1) 求x 的平均值、标准方差。(2) 求x ,y 的相关系数。(3)对x 排序,并记录排序后元素在原向量中的位置。 4) 字符串操作函数 建立一个字符串向量(如‘ABc123d4e56Fg9’),然后对该向量做如下处理: (1) 取第1~5个字符组成的子字符串。 (2) 将字符串倒过来重新排列。 (3) 将字符串中的小写字母变成相应的大写字母,其余字符不变。 (4) 统计字符串中小写字母的个数。

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

一.实验目的 熟悉图的存储结构,掌握用单链表存储数据元素信息和数据元素之间的 关系的信息的方法,并能运用图的深度优先搜索遍历一个图,对其输出。 二.实验原理 深度优先搜索遍历是树的先根遍历的推广。假设初始状态时图中所有顶 点未曾访问,则深度优先搜索可从图中某个顶点 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)掌握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进行如图所示的分段线形变换处理,试比较与直方图均衡化处理的异同。

相关主题
文本预览
相关文档 最新文档