文档库 最新最全的文档下载
当前位置:文档库 › 实验2 LabVIEW图形

实验2 LabVIEW图形

实验2  LabVIEW图形
实验2  LabVIEW图形

实验2 LabVIEW图形、数组、簇编程实验(设计型)

1.实验目的

(1)学习如何创建数组和簇,掌握它们的区别以及相应的操作。

(2)学习并掌握波形图和波形图表的使用,了解它们的区别。

2.实验设备

安装有LabVIEW8.2的计算机

3.实验内容

(1)利用For循环建立一个一维数组并给出数组中的元素个数;建立一个二维数组给出数组中元素个数,并求出二维数组中元素的最大值、最小值。

(2)产生两个一维数组,分别组成一个二维数组和一个簇,然后用波形图显示二维数组,用XY图显示簇。

(3)设计一个VI来测量温度,每隔0.25秒测一次,共测定10秒,温度范围为0~100度。在数据采集过程中,VI将在波形图表上实时地显示测量结果。在采集过程结束后,在波形图上画出数据波形曲线,并算出温度的最大值,最小值和平均值。

4.实验原理

(1)数组

数组是一些具有相同类型的元素组成的集合。数组包含两方面的内容:元素和维数。数组中的元素可以是数字、布尔、字符、路径、波形和簇等数据类型。(2)簇

簇相当于一个容器,容器中的元素可以是各种不同的数据类型。也就是说,可以在一个簇中放置控制选板上的各种控件,如数字控件、布尔控件、数组控件等,但是不能将输入控件和输出控件同时放入其中。

(3)图形子选板

LabVIEW8.2的图形子选板提供了完成各种图形显示功能的控件。按照处理测量数据的方式和显示过程的不同,图形显示控件主要分成两大类,一类为图形,另一类称为图表。这两类控件都是用于图形化显示采集或生成的数据。图形和图表的区别在于各自不同的数据显示和更新方式。含有图形的VI通常先将数据采

集到数组中,再将数据绘制到图形中。该过程类似于电子表格,即先存储数据再生成数据的曲线。数据绘制到图形上时,图形不显示之前绘制的数据而只显示当前的新数据。图形一般用于连续采集数据的快速过程。与图形相反,图表将新的数据点追加到已显示的数据点上以形成历史记录。在图表中,可结合先前采集到的数据查看当前读数或测量值。当图表中新增数据点时,图表将会滚动显示,即图表右侧出现新增的数据点,同时旧数据点在左侧消失。图表一般用于每秒只增加少量数据点的慢速过程。

5.实验步骤

(1)利用For循环建立一个一维数组并给出数组中的元素个数;建立一个二维数组给出数组中元素个数,并计算出最大、最小值。

①打开一个新的前面板,在前面板上,创建包含一维数组、二维数组及显示数组大小、二维数组最大值、最小值等指示器。

②在程序框图中,利用For循环和“随机数(0-1)”函数创建一维数组和二维数组。

③利用“数组大小”函数求1维和2维数组的大小;利用“数组最大值与最小值”函数求出输入数组中元素的最大值、最小值。

(2)产生两个一维数组,分别组成一个二维数组和一个簇,然后用波形图显示二维数组,用XY图显示簇。

①打开一个新的前面板,在前面板上,创建包含一维数组大小输入控件、两个一维数组显示器以及波形图和XY图显示器。

②在程序框图中,利用For循环和“随机数(0-1)”函数创建一个一维数组,利用For循环和For循环的重复端口i创建另一个一维数组。

③利用“创建数组”函数将两个一维数组组成二维数组并送波形图显示;利用“捆绑”函数将两个一维数组捆绑后送XY图显示。

(3)利用随机数产生器乘以100来模拟0~100度的温度,利用数值函数和比较函数计算最大值、最小值、平均值,并用波形图和波形图表两种方式显示测量结果。

6.实验结果分析

(1)运行程序,观察波形图和XY图的区别。

答:波形图用于显示测量值为均匀采集的一条或多条曲线

XY图是通用的笛卡尔儿绘图对象,用于绘制多值函数。

(2)簇和数组的区别是什么?

答:(1)数组

数组是一些具有相同类型的元素组成的集合。数组包含两方面的内容:元素和维数。数组中的元素可以是数字、布尔、字符、路径、波形和簇等数据类型。(2)簇

簇相当于一个容器,容器中的元素可以是各种不同的数据类型。也就是说,可以在一个簇中放置控制选板上的各种控件,如数字控件、布尔控件、数组控件等,但是不能将输入控件和输出控件同时放入其中。

(3)波形图和波形图表的区别是什么?

答:波形图用于显示测量值为均匀采集的一条或多条曲线

波形图表是显示一条或多条曲线的特殊数值显示控件

计算机图形学实验报告

计算机图形学 实验报告 姓名:谢云飞 学号:20112497 班级:计算机科学与技术11-2班实验地点:逸夫楼507 实验时间:2014.03

实验1直线的生成 1实验目的和要求 理解直线生成的原理;掌握典型直线生成算法;掌握步处理、分析 实验数据的能力; 编程实现DDA算法、Bresenham中点算法;对于给定起点和终点的 直线,分别调用DDA算法和Bresenham中点算法进行批量绘制,并记 录两种算法的绘制时间;利用excel等数据分析软件,将试验结果编 制成表格,并绘制折线图比较两种算法的性能。 2实验环境和工具 开发环境:Visual C++ 6.0 实验平台:Experiment_Frame_One(自制平台)。 本实验提供名为 Experiment_Frame_One的平台,该平台提供基本 绘制、设置、输入功能,学生在此基础上实现DDA算法和Mid_Bresenham 算法,并进行分析。 ?平台界面:如错误!未找到引用源。所示 ?设置:通过view->setting菜单进入,如错误!未找到引 用源。所示 ?输入:通过view->input…菜单进入.如错误!未找到引用 源。所示 ?实现算法: ◆DDA算法:void CExperiment_Frame_OneView::DDA(int X0, int Y0, int X1, int Y1) Mid_Bresenham法:void CExperiment_Frame_OneView::Mid_Bresenham(int X0, int Y0, int X1, int Y1)

3实验结果 3.1程序流程图 1)DDA算法流程图:开始 定义两点坐标差dx,dy,以及epsl,计数k=0,描绘点坐标x,y,x增 量xIncre,y增量yIncre ↓ 输入两点坐标x1,y1,x0,y0 ↓ dx=x1-x0,dy=y1-y0; _________↓_________ ↓↓ 若|dx|>|dy| 反之 epsl=|dx| epsl=|dy| ↓________...________↓ ↓ xIncre=dx/epsl; yIncre=dy/epsl ↓ 填充(强制整形)(x+0.5,y+0.5); ↓←←←← 横坐标x+xIncre; 纵坐标y+yIncre; ↓↑ 若k<=epsl →→→k++ ↓ 结束 2)Mid_Bresenham算法流程图开始 ↓ 定义整形dx,dy,判断值d,以及UpIncre,DownIncre,填充点x,y ↓ 输入x0,y0,x1,y1 ______↓______ ↓↓ 若x0>x1 反之 x=x1;x1=x0;x0=x; x=x0;

虚拟仪器LabVIEW实验报告

实验报告一 课程名称虚拟仪器 实验项目熟悉编程环境与基本编程操作 实验仪器计算机 系别: guangdian 专业: 班级/学号: 学生姓名: 实验日期:2011年3月 成绩: _____________________ 指导教师: ____________________

实验一熟悉编程环境与基本编程操作 一、实验目的 1.理解LabVIEW的运行机制,熟悉LabVIEW编程环境。 2.掌握基本编程操作,包括VI程序的创建、编辑、运行与调试。 3.理解LabVIEW模块化编程思想,掌握子VI的创建、编辑及调用。 二、实验仪器及材料 主要设备有计算机, LabVIEW8.5软件。 三、实验内容及步骤 教材第82—83页练习4.2,创建VI后保存为Thermometer.vi。 1.打开一个新的前面板 2.从控件菜单选择一个温度计放到前面板 3.在温度计上用右键单击设定一个精确的温度值,选择Visible》Digital Display 4.将VI保存为Thermometer.vi 教材第107—108页练习5.2,打开练习4.2所创建的VI,将其转变成一个子VI。 1打开4.2创建的Thermometer.vi 2.为该VI创建一个图标,从VI图标窗格选择Edit Icon…,单击OK返回主VI

3从图标弹出菜单中选择Show Connector创建连接器。 4将端子指派给温度指示器,使用Writing工具单击连接器端子,端子就会变成黑色,然后单击温度计指示器。 5在温度计指示器的弹出菜单选择Description and Tip…为温度指示器编制文档 6选择File》Save将修改保存。 四、收获与体会

LabVIEW基础实验(1)

实验一LabVIEW基础实验(1) 一、实验目的 1、熟悉LabVIEW开发环境,包括前面板、程序框图、工具选板、控件选板、函数面板等。 2、熟悉LabVIEW图形化编程的基本操作,掌握创建、编辑、运行调试LabVIEW 程序的方法和步骤。 3、掌握调用子VI的方法。 4、初步熟悉LabVIEW程序结构。 二、实验内容 1、自学文档LabVIEW入门教程第一部分前4节内容,帮助熟悉LabVIEW开发环境。 2、创建一个VI,计算两个数的算术平均数和几何平均数,保存为js.vi。(1)调试上述VI程序: 高亮显示执行过程;保存连线值;单步执行;设置探针;设置断点。 (2)创建一个新的VI程序,在程序中调用js.vi子程序,实现相同的功能。3、利用for循环结构实现0到99之间所有偶数的和,并且学习移位寄存器和反馈节点的相互替换。 4、分别利用while循环和for循环结构求解n!。(0-99) 三、实验原理 1、熟悉LabVIEW开发环境 LabVIEW是一个基于图形化编程方法的虚拟仪器软件开发环境。它包括了基于图形化程序设计的方法(G语言)、调试、运行、发布等等一系列环节。也就是说:LabVIEW提供了“三件套”的设计、调试、运行、发布等环境,从而完整的提供了虚拟仪器的图形化设计平台。 2、LabVIEW图形化编程的基本操作 1. 找出语法错误 如果一个VI程序存在语法错误,则在面板工具条上的运行按钮将会变成一个

折断的箭头,表示程序不能被执行。这时这个按钮被称作错误列表。点击它,则LabVIEW弹出错误清单窗口,点击其中任何一个所列出的错误,选用Find功能,则出错的对象或端口就会变成高亮。 2. 设置执行程序高亮 在LabVIEW的工具条上有一个画着灯泡的按钮,这个按钮叫做“高亮执行”按钮上。点击这个按钮使该按钮图标变成高亮形式,再点击运行按钮,VI程序就以较慢的速度运行,没有被执行的代码灰色显示,执行后的代码高亮显示,并显示数据流线上的数据值。这样,你就可以在根据数据的流动状态跟踪程序的执行。 3. 断点与单步执行 为了查找程序中的逻辑错误,你也许希望框图程序一个节点一个节点地执行。使用断点工具可以在程序的某一地点中止程序执行,用探针或者单步方式查看数据。使用断点工具时,点击你希望设置或者清除断点的地方。断点的显示对于节点或者图框表示为红框,对于连线表示为红点。当VI程序运行到断点被设置处,程序被暂停在将要执行的节点,以闪烁表示。按下单步执行按钮,闪烁的节点被执行,下一个将要执行的节点变为闪烁,指示它将被执行。你也可以点击暂停按钮,这样程序将连续执行直到下一个断点。 4. 探针 你可以用探针工具来查看当框图程序流经某一根连接线时的数据值。从Tools工具模板选择探针工具,再用鼠标左建点击你希望放置探针的连接线。这时显示器上会出现一个探针显示窗口。该窗口总是被显示在前面板窗口或框图窗口的上面。在框图中使用选择工具或连线工具,在连线上点击鼠标右键,在连线的弹出式菜单中选择“探针”命令,同样可以为该连线加上一个探针。 四、实验程序及实验步骤 1.创建一个VI,计算两个数的算术平均数和几何平均数,保存为js.vi。 (1)调试上述VI程序: ①保存连线值;;

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

数据结构实验报告 实验:图的遍历 一、实验目的: 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;

实验8MATLAB图形用户界面设计实验报告

实验8 MATLAB图形用户界面设计实验报告实验报告 课程名称:MATLAB应用成绩: 实验项目名称:MATLAB图形用户界面设计实验时间:11.6 指导教师(签名): 班级:XXXXX 姓名:XXXXX 学号:XXX 实验目的: 1. 熟悉MATLAB的菜单设计方法 2. 熟悉MATLAB的主要控件使用方法 3. 熟悉MATLAB的GUI设计流程 实验环境: MATLAB 7.1 实验内容及过程: 简单计算器的设计:在MATLAB GUI的实验环境中,通过MATLAB图形用户界面设计的方法,设计一个 简单的计算器,以实现简单数据的退出、清屏、删除、四则运算等基本功能。 实验过程、结果及分析:

计算器代码: function varargout = jsq(varargin) gui_Singleton = 1; gui_State = struct('gui_Name', mfilename, ... 'gui_Singleton', gui_Singleton, ... 第 1 页共 6 页 'gui_OpeningFcn', @jsq_OpeningFcn, ... 'gui_OutputFcn', @jsq_OutputFcn, ... 'gui_LayoutFcn', [] , ... 'gui_Callback', []); if nargin && ischar(varargin{1}) gui_State.gui_Callback = str2func(varargin{1}); end if nargout [varargout{1:nargout}] = gui_mainfcn(gui_State, varargin{:}); else

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

实验项目名称:图的遍历 一、实验目的 应用所学的知识分析问题、解决问题,学会用建立图并对其进行遍历,提高实际编程能力及程序调试能力。 二、实验容 问题描述:建立有向图,并用深度优先搜索和广度优先搜素。输入图中节点的个数和边的个数,能够打印出用邻接表或邻接矩阵表示的图的储存结构。 三、实验仪器与设备 计算机,Code::Blocks。 四、实验原理 用邻接表存储一个图,递归方法深度搜索和用队列进行广度搜索,并输出遍历的结果。 五、实验程序及结果 #define INFINITY 10000 /*无穷大*/ #define MAX_VERTEX_NUM 40 #define MAX 40 #include #include #include #include

typedef struct ArCell{ int adj; }ArCell,AdjMatrix[MAX_VERTEX_NUM][MAX_VERTEX_NUM]; typedef struct { char name[20]; }infotype; typedef struct { infotype vexs[MAX_VERTEX_NUM]; AdjMatrix arcs; int vexnum,arcnum; }MGraph; int LocateVex(MGraph *G,char* v) { int c = -1,i; for(i=0;ivexnum;i++) if(strcmp(v,G->vexs[i].name)==0) { c=i; break;} return c;} MGraph * CreatUDN(MGraph *G)//初始化图,接受用户输入{ int i,j,k,w; char v1[20],v2[20]; printf("请输入图的顶点数,弧数:"); scanf("%d%d",&G->vexnum,&G->arcnum);

Java基础实验报告-图形用户界面设计

南京工程学院 实验报告 课程名称 JAVA基础 实验项目名称图形用户界面设计 实验学生班级 实验学生姓名 学号 同组学生姓名 实验时间 实验地点 实验成绩评定 指导教师签字年月日

一、实验目的和要求 1.掌握Java Swing组建的使用方法,包括窗口、框架、对话框、面板、文本编辑框、按钮、组合框等多种布局方式,掌握窗口菜单和快捷菜单设计方式。 2.理解委托时间处理模型,掌握不同组件、不同事件的事件处理方法,设计出能够响应事件的Java图形用户界面。 3.熟悉在组件上绘图的方法。 二、实验题目 用表格存储并显示个人所得税税率表,给定一个月收入值,计算应缴的个人所得税。 三、实验方法与步骤(需求分析、算法设计思路、流程图等) 算法设计思路:本次实验题目为计算个人所得税,所以本人从网上找到了国家最新的税收政策,以下为截图:

因此,我设计了以下核心算法 public void actionPerformed(ActionEvent e) { if(e.getSource()==button_b) { double wage=Double.parseDouble((String)text_wage.getText()); double tax = 0; if(wage<=3500) tax=0; if(wage>3500&&wage<=5000) tax=(wage-3500)*0.03; if(wage>5000&&wage<=8000) tax=(wage-3500)*0.1-105; if(wage>8000&&wage<=12500) tax=(wage-3500)*0.2-555; if(wage>12500&&wage<=38500)

数据结构实验 - 图的储存与遍历

一、实验目的 掌握图这种复杂的非线性结构的邻接矩阵和邻接表的存储表示,以及在此两种常用存储方式下深度优先遍历(DFS)和广度优先遍历(BFS)操作的实现。 二、实验内容与实验步骤 题目1:对以邻接矩阵为存储结构的图进行DFS 和BFS 遍历 问题描述:以邻接矩阵为图的存储结构,实现图的DFS 和BFS 遍历。 基本要求:建立一个图的邻接矩阵表示,输出顶点的一种DFS 和BFS 序列。 测试数据:如图所示 题目2:对以邻接表为存储结构的图进行DFS 和BFS 遍历 问题描述:以邻接表为图的存储结构,实现图的DFS 和BFS 遍历。 基本要求:建立一个图的邻接表存贮,输出顶点的一种DFS 和BFS 序列。 测试数据:如图所示 三、附录: 在此贴上调试好的程序。 #include #include #include ????????????????=010******* 010101000100010A

#define M 100 typedef struct node { char vex[M][2]; int edge[M ][ M ]; int n,e; }Graph; int visited[M]; Graph *Create_Graph() { Graph *GA; int i,j,k,w; GA=(Graph*)malloc(sizeof(Graph)); printf ("请输入矩阵的顶点数和边数(用逗号隔开):\n"); scanf("%d,%d",&GA->n,&GA->e); printf ("请输入矩阵顶点信息:\n"); for(i = 0;in;i++) scanf("%s",&(GA->vex[i][0]),&(GA->vex[i][1])); for (i = 0;in;i++) for (j = 0;jn;j++) GA->edge[i][j] = 0; for (k = 0;ke;k++) { printf ("请输入第%d条边的顶点位置(i,j)和权值(用逗号隔开):",k+1); scanf ("%d,%d,%d",&i,&j,&w); GA->edge[i][j] = w; } return(GA); } void dfs(Graph *GA, int v) { int i; printf("%c%c\n",GA->vex[v][0],GA->vex[v][1]); visited[v]=1;

Java图形用户界面实验报告

西安邮电大学 (计算机学院) 课内实验报告 实验名称:图形用户界面 专业名称:计算机科学与技术 班级:计科1405班 学生姓名:高宏伟 学号:04141152 指导教师:刘霞林 实验日期:一、实验目的 了解图形用户界面基本组件窗口、按钮、文本框、选择框、滚动条等的使用方法,了解如何使用布局管理器对组件进行管理,以及如何使用Java 的事件处理机制。 二、实验要求 1. 掌握使用布局管理器对组件进行管理的方法。

2. 理解Java 的事件处理机制,掌握为不同组件编写事件处理程序的方法。 3. 掌握编写独立运行的窗口界面的方法。 4. 掌握组件的使用方法。 5. 了解对话框的使用方法。 三、实验内容 (一)算术测试。 实验要求: 编写一个算术测试小软件,用来训练小学生的算术能力。程序由3个类组成,其中Teacher类对象负责给出算术题目,并判断回答者的答案是否正确; ComputerFrame类对象负责为算术题目提供视图,比如用户可以通过 ComputerFrame类对象提供的GUI界面看到题目,并通过该GUI界面给出题目的答 案;MainClass是软件的主类。 程序模板: public class Teacher { int numberOne,numberTwo; String operator=""; boolean right; public int giveNumberOne(int n) { numberOne=(int)()*n)+1; return numberOne; } public int giveNumberT wo(int n) { numberTwo=(int)()*n)+1; return numberTwo; } public String giveOperator() { double d=(); if(d>= operator="+"; else operator="-"; return operator; } public boolean getRight(int answer) { if("+")) { if(answer==numberOne+numberTwo) right=true; else right=false; }

虚拟仪器LabVIEW实验报告

现代仪器设计LabVIEW实验报告 实验内容: 1.熟悉LabView软件操作方法 2.了解LabView的一般编程方法 3.虚拟信号发生器制作

1.熟悉LabView软件操作方法 虚拟仪器(virtual instrumention)是基于计算机的仪器。虚拟仪器主要是将仪器装入计算机。以通用的计算机硬件及操作系统为依托,实现各种仪器功能。虚拟仪器的研究中涉及的基理论主要有计算机数据采集和数字信号处理。目前在这一领域内,使用较为广泛的计算机语言是美国NI公司的LabVIEW。 LabVIEW(Laboratory Virtual instrument Engineering)是一种图形化的编程语言,它广泛地被工业界、学术界和研究实验室所接受,视为一个标准的数据采集和仪器控制软件。利用它可以方便地建立自己的虚拟仪器,其图形化的界面使得编程及使用过程基本上不写程序代码,取而代之的是流程图。 前面板的设计需用控制模板。控制模板(Control Palette)用来给前面板设置各种所需的输出显示对象和输入控制对象。每个图标代表一类子模板。可以在前面板的空白处,点击鼠标右键,以弹出控制模板。 程序框图的设计需用功能模板。功能模板(Functions Palette)是创建流程图程序的工具,只有打开了流程图程序窗口,才能出现功能模板。功能模板该模板上的每一个顶层图标都表示一个子模板。可以点击“窗口”—“显示程序框图”打开,也可以在流程图程序窗口的空白处点击鼠标右键以弹出功能模板。

流程图上的每一个对象都带有自己的连线端子,连线将构成对象之间的数据通道。不是几何意义上的连线,因此并非任意两个端子间都可连线,连线类似于普通程序中的赋值。数据单向流动,从源端口向一个或多个目的端口流动。不同 的线型代表不同的数据类型。下面是一些常用数据类型所对应的线型和颜色:

Labview实验

实验一 LabVIEW环境 1. 熟悉LabVIEW环境。 2. 创建一个VI。 发生一个值为0.0~1.0的随机数a,放大10倍后与某一常数b 比较,若a>b,则指示灯亮。要求:①编程实现;②单步调试程序; ③应用探针观察各数据流。 3. 创建和调用子VI。 创建一个子VI,子VI功能:输入3个参数后,求其和,再开方。编一个VI调用上述子VI。

实验二 结构与属性控制 1. 产生100个0.0~100.0的随机数,求其最小值、最大值、平均值,并将数据在Graph 中显示。 2. 产生0.0~100.0的随机数序列,求其最小值、最大值、平均值。并将随机数序列和平均值序列显示在Chart 波形图中,直到人为停止。 3. 编写一个程序测试自己在前面板输入一下字符串所用的时间:A virtual instrument is a program in the graphical programming language. 4. 编写一个程序,实现是否可视、可用、焦点状态、闪烁、位置及对象尺寸等属性。 个数据的平均值。 是前n A A A n A A n n n n n ) (111---+ =

实验三变量、数组与簇 1.在程序的前面板上创建一个数值型控件,为它输入一个数值;把这个数值乘以一个比例系数,再由该控件显示出来。 2.生产一个正弦波,并显示在Chart波形控件上,由另外一个程序把该波形显示出来。调节两个程序运行的速度,观察对比两个波形的差异。 3.创建一个3行4列的数组,(1)求数组的最大与最小值;(2)求出创建数组的大小;(3)将该数组转置;(4)将该二维数组改为一个一维数组。 4.创建一个簇控件,成员为字符型姓名,数值型学号,布尔型注册。从该控件中提取簇成员注册,并显示在前面板上。

数据结构实验报告图实验

邻接矩阵的实现 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; } }

java实验报告实验六Java图形用户界面

信息工程学院 Java程序设计实习报告 JAVA图形用户界面 实验六Java图形用户界面 1.实验目的 (1)掌握图形用户界面基本组件。 (2)了解如何使用布局管理器对组件进行管理。 (3)掌握Java事件处理机制。 2.实验内容 实验题1 编写一个模拟计算器的程序,使用面板和网格布局,添加一个文本框,10个数字按钮(0-9),4个加减乘除按钮,一个等号按钮,一个清除按钮,要求将计算公式和结果显示在文本框中。 运行结果: 实验报告的内容与格式按任课教师的要求书写。

加法: 主要代码: private void initComponents() { jButton1 = new javax.swing.JButton(); jButton2 = new javax.swing.JButton(); jButton3 = new javax.swing.JButton(); jButton4 = new javax.swing.JButton(); jButton5 = new javax.swing.JButton(); jButton6 = new javax.swing.JButton(); jButton7 = new javax.swing.JButton(); jButton8 = new javax.swing.JButton(); jButton9 = new javax.swing.JButton(); jButton10 = new javax.swing.JButton(); jButton11 = new javax.swing.JButton(); jButton12 = new javax.swing.JButton(); jButton13 = new javax.swing.JButton(); jButton14 = new javax.swing.JButton(); jButton15 = new javax.swing.JButton(); jTextField1 = new javax.swing.JTextField();

基于labview的实验

实验一利用LabVIEW控件进行结构化程序设计 一、实验目标: 1. 理解LabView的结构的基本概念 2. 掌握LabView中特有的顺序结构和移位寄存器的基本使用方法 3. 掌握LabView中公式节点的使用方法 二、实验设备 安装有LabVIEW的计算机。 三、实验要求和程序 LabView中的结构中的For和While相当于别的语言中的各种循环语句,而顺序结构主要为了方便于进行和时间相关的编程。本单元基本要求为循序渐进地学习和调试结构相关的内容,重点在于掌握LabView中进行循环和时间相关编程的方法。 1.使用For循环产生100个随机数。在随机数产生的同时判定当前随机数的最大值和最 小值。有时称其为“流动的”最大值和最小值。在前面板上显示流动最大值、最小值和当前的随机数。循环中一定要包含Time Delay Express VI以便用户可以观看值随着For循环的运行而更新。 程序框图:

前面板: 2. 构建VI,每秒显示一个0到1之间的随机数。同时,计算并显示产生的最后四个随机数的平均值。只有产生4个数以后才显示平均值,否则显示0。每次随机数大于0.5时,使用Beep.vi产生蜂鸣声。 【提示】虽然叙述简单,但实现不易,请注意: 每秒产生一个随机数,我们可以使用用于定时的VI 要计算最后四个数的平均,我们需要使用移位寄存器 要注意顺序结构和移位寄存器的嵌套关系 运行: 当产生随机数小于4时:(平均值等于0)

当产生随机数大于4: 3、创建前面板有3个圆LED的VI。运行程序时,第一个LED打开并保持打开状态。1秒 钟以后,第二个LED打开并保持打开状态;再过2秒钟,第三个LED打开并保持打开状态。所有LED都保持打开状态3秒钟,然后程序结束。(使用顺序结构) 程序框图:

嵌入式图形界面设计_综合实验报告

嵌入式图形界面设计报告 班级:计算机科学与技术15-2班 小组成员:刘航征、安宝、曲晗羽 杨祎涵、张振、李雪辰 2017年12月

一、前言 天气预报(测)或气象预报(测)是使用现代科学技术对未来某一地点地球大气层的状态进行预测。从史前人类就已经开始对天气进行预测来相应地安排其工作与生活(比如农业生产、军事行动等等)。今天的天气预报主要是使用收集大量的数据(气温、湿度、风向和风速、气压等等),然后使用目前对大气过程的认识(气象学)来确定未来空气变化。由于大气过程的混乱以及今天科学并没有最终透彻地了解大气过程,因此天气预报总是有一定误差的。 最传统的数据是在地面或海面上通过专业人员、爱好者、自动气象站或者浮标收集的气压、气温、风速、风向、湿度等数据。世界气象组织协调这些数据采集的时间,并制定标准。这些测量分每小时一次(METAR)或者每六小时一次(SYNOP)。 该项目为一款天气预报软件,基于Qt5开发,具有查询指定城市天气、显示当天天气状况以及未来四天天气大致状况的主要功能,次要功能为更换软件皮肤,显示当天感冒指数等功能。 软件预览图: 二、选用的技术基本说明 1、Qt JSON操作 QJsonDocument QJsonDocument 类用于读和写JSON 文档。 一个JSON 文档可以使用QJsonDocument::fromJson() 从基于文本的表示转化为QJsonDocument,toJson() 则可以反向转化为文本。解析器非常快且高效,并将JSON 转换为Qt 使用的二进制表示。 已解析文档的有效性,可以使用!isNull() 进行查询。 如果要查询一个JSON 文档是否包含一个数组或一个对象,使用isArray() 和isObject()。包含在文档中的数组或对象可以使用array() 或object() 检索,然后读取或操作。

虚拟仪器技术Labview 课程实验报告

Labview 课程实验报告 学院:电气工程 专业:建筑电气与智能化 姓名:杨震 班级:建电122 学号:1212062056 指导老师:茅靖峰

第一部分基础题 1、用LabVIEW的基本运算函数编写以下算式的程序代码: (前面板) (程序框图) 该程序要求用labview基本运算函数编写算式的程序代码,在前面板上我添加了两个数值显示控件用以显示两个算式的运算结果;在程序框图中运用软件自带的加、减、乘、除运算进行组合从而表示算式,再结果的后面加上一个双精度浮点数函数将程序运算结果强制转换后输入到显示控件中得到结果。

2、利用摄氏温度与华氏温度的关系°C=5(°F-32)/9编写一个程序求华氏度(°F)为32°,64°,4°,6.98°,6°,104°,212°时的摄氏温度。 (前面板) (程序框图) 该程序要求转换华氏度对应的摄氏度,本质上是对数据进行运算。在前面板上创建两个数组一个是数值输入数组用以输入华氏度的值,一个是数值显示数组用以显示对应的摄氏度的值。在程序框图中加入For循环将公式节点放入For循环中在公式节点上添加一个输入和一个输出分别连接两个数值控件,最后在公式节点中编辑二者运算关系完成设计。

3、用数组创建函数创建一个二维数组显示件,成员为: 1 2 3 4 5 6 2 3 4 5 6 1 3 4 5 6 1 2 4 5 6 1 2 3 编程将上述创建的数组转置为: 1 2 3 4 2 3 4 5 3 4 5 6 4 5 6 1 5 6 1 2 6 1 2 3 (前面板) (程序框图) 先在前面板中创建二维数组用以存放生成的数组元素数组为显示型控件,通过观察我们发现题目中的数组第一行为1-6顺序的六个元素从一开始后逐一加一,第二行则是5个数组元素平移,第三行为4个以此类推第四行3个所以我们在程序框图中用For循环和加一来生成第一行数组For循环的循环次数为六次,第二行数组则在第一行数组的基础上运用一维数组平移函数平移5位的到,以此类推生成四行数组,再使用数组生成函数生成二维数组输出到显示数组中显示出来,至于数组的转置直接运用数组转置函数得到,在该函数的输出端口右键创建显示控件。在前面板中调整创建的显示控件以确保显示所有转置的数组,实验完成。

虚拟仪器实验 labviEW

实验一储液罐状态监控系统设计 一、实验目的 通过该系统设计,初步了解LabVIEW虚拟仪器设计软件的前面板、程序框图及各个选项板的功能。 二、实验内容 设计储液罐状态监控仿真系统,要求如下 1、监测一个储液罐的实际液位、温度、进口压力、出口压力 2、用曲线图显示被测量液位随时间的变化情况 3、液位超标时用指示器报警 4、手动和自动两种方式调节储液罐的液位高度 5、用调节步长按钮决定自动调节的快慢程度 6、设计储液罐状态监控系统前面板 三、实验步骤 1、前面板设计 整个贮液罐监控系统前面板需要的控件有:停止键、手自动切换、液位超标指示灯、步长调节旋钮、高度设定、实际高度显示、进出口压力显示、温度显示和实际液位高度波形图。 停止键、手自动切换、液位超标在新式布尔量控件中进行选择,步长调节旋钮在数值控件中选择旋钮、压力表在数值中选择量表控件,设定高度、实际高度、温度在数值控件中分别选择垂直指针滑动杆垂直填充滑动杆和温度计,液位高度波形图选择波形图表。 2、程序框图设计 程序采用While循环结构,结束用停止布尔按钮结束,除设定高度和调节步长是手动设置外,其他输入如压力和温度的设定均采用编程—数值—随机数的方式给定,手自动切换布尔量连接比较选项中的选择节点,用于切换手自动,液位超标将实际高度和超标高度比较,输出一布尔量。 四、实验结果

五、思考题 1、将整个VI设计成一个子VI。在另一个VI中调用。 在前面板右上角,编辑连线板,对VI的输入和输出对应控件进行编辑,然后保存,即可生成VI,可在其他VI中调用,在其他VI中的调用图如下:

实验二分组数据的练习 一、实验目的 通过该实验,熟悉LabVIEW中常用的分组数据:数组、簇及波形的使用。 二、实验内容 习题4-3到4-11。 三、实验步骤 4-3.4.5 前面板只有三个数组的显示控件,分别为原数组显示、原数组大小显示和转置后的数组显示,程序框图中建立一二维数组常量,将要显示的数组填入,并添加一二维显示控件,在数组中分别选择数组大小和二维数组转置节点,其后分别连接显示控件。 4-6 前面板中选择簇输入控件,并在簇中加入字符型输入控件,数值型输入控件,布尔型输入控件,然后添加一布尔型显示控件,用于提取簇元素注册的显示。程序框图中从簇与变体函数子选板中选择按名称解除捆绑函数,输入端连接簇输入控件的输出,然后选择“注册”后输出端连接布尔控件的输入端。 4-7 前面板中在“字符串与路径”控件中选择组合框控件,然后在它的属性编辑项中编辑5个人的姓氏拼音首字母,它们的值分别为各自的中文姓名,编辑好后建立一字符串显示控件,程序框图中将组合框的输出端与字符串显示控件连接即可。 4-8 前面中中建立一字符串显示控件,程序框图中在定时函数子选板中选择“获取日期时间/字符串”函数,然后放置两个字符串常量分别为班级和姓名,将日期、时间、班级、姓名四个字符串接入字符串选板中的“连接字符串”函数节点,该节点的输出端接入字符串显示控件的输入端。 4-9 前面板中建立一字符串显示控件,程序框图中建立五个随机数,然后均与常数10相乘得到0-10的随机数,选择字符串选板中的“连接字符串”函数节点,将相乘后的随机数接入输入端,在“连接字符串”的格式字符串端建立字符串常量定义格式为两位小数点,数之间用逗号隔开。 4-10 前面板中建立一个一维数组输入控件,建立一个一维数组输出控件,程序框图中建立一个For循环,用数组选板中的“一维数组移位”和“替换数组子集”,每次替换数组最后一个元素并进行移位,替换的新元素值为0-10的随机数,For循环建立移位寄存器,使移位后的数组能进入下次循环中。 4-11 已知标定数据,前面板中建立电压的数值输入控件和压力的数值输出控件,程序框图中用数组选板中的“以阈值插值一维数组”进行电压对压力的插值找到索引值,然后进行显示。 四、实验结果 4-3.4.5

数据结构实验报告图实验

图实验 一,邻接矩阵的实现 1.实验目的 (1)掌握图的逻辑结构 (2)掌握图的邻接矩阵的存储结构 (3)验证图的邻接矩阵存储及其遍历操作的实现 2.实验内容 (1)建立无向图的邻接矩阵存储 (2)进行深度优先遍历 (3)进行广度优先遍历 3.设计与编码 #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 #include using namespace std; #include "" 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;

实验报告四图像锐化处理

姓名:学号:班级: 实验日期:实验成绩: 一.实验目的 (1)学习如何用锐化处理技术来加强图像的目标边界和图像细节,对图像进行梯度算子、拉普拉斯算子、Sobel算子设计,使图 像的某些特征(如边缘、轮廓等)得以进一步的增强及突出。(2)分析模板大小对空域锐化滤波的影响,比较不同滤波器的处理效果,分析其优缺点。 二.实验原理 锐化处理的主要目的是突出灰度的过度部分,在空间域中,均值滤波类似于积分,那锐化滤波类似于微分,微分算子的响应程度与图像在用算子操作的这一点突变程度成正比,图像积分模糊了图像,同时起到了消除噪声的作用;图像微分增强边缘和其它突变(如噪声),而削弱灰度变换缓慢的区域,laplacian算子类似于二阶微分,强调的是图像灰度级剧烈变换的部分,而sobel算子类似于一阶微分,强调的是图像灰度级缓慢变化的部分。 三.实验内容及结果

(1)选择一副图像,分别使用拉普拉斯算子、sobel算子对图像进行锐化滤波,并观察滤波效果。 图 1 laplacian及sobel算子处理图像 (2)选择一副图像,构造一个中心系数为-24的5×5的类似于拉普拉斯模板对图像进行锐化,与上述拉普拉斯算子的结果相比,是否能得到更加清晰的结果? 图 2 不同大小laplacian模板处理原图及二值图 四.结果分析

(1)观察图一,可以发现对原图进行sobel算子运算后,原图阶梯的边缘细节被突显出来了,而每个阶梯灰度级保持不变的背景则没了,全变黑了,而对原图进行laplacian算子运算后,边缘部分则只剩下些杂乱无章的点了,基本是在sobel算子运算过后筛选出来的缓慢突变边缘上的一些突变更快的点。如果把sobel算子比作是一阶微分就不难理解它是对原图的缓慢边缘变化部分,而把laplacian算子比作是二阶微分的话,就是原图的剧烈突变部分,由于原图像的阶梯边缘在灰度级上是缓慢过度的,所以使用sobel算子边缘的突出效果更明显,而laplacian算子无论模板大小为多大,都不能清晰的显示出边缘。至于背景为什么会变黑是因为算子模板中有负因子,当计算的出来的值为负数时,自动标定其为0,也就是黑色。 (2)观察图二,可以发现对原图使用无论多大的laplacian模板,效果都很差,原因就是上述提到的原图像的边缘灰度级是缓慢变化的,对原图灰度级二值化处理,由于灰度值大小只有0和1两个值,阶梯边缘两边的值分别为0和1,这样边缘突变就成了一个单位的剧烈突变,所以3*3的laplacian算子效果就和上述的sobel算子效果相似,而当增加laplacian算子的大小到5*5时,边缘检测效果更加明显。正印证了微分算子的响应程度与图像在用算子操作的这一点突变程度成正比这一原理。

Labview实验

Labview虚拟仪器实验指 导书 宋爱娟 2009.2

目录 实验一 Labview的认识性实验(2学时) (3) 实验二 Labview的基本操作(2学时) (4) 实验三数据操作实验(2学时) (6) 实验四 labview结构在编程中的应用(4学时) (10) 实验五 labview中字符串、数组、簇的实验(2学时) (16) 实验六图表和图形实验(4学时) (23) 实验七专业测试系统的搭建实验(2学时) (28) 实验八创建子VI(2学时) (32) 实验九人机界面交互设计实验(2学时) (35) 实验十波形编辑及频谱分析实验(3学时) (39) 实验十一救援用LED灯实验(4学时选作) (41)

实验一Labview的认识性实验 一、目的 1、熟悉Labview的基本组件 2、熟悉Labview的前面板、程序框图、快捷和下拉菜单 3、掌握Labview的选项板及在线帮助 二、环境 1、WINDOWS2000环境(将显示属性中的分辨率设置为1024*768) 2、Labview8.6软件 三、内容与步骤: [练习1] 启动Labview,查找Labview示例 步骤: 1.打开文件VibrationAnalysis.vi(c:/ProgramFiles/National Instruments/LabVIEW 8.6/examples/apps/demos.llb) 2.单击按钮Run运行该程序 3.改变采样速率 4.改变采样速度,验证希望速度与实际速度是否一致 [练习2] 熟悉前面板与程序框图的切换及观察程序流的执行过程 1.在练习1的基础上,利用快捷方式将前面板切换到程序框图。 2.单击高亮度显示按钮观察代码的数据流向。 [练习3] 熟练打开运行一个VI 1.练习查找所定VI,另用帮助查找含有FILTER的示例,找到其中的Express Filter.VI程序双击打开 2.运行该程序 3.改变仿真频率、仿真幅度和仿真噪声幅度观察指示器的值与图中值是否一致。 4.观察数据流执行过程 [练习4]练习查找运行 1.将上面程序在框图窗口双击程序框图中的Simulate Signal,将正弦信号改为其他信号之后运行程序。 2.熟练查找其他程序并运行 [练习5] 1.在Labview启动界面中选择新建选项 2.打开空VI或VI模板 3.任意打开VI模板并运行。

相关文档