实验7 过程和函数

合集下载

《程序设计基础—VB程序实验》

《程序设计基础—VB程序实验》

《程序设计基础—VB程序实验》说明:实验1和实验2均为电子实验报告,后面8个实验是纸制实验报告。

实验1 计算机基本操作实验目的⑴熟悉计算机,能够正确进行开、关机操作。

⑵熟悉键盘,掌握键盘上所有字符的输入,掌握正确的指法,能够进行中、英文切换。

⑶理解操作系统概念,掌握Windows XP的基本操作,能够利用“控制面板”进行一些参数的设置。

⑷知道“回收站”的功能,学会有关文件、文件夹的基本操作。

⑸学会在计算机上搜索或查找相关的文件或文件夹,掌握通配符的使用。

实验内容⑴熟悉上机实验的计算机,熟悉键盘,学会中、英文输入方式的转换。

⑵学会用正确的指法进行输入,知道键盘上所有字符的输入。

⑶利用“控制面板”修改系统时间、桌面背景、鼠标属性。

⑷在桌面上新建一个文件夹,该文件夹以学生自己的名字+班级+学号的后3位命名。

⑸用文本方式或Word文档,写一段字数不少于300字的自我介绍,以1.doc命名并保存到上述文件夹中。

⑹将上述文件夹复制到ftp://10.10.9.222上。

实验2 常用软件的基本操作实验目的⑴了解Word功能,掌握Word的基本操作,包括页眉/页脚的设置、分栏、页面设置、添加底纹等。

⑵学会文件的保存与打开、打印预览、段落的间隔、首字符位置改变等,能够在Word中插入图片、表格、艺术字、特殊符号等。

⑶了解Excel的功能,掌握Excel的基本操作,包括单元格属性的设置、数字的几种填充形式、单元格的合并与恢复、边框的设置等。

⑷掌握Excel的基本公式的使用,能够用公式进行基本计算。

掌握Excel中的图形制作方法,能够根据表格做出图形。

实验内容⑴将ftp上自己文件夹中的1.doc文件复制到桌面上,然后做如下处理:①将标题“自我介绍”居中;②将文章中第二段的内容进行分栏,要求中间有分割线;③插入一个4行4列的表格,内容为学号、姓名、某门课的成绩;④任意插入一张图片;⑤在文章中的任意位置加底纹。

将做好的文档以2.doc命名并保存。

C++程序设计实验-1-7

C++程序设计实验-1-7

C++程序设计实验实验报告要求红色为实验报告必包括内容502:ftp://192.168.200.210实验一熟悉vc++开发环境和C++程序的调试过程。

一、理解体会例1-1,输入并运行。

二、参照例1-2,用结构化方法编程实现:1、根据每学年学费、专业总学分、某课程学分,计算上该课程的总花费,以及每学时,每分钟的花费。

(1学分=18学时)2、P43编程题1,2,31.输入一个三位整数,将它反向输出。

2.输入平面上某点横坐标x和纵坐标y,若该点在由图3.1表示的方块区域内,则输出1;否则,输出0。

图1.11 正方形3.输入三个整数,求出其中最小数(要求使用条件表达式)。

实验二进一步熟悉vc++开发环境和C++程序的调试过程。

一、理解体会例1-2,输入并运行。

二、参照例1-2,用面向对象方法编程实现:根据每学年学费、专业总学分、某课程学分,计算上该课程的总花费,以及每学时,每分钟的花费。

使得本校不同专业,不同课程的同学都能用它来计算。

(1学分=18学时)提示:1、定义一个类,类的数据成员包括:每学年学费、专业总学分、课程学分;类的成员函数包括:设置每学年学费、专业总学分、课程学分; 显示每学年学费、专业总学分、课程学分; 计算上某课程的总花费; 计算上某课程的每学时花费; 计算上某课程的每分钟的花费;2、说明1个或几个对象,计算并输出相应各结果。

三、P39习题1: 1.1-1.4根据需要编程上机检验其中的部分题目。

实验三1.输入某学生成绩,若成绩在85分以上输出“very good ”,若成绩在60分到85分之间输出“good ”,若成绩低于60分输出“no good ”。

2.输入三个整数,按从小到大的顺序输出它们的值。

3.输入三角形的三条边,判别它们能否形成三角形,若能,则判断是等边、等腰、还是一般三角形。

4.输入百分制成绩,并把它转换成五级分制,转换公式为:⎪⎪⎪⎩⎪⎪⎪⎨⎧-----=59069607970898010090(不合格)(合格)(中等)(良好)(优秀)(级别)E D C B A grade5.编程序模拟剪刀、石头和纸游戏。

实验7 窗函数法设计FIR数字滤波器

实验7 窗函数法设计FIR数字滤波器

实验7窗函数法设计FIR数字滤波器一、实验目的掌握窗函数法设计F1R数字滤波器的原理和具体方法二、实验设备与环境计算机、Mat1ab软件环境三、实验基础理论1>基本原理窗函数设计法的基本思想为,首先选择一个适当的理想的滤波器Hd(,3),然后用窗函数截取它的单位脉冲响应%(九),得到线性相位和因果的FIR滤波器,这种方法的重点是选择一个合适的窗函数和理想滤波器,使设计的滤波器的单位脉冲响应逼近理想滤波器的单位脉冲响应。

2、设计步骤(1)给定理想滤波器的频率响应Hd("3),在通带上具有单位增益和线性相位,在阻带上具有零响应。

一个带宽为g(3c<Tr)的低通滤波器由下式给定h(e j^=(eW∣ω∣≤ωc虱)一1Oωc<∣ω∣<π其中α为采样延迟,其作用是为了得到因果的系统。

(2)确定这个滤波器的单位脉冲响应为了得到一个h(n)长度为N的因果的线性相位FIR滤波器,我们令N-Ia=-2-(3)用窗函数截取hd(τι)得到所设计FIR数字滤波器h(n)h(n)=h d(n)w(n)3、窗函数的选择常用的窗函数有矩形窗、汉宁窗、海明窗、布莱克曼窗、凯瑟窗等。

Mat1ab提供了一些函数用于产生窗函数,如下表所示:在设计过程中我们需要根据给定的滤波器技术指标,选择滤波器长度N 和窗函数3(n)°表7.2列出了常用的窗函数的一些特性,可供设计时参考。

其中幻是修正的零阶贝塞尔函数,参数B 控制最小阻带衰减,这种窗函数对于相同的N 可以提供不同的过渡带宽。

由于贝塞尔函数比较更杂,这种窗函数的设计方程很难推导,然而幸运的是,有一些经验设计方程可以直接使用。

已知给定的指标叫Msc,Rp 和4,滤波器长度N 和凯瑟窗参数B 可以按如下凯瑟窗设计方程给出过渡带宽:∆ω=ωst -ωp入一7.95 2.285∆ω_(0.1102(4-8.7) ,P=iθ.5842(4-21)04+0.07886(4-21), 四、实验内容1、设计一个数字低通FIR 滤波器,其技术指标如下ωp =0.2τr,RP=0.25dBωst =0.3τr,A s =50dB分别采用矩形窗、汉宁窗、海明窗、布莱克曼窗、凯瑟窗设计该滤波器。

虚拟仪器实验报告

虚拟仪器实验报告

虚拟仪器实验报告实验⼀:1.实验⽬的:熟悉LabVIEW软件的基本编程环境。

2.实验内容:创建⼀个VI程序,并将此程序保存为⼦VI。

此VI要实现的功能是:当输⼊发动转速时,经过⼀定运算过程,输出发动机温度和汽车速度值。

3.实验步骤(1)启动LabVIEW,创建⼀个VI。

(2)在前⾯板中放置⼀个温度计控件,并修改控件标签名为发动机温度和设置最⼤值为100。

该控件从“控件—经典—经典数值”⼦选项板中获得。

(3)按同样的⽅法在前⾯板中放置⼀个仪表控件,并修改仪表控件的标签名为汽车速度,标尺刻度范围为0~150。

(4)按同样的⽅法在前⾯板中放置⼀个数值输⼊控件,并修改控件标签名为发动机转速。

(5)从“窗⼝”下拉菜单中选择“显⽰程序窗⼝”切换到程序框图窗⼝。

(6)在程序窗⼝中创建乘法函数,该函数中函数选项板中的“函数—编程—数值”⼦选项板中选择,并和发动机转速输⼊控件连线,为乘法函数创建⼀个常量,修改为图中所⽰值。

(7)按同样的⽅法创建加法函数、平⽅根函数和除法函数,并按图中所⽰修改常量值和连好线。

(8)切换⾄前⾯板,在发动机转速控件中输⼊数值,点击运⾏按钮,运⾏VI程序。

(9)修改图标为T/V以表⽰该⼦VI输出量为发动机温度和汽车速度,并保存为vi.vi。

前⾯板:程序框图:实验⼆:1.实验⽬的:熟悉⼦VI的调⽤。

2.实验内容:创建⼀个VI程序,并在编写程序过程中调⽤实验⼀中创建的⼦VI。

此VI要实现的功能是:通过旋钮控件来控件输⼊的发动机转速值,中间调⽤实验⼀中创建的⼦VI作为计算过程,从⼦VI输出的值分别输出⾄不同的数值显⽰发动机的温度以及当前汽车速度,同时判断当汽车速度超过100时,系统将产⽣蜂鸣声,报警提⽰。

3.实验步骤:(1)启动LabVIEW,创建⼀个VI。

(2)在前⾯板中创建⼀个旋钮控件,修改标签名为发动机转速,设置数值范围为0~5000,从旋钮控件中调出⼀个数字显⽰控件来同步显⽰旋钮控件当前值。

实验训练5:存储过程与函数的构建与使用

实验训练5:存储过程与函数的构建与使用

实验训练5:存储过程与函数的构建与使用一、存储过程与函数的概念存储过程和函数都是数据库中的可执行代码,可以被多次调用和重复使用。

存储过程是一组预定义的SQL语句集合,可以在数据库中定义和存储。

而函数是一个独立的代码块,它接收输入参数并返回一个值。

二、存储过程的构建与使用1. 创建存储过程在MySQL中,创建存储过程需要使用CREATE PROCEDURE语句。

例如:CREATE PROCEDURE myproc()BEGINSELECT * FROM mytable;END;这个例子创建了一个名为myproc的存储过程,它会查询mytable表中的所有数据。

2. 调用存储过程使用CALL语句可以调用已经创建好的存储过程。

例如:CALL myproc();这个语句会执行myproc存储过程中定义的SQL语句。

3. 存储过程参数我们可以给存储过程添加参数来使其更加灵活。

例如:CREATE PROCEDURE myproc(IN p1 INT, IN p2 VARCHAR(50)) BEGINSELECT * FROM mytable WHERE column1 = p1 AND column2 = p2;END;这个例子创建了一个带有两个输入参数p1和p2的存储过程,它会查询mytable表中column1等于p1并且column2等于p2的数据。

4. 存储过程变量除了参数之外,存储过程还可以使用变量来存储中间结果。

例如:CREATE PROCEDURE myproc(IN p1 INT)BEGINDECLARE v1 INT;SET v1 = p1 * 2;SELECT * FROM mytable WHERE column1 = v1;END;这个例子创建了一个带有一个输入参数p1和一个变量v1的存储过程,它会将p1乘以2并将结果存储在v1变量中,然后查询mytable表中column1等于v1的数据。

C语言上机实验

C语言上机实验

实验一(第1章实验)实验目的:1.掌握运行C语言程序的全过程。

2.熟悉编译环境。

3.初步熟悉C语言程序的语法规定。

4.了解简单函数的使用方法。

实验内容:1.编程且上机运行:求3个整数的和。

2.编程且上机运行:求2个数的和、差、积和商。

3.编程且上机运行:输入3个数,求最大值。

4.编程且上机运行:输入圆的半径,求圆的面积和周长。

5.在屏幕上输出:“hello world!”实验结果:实验二(第3章实验)1.实验目的:理解C语言的类型系统。

实验内容:写程序测试数据-2在类型char,int,unsigned int,long int,unsigned long int 中存储情况。

实验过程:实验结果:参见各种类型的存储实现描述。

2.实验目的:了解混合类型计算中类型的转换规则。

实验内容:写程序测试多种类型数据一起运算时类型的转换及表达式结果的类型。

注意unsigned int和int数据运算时类型转换的方向。

实验过程:/** 类型转换问题* 试问下面两个表达式等价吗?*/#include <stdio.h>#include <stdlib.h>int main() {unsigned int ui,uj;ui = 1;uj = 2;if (ui < uj)printf("\n%u < %u is true !\n", ui, uj);elseprintf("\n%u < %u is false !\n", ui, uj);if (ui - uj < 0)printf("\n%u - %u <0 is true !\n", ui, uj);elseprintf("\n%u - %u <0 is false !\n", ui, uj);system("pause");return 0;}实验结果:参见类型转换规则。

c语言程序设计实验指导答案

c语言程序设计实验指导答案

太原理工大学现代科技学院C语言程序设计课程实验报告专业班级学号姓名指导教师焦雄5.#include <stdio.h> void main(){int a=10,n=5;a+=a;printf("%d\n",a);a=10,a-=2;printf("%d\n",a);a=10,a*=2+3;printf("%d\n",a);a=10,a/=a+a;printf("%d\n",a);a=10,a%=(n%=2);printf("%d\n",a);a=10,a+=a-=a*=a;printf("%d\n",a); }遇到的问题和解决方法心得体会实验三简单程序、分支程序和循环程序设计实验名称实验目的和要求1.理解C语言程序的基本结构和实现基本结构的语句;2.熟练应用赋值、输入和输出语句;3.理解并掌握关系运算符、逻辑运算符及其表达式的使用;4.熟练掌握if语句、switch语句、while语句、do—while语句和for语句的用法;实验内容1.输入并运行第3章例3-3、例3-6中的程序,通过输出结果理解对应的格式说明。

2.输入并运行第3章例3-8、例3-10中的程序,注意输入数据的格式。

3.已知圆柱半径r=1.5,圆柱高h=3,编程求圆周长,圆面积和圆柱体积。

4.输入一百分制成绩,输出成绩等级A、B、C、D、E。

90分以上为A,80~89为B,70~79分为C,60~69分为D,60分以下为E。

要求程序能处理错误的输入数据。

5.利用公式:π/4=1-1/3+1/5-1/7+……,求π的近似值,直到最后一项的绝对值小于10-6为止。

(fabs(t)表示t的绝对值,1e-6=1*10-6)。

6.求100-200间所有素数。

7.输出三角形的九九乘法口诀表。

8.打印水仙花数。

水仙花数是指一个3位数,其各位数字立方和等于该数本身。

存储过程、触发器和函数实验

存储过程、触发器和函数实验

存储过程、触发器和用户自定义函数实验实验内容一练习教材中存储过程、触发器和用户自定义函数的例子。

教材中的BookSales数据库,在群共享中,文件名为。

实验内容二针对附件1中的教学活动数据库,完成下面的实验内容。

1、存储过程(1)创建一个存储过程,该存储过程统计“高等数学”的成绩分布情况,即按照各分数段统计人数。

(2)创建一个存储过程,该存储过程有一个参数用来接收课程号,该存储过程统计给定课程的平均成绩。

(3)创建一个存储过程,该存储过程将学生选课成绩从百分制改为等级制(即 A、B、C、D、E)。

(4)创建一个存储过程,该存储过程有一个参数用来接收学生姓名,该存储过程查询该学生的学号以及选修课程的门数。

(5)创建一个存储过程,该存储过程有两个输入参数用来接收学号和课程号,一个输出参数用于获取相应学号和课程号对应的成绩。

2、触发器(1)为study表创建一个UPDATE触发器,当更新成绩时,要求更新后的成绩不能低于原来的成绩。

(2)为study表创建一个DELETE触发器,要求一次只能从study表中删除一条记录。

(3)为course表创建一个INSERT触发器,要求插入的课程记录中任课教师不能为空。

3、用户自定义函数(1)创建一个返回标量值的用户定义函数 RectangleArea:输入矩形的长和宽就能计算矩形的面积。

create function RectangleArea(@a int,@b int)returns intasbeginreturn@a*@bend(2)创建一个用户自定义函数,功能为产生一张有关学生成绩统计的报表。

该报表显示每一门课程的课程号、课程名、选修人数、本门最高分、最低分和平均分。

调用这个函数,生成相应的报表并给用户浏览。

create function student_table()returns tableasreturn(select课程号,课程名,COUNT选修人数,max最高分,min最低分,avg平均分from student_course,coursewhere=group by,)实验数据库说明教学活动数据库包括student、course和study三个基本表,三个基本表的结构说明和数据如下:(1)学生表(student)说明:sno为主键,age的范围为15~35之间,sex只能为“男”或“女”。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

《数据库开发技术》课程之实验七
PL/SQL过程和函数
1、实验目的
1.掌握正确使用异常处理的方法。

2.掌握局部(本地)过程和存储过程的正确使用方法。

3.掌握局部(本地)函数和存储函数的正确使用方法。

2、实验内容和要求
1. 创建一个显示EMP表中雇员总人数的存储过程。

然后在程序块
中和SQL*Plus环境中调用该存储过程。

执行结果:
雇员总人数为:17
2. 编写一个存储函数函数,用于判断DEPT表中某一编号的部门是
否存在,若存在此部门编号,则返回TRUE,否则返回FALSE。

3. 编写一过程,调用第2题的函数判断某一编号的部门是否存在,
存在则输出该部门员工的姓名、工作,否则提示不存在此部门
或此部门无员工。

4. 调用第2题的存储函数,查询并显示30号部门的人数。

要求函数
体内有对不存在部门的异常处理,给用户的错误指示信息是:
该部门不存在!
5. 有一个权限控制的表中有三个字段,分别存放用户姓名、密码
和权限级别。

创建一个用户登录存储函数,用户登录时核对用
户名和密码,正确则函数返回真,否则返回假。

要求有适当的
异常处理,还要求进行适当的测试以验证函数的正确性。

Create table login(uname varchar(12), pw varchar(12), right_lel varchar(12)); insert into login values('xiaoli','12345','DBA');
insert into login values('zhangsan','zzz','GUEST');
--登录函数测试
输入 user_name 的值: xiaoli
输入 password 的值: 12345
登录成功!
PL/SQL 过程已成功完成。

6. *阅读、理解并执行以下程序,并在注释处完成填空,指明当条
语句的作用或意义,一行不够写自行加一行注释。

最后要求写
出你的上机执行结果,对此执行结果写出一句总结。

DECLARE
TYPE EmpTabTyp IS TABLE OF emp%ROWTYPE; --
emp_tab EmpTabTyp := EmpTabTyp(NULL); --
t1 NUMBER(5);
t2 NUMBER(5);
t3 NUMBER(5);
PROCEDURE get_time (t OUT NUMBER) IS -- 过程头:创建过程,过程有一
个输出
--参数, 参数模式为,参数类型是
型。

/* 'SSSSS'日期/时间格式的含义为:距离午夜的秒数(0 ~ 86399)。

*/
BEGIN --以下语句将赋给输出参数。

SELECT TO_CHAR(SYSDATE,'SSSSS') INTO t FROM dual;
END;
PROCEDURE do_nothing1 (tab IN OUT EmpTabTyp) IS --过程有一个
模式的参数tab,数
-- 据类型是,根据PL/SQL的默认方式,实参与形参间是按
传递的。

BEGIN
NULL; -- 过程do_nothing1是一个什么也不做的过程
END;
PROCEDURE do_nothing2 (tab IN OUT NOCOPY EmpTabTyp) IS --过
程有一个IN OUT模式的参
-- 数tab,实参与形参间由于有,所以是按传递的。

BEGIN NULL; END;
BEGIN
T * INTO emp_tab(1) FROM emp WHERE empno = 7788; -- 将雇员7788的信息存入
表元
-- 素1中
emp_tab.EXTEND(249999, 1); --
-- 。

get_time(t1);
do_nothing1(emp_tab); -- 将嵌套表emp_tab传递给过程do_nothing1
的IN OUT 形参
get_time(t2);
do_nothing2(emp_tab); -- 将嵌套表传递给过程do_nothing2的IN OUT NOCOPY形参
get_time(t3);
dbms_output.put_line('Call Duration (secs)');
dbms_output.put_line('--------------------');
dbms_output.put_line('Just IN OUT: ' || TO_CHAR(t2 - t1)); --显示出
执行用时(秒)。

dbms_output.put_line('With NOCOPY: ' || TO_CHAR(t3 - t2)); --显示出执行用时(秒)。

END;
/
Call Duration (secs) --250000条记录,即25万条记录
--------------------
Just IN OUT: 2
With NOCOPY: 0
PL/SQL 过程已成功完成。

Call Duration (secs) --2500000条记录,即250万条记录
--------------------
Just IN OUT: 381
With NOCOPY: 0
PL/SQL 过程已成功完成。

3、实验报告
记录实验过程中遇到的困难和解决问题的方法。

4、实验小结
分析本次实验主要综合运用了哪些知识点,你的运用情况如何等。

相关文档
最新文档