数据采集实验报告zhu

2024-12-30

数据采集实验报告zhu(共11篇)(共11篇)

1.数据采集实验报告zhu 篇一

存储器实验

预习实验报告

疑问:

1、数据通路是干嘛的?

2、数据通路如何实现其功能?

3、实验书上的存储器部分总线开关接在高电平上,是不是错了?

一、波形图:参数设置:

信号设置:

clk:

bus_sel:

alu_sel:

ld_reg:

pc_sel:

we_rd:

k:

d:

d~result:

ar:

pc:

仿真波形

实验报告

Endtime:2.0us

Gridsize:100.0ns

时钟信号,设置周期为100ns占空比为50%。

sw|r4|r5|alu|pc_bus的组合,分别代表的是总线(sw_bus)开关,将

存储器r4的数据显示到总线上,将存储器r5的数据显示到总线上,将alu的运算结果显示到总线上,将pc的数据打入AR中二进制输入,低电平有效。

m|cn|s[3..0]的组合,代表运算器的运算符号选择,二进制输入,高

电平有效。

lddr1|lddr2|ldr4|ldr5|ld_ar的组合,分别表示将总线数据载入寄存器

r1,r2,r4, r5或AR中,二进制输入,高电平有效。

pc_clr|ld|en的组合,分别代表地址计数器PC的清零(pc_clr)、装

载(pc_ld)和计数使能信号(pc_en),二进制输入,低电平有效。信号we和rd的组合,分别代表对ram的读(we)与写(rd)的操作,二进制输入,高电平有效

k [7]~ k [0],数据输入端信号,十六进制输入。

d[7]~d[0],数据输出中间信号,十六进制双向信号。

d [7] result ~d[0] result,最终的数据输出信号,十六进制输出。ar[7]~ ar[0],地址寄存器AR的输出结果,十六进制输出。pc [7]~ pc [0],地址计数器PC的输出结果,十六进制输出。

以在01H单元中写入05H、02H单元中写入0AH并进行【(A加B)减(非A与B)加B】为例:

1)初始状态:bus_sel=11111,alu_sel=00000,ld_reg=00000,pc_sel=100,we_rd=00,k=00H,总线上无数据,呈高阻态。2)读取01H单元的05A:

① 置数法PC=01H:bus_sel=01111,pc_sel=101 ② PC->AR:bus_sel=11110,ld_reg=00001 ③ 读01H单元的数据放入R1中:bus_sel=11111,ld_reg=10000,we_rd=01 3)读取02H单元的0AH:

① PC+1,PC->AR:bus_sel=11110,ld_reg=00001,pc_sel=111 ② 读01H单元的数据放入R2中:bus_sel=11111,ld_reg=01000,we_rd=01 4)将地址加到03H :bus_sel=11110,ld_reg=00001,pc_sel=111 5)验证数据并运算: bus_sel=11101 ① 读取R1中的数据:alu_sel=010000,得到R1=05H ② 读取R2中的数据:alu_sel=101010,得到R2=0AH ③ 计算(A加B)结果存于R4中:alu_sel=011001,ld_reg=00100,结果为0FH ④ 计算(非A与B)结果存于03H单元中:alu_sel=100010,we_rd=10,结果为0AH ⑤ 计算((A加B)加B)结果存于04H单元中:

 R4->R1:bus_sel=10111,ld_reg=10000  PC+1,PC->AR:bus_sel=11110,ld_reg=00001,pc_sel=111  计算((A加B)加B)结果存于04H单元中:bus_sel=11101,alu_sel=011001,we_rd=10 ⑥ 计算(((A加B)加B)减(非A与B))结果存于05H中:

((A加B)加B)->R1:bus_sel=11111,ld_reg=10000,we_rd=01 (非A与B)->R2:

 PC=03H:k=03H,bus_sel=01111,pc_sel=101  PC->AR:bus_sel=11110,ld_reg=00001 (非A与B)->R2:bus_sel=11111,ld_reg=01000,we_rd=01  PC=05H:

 PC=05H:k=03H,bus_sel=01111,pc_sel=101  PC->AR:bus_sel=11110,ld_reg=00001 

(((A加B)加B)减(非A与B))结果存于05H中:bus_sel=11101,alu_sel=000110,we_rd=10 最后结果为0FH。结论:

本实验的设计能结合了运算器和存储器,能实现在mif文件中进行初始化,将固定地址单元中存储的数据读取到运算器中进行(((A加B)加B)减(非A与B))的运算并将结果存于指定的内存单元中,与实验要求一致,故电路设计正确。

二、实验日志

预习疑问解答:

1.通路是干嘛的?

在数字系统中,各个子系统通过数据总线连接形成的数据传送路径称为数据通路.2.通路如何实现其功能?

在这次的实验中,数据通路主要是由运算器部分和存储器部分组成的,通过运算器的运算结合存储器在mif文件的中的操作进行数据的传输与存储,从而构成一个数据通路.错

3.书上的存储器部分总线开关接在高电平上,是不是错了? 事实证明没有接错.

思考题:

1. 画数据通路电路图时,如何连结单一总线? 如图:

ALU模块的sw_bus依然连接bus_sel,存储器部分的sw_bus连接高电平.2. 如何统一两个模块的总线输入端k[7..0]及inputd[7..0]?

答:如图: 输入放在运算器部分,存储器部分无输入,存储器部分的数据要么来自总线传输,要么从mif文件中读取.实验中遇到的问题:

1.把之前的alu和ram的原理图拷到了当前工程下面。直接生成该工程的符号文件,连接起来,但是仿真有问题。

几乎是在每一次和总线交换数据的时候都得不到正确的值。下面是解决的过程:

我怀疑是两个模块之间通过总线传输的数据没有传输成功,于是把alu模块的d引了一个输出端口d_alu,从ram模块的d引出了一个输出端口d_ram,在仿真波形图上,然后就可以看到了数据到达总线上了,而且这个时候d的值也能看到了,只是后面的最后一个读操作出来的数据不对,本来应该是写进去的07,但现在是17,再仿真就会变成别的数据。

2.在连接电路图的时候,我以为存储器部分的sw_bus连在高电平上是错的,然后又连到了bus_sel[4],所以得到了上一个部分的仿真结果,后来不研究了一下那个高电平,发现是用来处理单一总线问题的,就改成了与书上一样的图,我以为上面出现的错误结果和这个有关,改了之后波形图有变化,但是,还是是错误的.但是在两种情况下功能仿真的结果都是正确的:

问题解决了~

原因是周期太短,计算结果还来不及存入到内存单元中,把写入内存的时间周期延长一个周期结果就出来了。电路本身没有问题。

实验心得:

2.数据采集实验报告zhu 篇二

1 技术手段

1.1 软件编写语言、开发工具和运行环境

本软件是使用Java EE语言在Oracle JDeveloper开发环境上进行编写的, 它是Oracle Fusion Middleware的一款产品, 通过支持完整的开发生命周期简化了基于Java的SOA应用程序和用户界面的开发为构建具有J2EE功能, XML和Web Services的复杂的, 多层的Java应用程序提供了一个完全集成的开发环境。它为运用Oracle数据库和应用服务器的开发人员提供特殊功能和增强性能, 是Java开发的一个强大的工具。运行环境:Red Hat Linux Enterprise 5.8。

1.2 程序界面设计

在主界面 (图1) 上有一个导入按钮, 在此可直接将试验机生成的大量CSV (Comma Separated Value, 逗号分隔值) 格式文档上传到系统中, 同时计算出最后需要的试验数据结果, 并将结果存储到数据库当中。

1.3 CSV文件数据的读取

设备产生的原始数据是通过CSV格式的文件进行的存储, 因此将数据整合到Lims系统中就必须读取CSV格式的数据并解析。CSV通常都是纯文本文件, 如果直接点选该文件, 计算机将以Excel的模式开启该文件。CSV文件是一个计算机数据文件用于执行审判和真正的组织工具, 逗号分隔的清单。常常被用于移动表格数据之间的两个不同的计算机程序, 例如关系数据库程序和电子表格程序。

Java有专门操作CSV文件的类和方法。Java开源框架csvreader提供了一个轻量级的、简单方便的统一操作接口可用。通过用read.csv读取CSV文件。对于目标表, 要求对应的字段能够接收CSV文件中对象列的数据, 这里特别需要注意的是字符串的长度, 日期时间格式和整数浮点数的处理;由于CSV文件中实际上都是字符串, 那么在导入的过程中就有可能出现不能转换的情况。例如:日期格式不符合数据库的要求, 或者字符串不能转化为整数或者浮点数等。对于目标表, 字段数目和顺序可以和CSV文件中的不一样。

1.4 数据处理

数据进行读取之后, 即可按照预先定义的规则对采集出来的数据进行计算, 将大容量数据精练出有用的信息, 实现如图2 所示效果。取代了检验工程师手动计算的环节, 不必再费力气去用计算器计算, 然后誊写到纸质记录上, 节约了检验人员的大量时间, 大大降低了计算成本和错误率。同时将计算整理出来的数据进行存储并展示, 从而有效地消除了信息孤岛和数据陈旧的问题。

数据处理之后最终需要算出扭矩[Electro Puls (0, 2) :扭矩] (N·m) 和扭转[Electro Puls (0, 2) : 转动] (deg) 。这两个数据都需要转换成整数之后, 取小数点后两位再进行操作。

采用冒泡法获取扭矩[Electro Puls (0, 2) : 扭矩] (N·m) 即绝对值最大的数。比较相邻的元素。如果第一个比第二个大, 就交换它们两个。对每一对相邻元素作同样的工作, 从开始第一对到结尾的最后一对。在这一点, 最后的元素即会是最大的数。扭转[Electro Puls (0, 2) : 转动) (deg) 数据为整个数据文档的最后一组值。图3、图4 为数据处理前后的显示形式。

2 结束语

目前已完成部分实验室数据的采集功能模块, 并集成到系统中, 它能保证实验室规范的符合性和提高实验室与所内的协同化能力。实现了数据自动获取, 并计算出扭矩[Electro Puls (0, 2) :扭矩] (N·m) 和扭转[Electro Puls (0, 2) :转动] (deg) 。替代了人工从大量数据中去计算和挑选的工作。

3.数据结构实验报告 篇三

实验(实习)名称数据结构实验(实习)日期 2011-11-2得分指导教师周素萍

系公共管理系专业信息管理与信息系统年级10级班次1姓名常玲学号2010230700

3实验一顺序表的基本操作及C语言实现

【实验目的】

1、顺序表的基本操作及 C 语言实现

【实验要求】

1、用 C 语言建立自己的线性表结构的程序库,实现顺序表的基本操作。

2、对线性表表示的集合,集合数据由用户从键盘输入(数据类型为整型),建立相应的顺序表,且使得数据按从小到大的顺序存放,将两个集合的并的结果存储在一个新的线性表集合中,并输出。

【实验内容】

1、根据教材定义的顺序表机构,用 C 语言实现顺序表结构的创建、插入、删除、查找等操作;

2、利用上述顺序表操作实现如下程序:建立两个顺序表表示的集合(集合中无重

复的元素),并求这样的两个集合的并。

【实验结果】

[实验数据、结果、遇到的问题及解决]

一. Status InsertOrderList(SqList &va,ElemType x)

{

}

二. Status DeleteK(SqList &a,int i,int k)

{//在非递减的顺序表va中插入元素x并使其仍成为顺序表的算法 int i;if(va.length==va.listsize)return(OVERFLOW);for(i=va.length;i>0,x

}

//注意i的编号从0开始 int j;if(i<0||i>a.length-1||k<0||k>a.length-i)return INFEASIBLE;for(j=0;j<=k;j++)a.elem[j+i]=a.elem[j+i+k];a.length=a.length-k;return OK;

三.// 将合并逆置后的结果放在C表中,并删除B表

Status ListMergeOppose_L(LinkList &A,LinkList &B,LinkList &C)

{

LinkList pa,pb,qa,qb;pa=A;pb=B;qa=pa;qb=pb;// 保存pa的前驱指针 // 保存pb的前驱指针 pa=pa->next;pb=pb->next;A->next=NULL;C=A;while(pa&&pb){} while(pa){} qa=pa;pa=pa->next;qa->next=A->next;A->next=qa;if(pa->data

data){} else{} qb=pb;pb=pb->next;qb->next=A->next;//将当前最小结点插入A表表头 A->next=qb;qa=pa;pa=pa->next;qa->next=A->next;//将当前最小结点插入A表表头 A->next=qa;

}

} pb=B;free(pb);return OK;qb=pb;pb=pb->next;qb->next=A->next;A->next=qb;

顺序表就是把线性表的元素存储在数组中,元素之间的关系直接通过相邻元素的位置来表达。

优点:简单,数据元素的提取速度快;

缺点:(1)静态存储,无法预知问题规模的大小,可能空间不足,或浪费存储空间;(2)插入元素和删除元素时间复杂度高——O(n)

求两个集合的并集

4.数据库实验报告, 篇四

实验一、数据定义及更新语句练习一、实验内容

建立如下 mySPJ 数据库,包括S,P,J,与 SPJ 四个基本表(《数据库系统概论》第二章习题 5 中得四个表),要求实现关系得三类完整性. S(SNO,SNAME,STATUS,CITY); P(PNO,PNAME,COLOR,WEIGHT); J(JNO,JNAME,CITY);SPJ(SNO,PNO,JNO,QTY); 二、完成情况

附上按照实验内容编写得程序代码。

(小四号字,宋体)三、实验结果1、插入一条记录

2、

①将 p 表中得所有红色零件得重量增加 5.②将 spj 表中所有天津供应商得 QTY 属性值减少 10。用子查询。

3、利用Delete 语句删除 p 表中得所有红色零件得记录。

附上各个步骤所用得实验用例与结果显示(小四号字,宋体)

四、问题与解决

(小四号字 , 宋体)1

.实验中遇到得问题及解决过程

.实验中产生得错误及原因分析

首先写出执行语句不成功得时候系统报告得错误信息。然后分析错误原因 , 并给出解决办法。

实验二 简单查询与连接查询 一、实验内容

(一)完成下面得简单查询:

①查询所有“天津”得供应商明细;②查询所有“红色"得 14 公斤以上得零件。

③查询工程名称中含有“厂”字得工程明细。

(二)完成下面得连接查询: ①等值连接:求 s 表与 j 表得相同城市得等值连接。

②自然连接:查询所有得供应明细,要求显示供应商、零件与工程得名称,并按照供应、工程、零件排序。

③笛卡尔积:求 s 与p表得笛卡尔积.④左连接:求 j 表与 spj 表得左连接。

⑤右连接:求spj 表与j表得右连接。

二、完成情况

(一)完成下面得简单查询:

①查询所有“天津”得供应商明细;

②查询所有“红色“得 14 公斤以上得零件。

③查询工程名称中含有“厂”字得工程明细。

(二)完成下面得连接查询:

①等值连接:求 s 表与 j 表得相同城市得等值连接.②自然连接:查询所有得供应明细,要求显示供应商、零件与工程得名称,并按照供应、工程、零件排序。

③笛卡尔积:求 s 与 p 表得笛卡尔积。

④左连接:求 j 表与 spj 表得左连接。

⑤右连接:求 spj表与 j 表得右连接。

附上按照实验内容编写得程序代码。

(小四号字 , 宋体)三、实验结果

附上各个步骤所用得实验用例与结果显示(小四号字,宋体)

四、问题与解决

(小四号字 , 宋体)1

。实验中遇到得问题及解决过程

2。实验中产生得错误及原因分析

首先写出执行语句不成功得时候系统报告得错误信息。然后分析错误原因 , 并给出解决办法。

实验三 分组查询与嵌套查询 一、实验内容

(一)分组查询: 1、求各种颜色零件得平均重量。

2、求北京供应商与天津供应商得总个数。

3、求各供应商供应得零件总数。

4、求各供应商供应给各工程得零件总数。

5、求使用了 100个以上 P1 零件得工程名称。

6、求各工程使用得各城市供应得零件总数.

(二)嵌套查询:

1、in 连接谓词查询: ① 查询没有使用天津供应商供应得红色零件得工程名称。

② 查询供应了 1000 个以上零件得供应商名称。(having)2、比较运算符:求重量大于所有零件平均重量得零件名称。

3、Exists 连接谓词: ① 查询供应 J1 得所有得零件都就是红色得供应商名称. ② 至少用了供应商S1 所供应得全部零件得工程号 JNO. 二、完成情况

(一)分组查询:

1、求各种颜色零件得平均重量.

2、求北京供应商与天津供应商得总个数。

3、求各供应商供应得零件总数。

4、求各供应商供应给各工程得零件总数。

5、求使用了100 个以上 P1 零件得工程名称。

6、求各工程使用得各城市供应得零件总数。

(二)嵌套查询:

1、in 连接谓词查询: ① 查询没有使用天津供应商供应得红色零件得工程名称。

② 查询供应了 1000 个以上零件得供应商名称。(having)

SELECT SNAME FROM S WHERE SNO IN(SELECT SNO FROM SPJ GROUP BY SNO

HAVING SUM(QTY)〉=1000)

2、比较运算符:求重量大于所有零件平均重量得零件名称.

3、Exists连接谓词: ① 查询供应 J1 得所有得零件都就是红色得供应商名称。

② 至少用了供应商 S1 所供应得全部零件得工程号 JNO.附上按照实验内容编写得程序代码。

(小四号字 , 宋体)三、实验结果

附上各个步骤所用得实验用例与结果显示(小四号字,宋体)四、问题与解决

1、在选择数据类型时,没有选择正确得数据类型,导致含有 SUM 得语句不能执行。

(小四号字 , 宋体)1

。实验中遇到得问题及解决过程

2.实验中产生得错误及原因分析

首先写出执行语句不成功得时候系统报告得错误信息。然后分析错误原因 , 并给出解决办法。

实验成绩

评价项目 评分等级 独立完成完整得实验内容,结果完全正确,报告内容完整,排版整洁美观,能真实体现实际操作过程及遇到得问题。

A 完成实验,实验内容较为完整,结果正确,报告内容较为完整,排版较为整洁美观,能体现实际操作过程及遇到得问题。

B B 基本完成实验,结果正确,报告内容欠缺,排版较为整洁美观,能体现实际操作过程及遇到得问题。

C C 不能独立完成完整得实验内容,结果不真实,报告内容欠缺,排版欠整洁美观,不能体现实际操作过程及遇到得问题。

5.数据结构实验报告 篇五

篇一:数据结构实验报告范例

《数据结构与算法》实验报告

专业 班级 姓名 学号

实验项目

实验一 二叉树的应用

实验目的

1、进一步掌握指针变量的含义及应用。

2、掌握二叉树的结构特征,以及各种存储结构的`特点及使用范围。

3、掌握用指针类型描述、访问和处理二叉树的运算。

实验内容

题目1:编写一个程序,采用一棵二叉树表示一个家谱关系。要求程序具有如下功能:

(1)用括号表示法输出家谱二叉树,

(2)查找某人的所有儿子,

(3)查找某人的所有祖先。

算法设计分析

(一)数据结构的定义

为了能够用二叉树表示配偶、子女、兄弟三种关系,特采用以下存储关系,则能在二叉树上实现家谱的各项运算。

二叉树型存储结构定义为:

typedef struct SNODE

{char name[MAX]; //人名

struct SNODE *left;//指向配偶结点

struct SNODE *right; //指向兄弟或子女结点

}FNODE;

(二)总体设计

实验由主函数、家谱建立函数、家谱输出函数、儿子查找函数、祖先查找函数、结点定位函数、选择界面函数七个函数共同组成。其功能描述如下:

(1)主函数:统筹调用各个函数以实现相应功能

void main()

(2)家谱建立函数:与用户交互建立家族成员对应关系

void InitialFamily(FNODE *&head) //家谱建立函数

(3)家谱输出函数:用括号表示法输出家谱

输出形式为:父和母(子1和子妻1(孙1),子2和子妻2(孙2))

void PrintFamily(FNODE *head) //家谱输出函数

(4)儿子查找函数:在家谱中查找到某人所有的子女并输出,同时也能辨别出其是否为家族成员与是否有子女

void FindSon(FNODE *b,char p[]) //儿子查找函数

(5)祖先查找函数:在家谱中查找到某人所有的祖先并输出,同时也能辨别出其是否为家族中成员。

int FindAncestor(FNODE *head,char son[ ]) //祖先查找函数

(6)结点定位函数:在家谱中找到用户输入人名所对应的结点。

FNODE *findnode(FNODE *b,char p[]) //结点定位函数

(7)选择界面函数:为便于编写程序,将用户选择部分独立为此函数。

void PRINT(int &n)

(三)各函数的详细设计:

void InitialFamily(FNODE *&head) //家谱建立函数

1:首先建立当前人的信息,将其左右结点置为空,

2:然后让用户确定其是否有配偶,如果没有配偶,则当前程序结束,

3:如果有则建立其配偶信息,并将配偶结点赋给当前人的左结点;

4:再让用户确定其是否有子女,如果有则递归调用家谱建立函数建立子女结点,并将其赋给配偶结点的下一个右结点。

5:如无,则程序结束

void PrintFamily(FNODE *head) //家谱输出函数

1:首先判断当前结点是否为空,如果为空则结束程序;

2:如果不为空,则输出当前结点信息,

3:然后判断其左结点(配偶结点)是否为空,如不为空则输出“和配偶信息。

4:再判断配偶结点的右结点是否为空,如不为空则递归调用输出其子女信息,最后输出“)”;

5:当配偶结点为空时,则判断其右结点(兄弟结点)是否为空

6:如果不为空,则输出“,”,并递归调用输出兄弟信息

7程序结束

FNODE *findnode(FNODE *b,char p[]) //结点定位函数

1:当前结点是否为空,为空则返回空;

2:如果和查找信息相同,则返回当前结点;

3:如不然,则先后递归访问其左结点,再不是则递归访问右结点

void FindSon(FNODE *b,char p[]) //儿子查找函数

1:在家谱中定位到要查找的结点,如无则输出“查找不到此人”

2:判断其配偶结点与子女结点是否为空,为空则输出“无子女”

3:不为空则输出其配偶结点的所有右结点(子女结点)。

int FindAncestor(FNODE *head,char son[ ]) //祖先查找函数

1:先在家谱中定位到要查找的结点,如为空输出“不存在此人”,程序结束

2:先将父母结点入栈,当栈为空时程序结束,

3:栈不为空时,判断栈顶元素是否已访问过,

4:访问过,再判断是否为查找结点,如是则输出栈中保存的其祖先结点,并滤过其兄弟结点不输出;不是查找结点,则退栈一个元素

5:未访问过,则取当前栈顶元素,置访问标志——1,同时取其右结点

6:栈不为空或当前所取结点不为空时,转到2;

实验测试结果及结果分析

(一)测试结果

(二)结果分析

(略)

实验总结

6.数据库实验2报告 篇六

姓名:疏颖 学号:22920152203909 完成日期:2018年4月6日

实验环境:SQLServer2008 实验2.1数据查询 实验要求:

以School数据库为例,在该数据库中存在四张表格,分别为:

 表STUDENTS(sid, sname, email, grade); 表TEACHERS(tid, tname, email, salary); 表COURSES(cid, cname, hour); 表CHOICES(no, sid, tid, cid, score)在数据库中,存在这样的关系:学生可以选择课程,一个课程对应一个教师。在表CHOICES中保存学生的选课记录。

按以下要求对数据库进行查询操作: 实验步骤:

(1)查询年级为2001的所有学生的名称并按编号升序排列。

(2)查询学生的选课成绩合格的课程成绩,并把成绩换算为积点(60分对应积点为1,每增加1分,积点增加0.1)。

(3)查询课时是48或64的课程的名称。

(4)查询所有课程名称中含有data的课程编号。

(5)查询所有选课记录的课程号(不重复显示)。

(6)统计所有教师的平均工资。

(7)查询所有教师的编号及选修其课程的学生的平均成绩,按平均成绩降序

排列。

(8)统计各个课程的选课人数和平均成绩。

(9)查询至少选修了三门课程的学生编号。

(10)查询编号800009026的学生所选的全部课程的课程名和成绩。

(11)查询所有选修了database的学生的编号。

(12)求出选择了同一个课程的学生数。

(13)求出至少被两名学生选修的课程编号。

(14)查询选修了编号80009026的学生所选的某个课程的学生编号。

(15)查询学生的基本信息及选修课程编号和成绩。

(16)查询学号850955252的学生的姓名和选修的课程名及成绩。

(17)查询与学号850955252的学生同年级的所有学生资料。

(18)查询所有有选课的学生的详细信息。

(19)查询没有学生选的课程的编号。

(20)查询课程名为C++的课时一样课程名称。

(21)找出选修课程成绩最好的选课记录。

(22)找出和课程UML或课程C++的课时一样课程名称。

(23)查询所有选修编号10001的课程的学生的姓名。

(24)查询选修了所有课程的学生姓名。

(25)利用集合运算,查询选修课程C++或选修课程Java的学生的编号。

(26)实现集合交运算,查询既选修课程C++又选修课程Java的学生的编号。

(27)实现集合减运算,查询选修课程C++而没有选修课程Java的学生的编号。

实验2.2空值和空集的处理

1.实验步骤:

(1)查询所有选课记录的成绩并将它换算为五分制(满分5分,合格3分),注意SCORE取NULL值的情况。

(2)通过查询选修编号10028的课程的学生的人数,其中成绩合格的学生人数,不合格的学生人数,讨论NULL值的特殊含义。

取null值的数据在含有运算操作的选择语句中不被选择。

(3)通过实验检验在使用ORDER BY进行排序时,取NULL的项是否出现在结果中?如果有,在什么位置?

取null值的数据会出出现在结果中,按最小值进行排序

(4)在上面的查询过程中如果加上保留字DISTINCT会有什么效果?

所有的null值选项只会出现一行。

(5)通过实验说明使用分组GROUP BY对取值为NULL的项的处理。

(6)结合分组,使用集合函数求每个同学的平均分、总的选课侸、最高成绩、最低成绩和总成绩。

(7)查询成绩小于60的选课记录,统计总数、平均分、最大值和最小值。

(8)采用嵌套查询的方式,利用比较运算符和谓词ALL的结合来查询表COURSES中最少的课时。假设数据库中只有一个记录的时候,使用前面的方法会得到什么结果,为什么?

(9)创建一个学生表S(NO,SID,SNAME),教师表T(NO,TID,TNAME)作为实验用的表。其中NO分别是这两个表的主键,其他键允许为空。向S插入元组(1,0129871001,王小明)、(2,0129871002,李兰)、(3,0129871005,NULL)、(4,0129871004,关红); 向T插入元组1,100189,王小明)(2,、100180,李小)(3,、100121,NULL)、(4,100128,NULL)。

对这两个表作对姓名的等值连接运算,找出既是老师又是学生的人员的学生编号和老师编号。

实验总结:

7.数据库实验报告九 篇七

一 实验目的理解身份验证模式;

理解登录账号、服务器角色、数据库角色和数据库用户,以及之间的关系; 能够创建登录账号,创建数据库角色;

能够为数据库用户分配权限;

二 实验内容

(1)建立一个为SQL Server登录账号student1。

(2)将该帐号映射至数据库:学生课程数据库。

(3)指定登录账号student1的服务器角色为sysadmin。

(4)授予用户账号student1的数据库角色为db_owner。

(5)授予用户账号student1的对象权限为数据库中的基本表操作,语句权限为允许SELECT

8.北邮数据结构实验报告-排序 篇八

实验名称: 实验四

排序 学生姓名:

级:

班内序号:

号:

期: 2014年1月4日

实验目的

学习、实现、对比各种排序算法,掌握各种排序算法的优劣,以及各种算法使用的情况。实验内容

2.1 题目1 使用简单数组实现下面各种排序算法,并进行比较。排序算法:

1、插入排序

2、希尔排序

3、冒泡排序

4、快速排序

5、简单选择排序

6、堆排序(选作)

7、归并排序(选作)

8、基数排序(选作)

9、其他

要求:

1、测试数据分成三类:正序、逆序、随机数据

2、对于这三类数据,比较上述排序算法中关键字的比较次数和移动次数(其中关键字交换计为3次移动)。

3、对于这三类数据,比较上述排序算法中不同算法的执行时间,精确到微秒(选作)

4、对2和3的结果进行分析,验证上述各种算法的时间复杂度

编写测试main()函数测试线性表的正确性。程序分析

3.1 存储结构

顺序存储结构——数组

3.2 关键算法分析

1.插入排序:依次将待排序的序列中的每一个记录插入到先前排序好的序列中,直到全部记录排序完毕

void Insertsort(int r[],int n,int* compare,int* move)//插入排序 {

*compare=0;*move=0;int i;int j;for(i=1;i=0;j--){

(*compare)++;

(*move)++;

r[j+1]=r[j];} if(j>=0)(*compare)++;r[j+1]=x;} } 2.希尔排序:先将整个序列分割成若干个子列,分别在各个子列中运用直接插入排序,待整个序列基本有序时,再对全体记录进行一次直接插入排序 void ShellInsert(int r[],int n,int* compare,int* move)//希尔排序 {

*compare=0;*move=0;int j;10 9 12 12 20 20 31 for(int d=n/2;d>=1;d=d/2)//间距越来越小 { for(int i=d;i<=n-1;i++)//从a[d]往后逐个元素确定是否需要前移 { if(r[i]

{

int x=r[i];

for(j=i-d;(j>=0)&&(x

{

(*compare)++;

(*move)++;

r[j+d]=r[j];

}

if(j>=0)(*compare)++;

r[j+d]=x;} else(*compare)++;} } } 3.冒泡排序:两两比较相邻记录的关键码,如果反序则交换,直到没有反序记录为止 void Bubblesort(int r[],int n,int* compare,int* move)//交换(冒泡)排序 { *compare=0;*move=0;int x;for(int j=0;j

for(int i=n-1;i>j;i--)

{

if(r[i]

{

(*compare)++;

(*move)+=3;

x=r[i];

r[i]=r[i-1];

r[i-1]=x;

}

else(*compare)++;

} } } 4.快速排序:首先选择一个基准,将记录分割为两部分,左支小于或等于基准,右支则大于基准,然后对两部分重复上述过程,直至整个序列排序完成

int Partion(int r[],int first,int end,int* compare,int* move)//快速排序中的轴定位 { int i=first;int j=end;int zhou=r[i];//默认第一个元素为轴 while(i=zhou))//查看右侧元素与轴的大小关系

{

(*compare)++;

j--;} if(i

r[i]=r[j];//发现轴右侧的某数比轴值小,将其前置

} while((i

(*compare)++;

(*move)++;

r[j]=r[i];//发现轴左侧的某数比轴值小,将其后置

} } r[i]=zhou;//最后确定轴的位置 return i;}

void Qsort(int r[],int i,int j,int* compare,int* move)//快速排序 { if(i

int min=i;

for(int j=i+1;j

{

(*compare)++;

if(r[j]

min=j;//记录下当前找到的最小值的位置

}

if(min!=i)

{(*move)+=3;

int Min;

Min=r[min];

r[min]=r[i];

r[i]=Min;

}

} } 程序运行结果

4.1主函数流程图

4.2程序运行框图 实验心得

1.调试时出现的问题及解决的方法

在初期构思代码的时候,首先构造了各种算法的基本实现代码,封装成类,已经能够实现七种排序的基本功能,并且测试无误。

之后考虑如何能简化代码以实现多达七种排序算法的简单调用、乱序和顺序以及逆序数据的分别排序和性能指标统计(算法移动次数和比较次数的精确统计)。2.心得体会

程序的优化是一个艰辛的过程,如果只是实现一般的功能,将变得容易很多,当加上优化,不论是效率还是结构优化,都需要精心设计。3.改进

本程序代码设计时运用了递归的调用方式,效率还可以通过将其转换为栈模拟的方式得以提高。另外还可以进一步考虑算法时间的精确统计,以便从时间角度比较这几种排序算法的优劣。

完整源代码

#include using namespace std;

void Insertsort(int r[],int n,int* compare,int* move);void ShellInsert(int r[],int n,int* compare,int* move);void Bubblesort(int r[],int n,int* compare,int* move);int Partion(int r[],int first,int end,int* compare,int* move);void Qsort(int r[],int i,int j,int* compare,int* move);void Selectsort(int r[],int n,int* compare,int* move);

void Insertsort(int r[],int n,int* compare,int* move)//插入排序 {

*compare=0;

{

} }

void ShellInsert(int r[],int n,int* compare,int* move)//希尔排序 { int x=r[i];for(j=i-1;x=0;j--){

} if(j>=0)(*compare)++;r[j+1]=x;(*move)++;r[j+1]=r[j];*move=0;int i;int j;for(i=1;i

(*compare)++;

*compare=0;

{ for(int i=d;i<=n-1;i++)//从a[d]往后逐个元素确定是否需要前移 {

} } }

void Bubblesort(int r[],int n,int* compare,int* move)//交换(冒泡)排序 {

{

for(int i=n-1;i>j;i--)

{

if(r[i]

{

(*compare)++;

(*move)+=3;*compare=0;*move=0;int x;if(r[i]

int x=r[i];

for(j=i-d;(j>=0)&&(x

}(*compare)++;(*compare)++;(*move)++;r[j+d]=r[j];*move=0;int j;for(int d=n/2;d>=1;d=d/2)//间距越来越小

if(j>=0)

r[j+d]=x;} else(*compare)++;for(int j=0;j

x=r[i];

r[i]=r[i-1];

r[i-1]=x;

} }

else(*compare)++;

} }

int Partion(int r[],int first,int end,int* compare,int* move)//快速排序中的轴定位 { int i=first;int j=end;int zhou=r[i];//默认第一个元素为轴 while(i

{ }

if(i=zhou))//查看右侧元素与轴的大小关系 {

} if(i

r[i]=r[j];//发现轴右侧的某数比轴值小,将其前置

(*move)++;

r[j]=r[i];//发现轴左侧的某数比轴值小,将其后置

} } r[i]=zhou;//最后确定轴的位置 return i;}

void Qsort(int r[],int i,int j,int* compare,int* move)//快速排序 { if(i

void Selectsort(int r[],int n,int* compare,int* move)//选择排序 {

{

int min=i;

for(int j=i+1;j

{

(*compare)++;

if(r[j]

min=j;//记录下当前找到的最小值的位置

}

if(min!=i)

{(*move)+=3;

int Min;

Min=r[min];

r[min]=r[i];

r[i]=Min;

}

} }

void main(){ int i;int compare=0;int move=0;cout<<“请您先输入一个正序数组哦”<>n;int *r=new int[n];cout<<“请输入数组中的元素:”;for(i=0;i>r[i];int *a=new int[n];for(i=0;icout<<“再输入一个逆序数组~~~”<>n;cout<<“请输入数组中的元素:”;for(i=0;i>r[i];for(i=0;i9.数据包捕获与协议实验报告 篇九

Ⅰ.实验(实习)名称 :数据包捕获与协议分析

实验(实习)日期

专业姓名:学号:(或使用青岛农业大学实验报告纸)

1、实验目的(1)掌握网络协议分析工具Ethereal的使用方法;

(2)截获数据包并对它们观察和分析,了解协议的运行机制;

2、实验内容:

(1)设计一个捕获HTTP实现的完整过程,并对捕获的结果进行分析和统计。

要求:

(2)设计一个捕获TCP实现的完整过程,并对捕获的结果进行分析和统计。

要求:给出捕获某一数据包后的屏幕截图。以16进制形式显示其包的内容,并分析

TCP报文(源端口、目的端口、序号、确认号,ACK、SYN、窗口等)。

(3)设计一个捕获ICMP实现的完整过程,并对捕获的结果进行分析和统计

要求:给出捕获某一数据包后的屏幕截图。以16进制形式显示其包的内容,并分析

该ICMP报文。

(4)设计一个捕获IP数据包的过程,并对捕获的结果进行分析和统计

要求:给出捕获某一数据包后的屏幕截图。以16进制形式显示其包的内容,并分析

在该数据包中的内容:版本首部长度、服务类型、总长度、标识、片偏移、寿命、协议、源Ip地址、目的地址

10.SPSS数据统计软件实验报告 篇十

专业

信息与计算科学

班级

级班

组别

指导教师

姓名

同组人

实验时间

2018

****年**月**日

实验地点

实验名称

方差分析

实验目的通过对数据的分析,使其掌握用方差分析的方法来比较数据。

实验仪器:

1、支持Intel

Pentium

Ⅲ及其以上CPU,内存256MB以上、硬盘1GB以上容量的微机;

软件配有Windows98/2000/XP操作系统及SPSS软件。

2、了解SPSS软件的特点及系统组成,在电脑上操作SPSS软件。

实验内容、步骤及程序:

一、1.实例内容:

下表给出销售方式对销售量的对比试验数据,利用单因素方差分析来分析不同的销售方式对销售量的影响。

2.实例操作:

Step

01

打开对话框。

打开数据文件,选择菜单栏中的【分析】|【比较均值】|【单因素 ANOVA】命令,弹出【单因素ANOVA检验】对话框。

Step

02

选择因变量。

在候选变量列表框中选择【销售量】变量作为因变量,将其添加至【因变量列表】列表框中。

Step

03

选择因变量。

在候选变量列表框中选择【销售方式】变量,将其添加至【因子】文本框中。

Step

04

定义相关统计选项以及缺失值处理方法。

单击【单因素ANOVA检验】对话框【选项】,在弹出的对话框选中【方差同质性检验】、【平均值图】复选框,然后单击【继续】。

Step

05

事后多重比较。

单击【单因素ANOVA检验】对话框【事后比较】,在弹出图中选中Bonferroni复选框,然后单击【继续】。

Step

06

对组间平方和进行线性分解并检验。

单击【单因素ANOVA检验】对话框【对比】,弹出图的对话框选中【多项式】,将【等级】设为【线性】,单击【继续】返回【单因素ANOVA检验】的对话框。

Step

07

单击【确定】,输出分析结果。

3.实例结果及分析

變異數同質性測試

销售量

Levene

統計資料

df1

df2

顯著性

.346

.793

给出了方差齐性检验的结果。从该表可以得到

Levene方差齐性检验的P值为0.793,与显著性水平0.05相差大,因此基本可以认为样本数据之间的方差是非齐次的。

變異數分析

销售量

平方和

df

平均值平方

F

顯著性

群組之間

(合併)

685.000

228.333

7.336

.003

線性項

比對

196.000

196.000

6.297

.023

偏差

489.000

244.500

7.855

.004

在群組內

498.000

31.125

總計

1183.000

给出了单因素方差分析的结果。从表中可以看出,组间平方和是685、组内平方

和是196,其中组间平方和的的F值为7.336,相应的概率值是0.003,小于显著性水平0.05,因此认为不同的销售方式对销售量有显著的影响。另外,这个表中也给出了线性形式的趋势检验结果,组间变异被销售方式所能解释的部分是196,被其他因素解释的有244.5,并且组间变异被销售方式所能解释的部分是非常显著的4.事后检验

多重比較

因變數:

销售量

Bonferroni

(I)

销售方式

(J)

销售方式

平均差異

(I-J)

標準錯誤

顯著性

95%

信賴區間

下限

上限

1.0

2.0

-7.0000

3.5285

.388

-17.615

3.615

3.0

9.0000

3.5285

.128

-1.615

19.615

4.0

4.0000

3.5285

1.000

-6.615

14.615

2.0

1.0

7.0000

3.5285

.388

-3.615

17.615

3.0

16.0000*

3.5285

.002

5.385

26.615

4.0

11.0000*

3.5285

.040

.385

21.615

3.0

1.0

-9.0000

3.5285

.128

-19.615

1.615

2.0

-16.0000*

3.5285

.002

-26.615

-5.385

4.0

-5.0000

3.5285

1.000

-15.615

5.615

4.0

1.0

-4.0000

3.5285

1.000

-14.615

6.615

2.0

-11.0000*

3.5285

.040

-21.615

-.385

3.0

5.0000

3.5285

1.000

-5.615

15.615

*.平均值差異在0.05

層級顯著。

给出了多重比较的结果,*表示该组均值差是是显著的。因此,从表中可以看出,第二组和第三组、第四组的销售量均值差是非常明显的,但是第三组与第四组的销售量均值差话相却不是很明显。另外,还可以得到每组之间均值差的标准误差、置信区间等信息。

平均值圖形

给出了各组的均值图。从图可以清楚地看到不同的施肥类型对应不同的销售量均

值。可见,第三组的销售量最低,且与其他两组的销售量均值相差较大,而第二组和和第三组之间的销售量均值差异不大,这个结果和多重比较的结果非常一致

二、1.实例内容:

某研究机构研究了3种动物饲料对4种品系小鼠体重增加的影响,数据如图下所示,变量a为饲料种类,变量b为鼠的品系,变量x为增重克数。

2.实例操作:

Step

01

打开对话框。

打开数据文件,选择菜单栏中的【分析】|【一般线性模型】|【单变量】命令,弹出【单变量】对话框,如图所示。

Step

02

选择观测变量。

在候选变量列表框中选择【体重】变量作为因变量,将其添加至【因变量】列表框中。

Step

03

选择因素变量。

选择【饲料类型】和和【小鼠品系】变量作为因素变量,将它们添加至【固固定因子】列表框中,如图所示。

Step

04选择多重比较。

单击【模型】按按钮,弹弹出【单变量:模型】对话框,如图5.23所示。选中【定制】单选按钮,在左侧列表框中选择“因因素a”和“因因素b”变量并移至【模型】列表框中。选择【构建项】选项组中【类型】下拉列表框中的【主效应】选项,再单击【继继续】按钮,返回主对话框。

Step

05其他选项选择。

单击【图】按钮,弹出图5.24所示【单变量:轮廓图】对话框。将因素b放入【单独的线条】框,将因素a放入【水平轴)】文本框,单击【添加】按钮,再单击【继续续】按钮,返回主对话框。

单击【事后比较】按钮,弹出图所示对话框。将因素a和因素b放入【下列各项的事后检验】列表框,比较方法选择LSD法。

单击【选项】按钮,弹出图5.26所示【单变量:选项】对话框。将因素a和因素b放入【显示下列各项的平均值】列表框,选中【比较主效应】复选框。选中【描述统计】复选框表示输出描述性统计量;选中【齐性检验】复选框表示输出方差齐性检验表。再单击【继续】按钮,返回主对话框。

Step

06

完成操作。

最后,单击【确确定】按钮,操作作完成。

3.实例结果及分析

(1)主体间效应检验表

表所示为主效应模型检验,结果可见校正模型统计量F=6.772、P=0.000,说明模型有统计学意义。因素a和因素b均有统计学意义,P=0.000、P=0.037,均小于0.05。

主旨間效果檢定

因變數:

体重

來源

第III

類平方和

df

平均值平方

F

顯著性

修正的模型

8929.625a

1785.925

6.772

.000

截距

167796.750

167796.750

636.304

.000

a

6487.875

3243.938

12.301

.000

b

2441.750

813.917

3.086

.037

錯誤

11075.625

263.705

總計

187802.000

校正後總數

20005.250

a.R

平方

=

.446(調整的R

平方

=

.380)

(2)成对比较表。

表所示为不同饲料类型两两比较结果,从Sig值(即P值)可见,饲料B与饲料C没有差异(p=0.117),其余均有差异,p<0.05。

成對比較

因變數:

体重

(I)

饲料类型

(J)

饲料类型

平均差異

(I-J)

標準錯誤

顯著性b

95%

差異的信賴區間b

下限

上限

A饲料

B饲料

18.750*

5.741

.002

7.163

30.337

C饲料

27.938*

5.741

.000

16.351

39.524

B饲料

A饲料

-18.750*

5.741

.002

-30.337

-7.163

C饲料

9.188

5.741

.117

-2.399

20.774

C饲料

A饲料

-27.938*

5.741

.000

-39.524

-16.351

B饲料

-9.188

5.741

.117

-20.774

2.399

根據估計的邊際平均值

*.平均值差異在.05

層級顯著。

b.調整多重比較:最小顯著差異(等同於未調整)。

(3)均值图

图所示为不同品系小鼠喂养不同饲料的体重增重的均值图。可见A饲料较好,B饲料和C饲料差异不大。

实验小结:

通过该实验,让我懂得了利用数学思想解决实际问题,很好的把数学运用到实际生活中,在今后的学习中我会再接再厉的。

教师评语:

1.实验结果及解释:(准确合理、较准确、不合理);占30%

2.实验步骤的完整度:(完整、中等、不完整);占30%

3.实验程序的正确性:(很好、较好、中等、较差、很差);占30%

4.卷面整洁度:(很好、较好、中等、较差、很差);占10%

评定等级:()

教师签名:

11.数据库上机实验报告 篇十一

学生上机报告

学院计算机与通信学院课程名称数据库原理

学生姓名侯予南学号05550204

专业班级基地班05级1班

上机日期2008年4月17日

指导教师李明

上机实验报告

(一)实验内容:

1、熟悉SQL Server 2000应用环境;

熟悉查询分析器的使用方法;

2、运行课堂示例:建立表Teacher , Course ;

进行数据插入、查询、更新、建立视图、创建触发器等操作;

3、完成作业(P108 第5题,P145第5题);

4、完成实验报告。

实验环境:

数据库系统:SQL Server 2000

实验过程:

在实验中发现的问题:

小结:

教师评语:

上一篇:经典正能量晚安祝福语100句下一篇:婚礼时朗诵诗歌