(完整版)“黄金矿工”实验报告

(完整版)“黄金矿工”实验报告
(完整版)“黄金矿工”实验报告

中国石油大学(华东)

程序设计实训报告

“黄金矿工”实验报告游戏截图

图一:开始游戏

图二:按下空格键开始游戏,出现金块,钩子转动

图三:按下↓键,钩子停止转动,开始下放,抓取金块

图四:抓完金块后返回初始界面

功能描述

1、游戏运行,初始界面出现“空格开始”的提示。

2、玩家按下空格键,开始游戏。

3、游戏开始后,界面随机出现20个大小不同的金子,并且钩

子开始转动。

4、按下↓键,钩子停止转动,下放,抓取金子。

5、抓到金子后,返回到初始位置,被抓到的金子消失。

6、用户继续按下↓键,继续抓取金子,直到金子被抓取完,

这样一局游戏完成。

7、一局游戏完成后,屏幕重新出现“空格开始”的标志,用

户按下空格可以继续游戏,如此往复。

流程图:

数据结构:

1、g_fGoldBornMinX 金子左边界

2、g_fGoldBornMaxX 金子右边界

3、g_fGoldBornMinY 金子上边界

4、g_fGoldBornMaxY 金子下边界

5、g_iGoldCount 屏幕中金子数目

6、g_iGameState 设置游戏状态

7、szGotGoldName[20] 当前抓到金子的名称

8、g_fHookRotation 钩子的转动的角速度

9、g_fEmptyHookSpeed 钩子的下放的初始速度

10、g_fHookStartPosX 存储钩子的初始X位置

11、g_fHookStartPosY 存储钩子的初始Y位置

算法描述:

游戏状态g_iGameState分为三种状态0,1,2 ,其中0表示游戏结束状态,1表示游戏初始化,2则表示游戏运行状态;

0 → 1的转换为“空格开始”;

1 →2的转换自然发生,即游戏初始化函数后会自动将游戏状态从1置为2;

2 表示游戏运行状态,在该状态,按下↓键可以抓取金子;

2 → 0的转换为当金子全被抓完后会自动将游戏状态从2置为0;金子精灵的初始化:

1、创建金子精灵的对象;

2、生成大小为4的小金块10个、大小为6的中金块6个、大小

为8的大金块4个,并保存tmpName数组中,随机获取每个金子的坐标;

3、隐藏“空格开始”精灵;

4、设置屏幕中剩下的金子数目为20,每当被抓走的一块金子消失

后屏幕中剩下的金子数目减1;

5、当屏幕中剩下的金子数目为0时,一局游戏结束,返回初始界

面,“空格开始”精灵出现;

6、重新进行金子精灵的初始化;

dOnKeyDown(const int iKey, const bool bAltPress, const bool bShiftPress, const bool bCtrlPress ) 游戏开始和控制按钮:

1、游戏还未开始,即游戏状态为0,如果空格按被下,则将游戏状态改为1,此时对程序的数据进行初始化,“空格开始”精灵消失,金子出现,钩子转动;

2、游戏状态为0时并按下空格键后,,如果按下↓键,钩子开始下放抓金子,当抓到金子后,游戏的状态变为2游戏正式开始运行;

3、游戏状态为2时,钩子抓住金子后,按照金子的大小设置金子的速度,金子越大,回拉速度越小;

4、当钩子和金子回到初始位置后,被抓的金子消失;

源代码:

在Main.cpp文件中

//-----------------------------------------------------------------------------

//

//-----------------------------------------------------------------------------

#include "CommonAPI.h"

#include "stdio.h"

#include "string.h"

void DrawHookLine();

int g_fGoldBornMinX = 0;

int g_fGoldBornMaxX = 0;

int g_fGoldBornMinY = 0;

int g_fGoldBornMaxY = 0;

int g_iGoldCount = 20;

int g_iGameState=2;

int flag=1;

int flagnum=0;

char szGotGoldName[20] ; //当前抓到金子的名称

float g_fHookRotation = 0.f;

float g_fEmptyHookSpeed =35.f;

float fTimeDelta;

float g_fHookStartPosX; //存储钩子的初始X位置

float g_fHookStartPosY; //存储钩子的初始Y位置

/////////////////////////////////////////////////////////////////////////////////////////// //

// 主函数入口

//

////////////////////////////////////////////////////////////////////////////////////////// int PASCAL WinMain(HINSTANCE hInstance,

HINSTANCE hPrevInstance,

LPSTR lpCmdLine,

int nCmdShow)

{

// 初始化游戏引擎

if( !dInitGameEngine( hInstance, lpCmdLine ) )

return 0;

// 游戏初始化代码

dSetWindowTitle("黄金矿工");

g_fGoldBornMinX = dGetScreenLeft() + 5; //金子左边界

g_fGoldBornMaxX = dGetScreenRight() - 5; //金子右边界

g_fGoldBornMinY = dGetScreenTop() + 20; //金子上边界

g_fGoldBornMaxY = dGetScreenBottom() - 5; //金子下边界

g_fHookStartPosX = dGetSpritePositionX("GoldHook"); //获取钩子的初始X坐标

g_fHookStartPosY = dGetSpritePositionY("GoldHook"); //获取钩子的初始Y坐标

dSetSpriteCollisionSend("goldHook", 1);

dSetSpriteCollisionReceive("goldTemplate", 1);

const float fRotateSpeed = 45.f; // 摇摆速度,单位度/秒

int iHookRotToLeft = 1; //钩子摆动的方向:1 ← ;0 →

float fTimeDelta = dGetTimeDelta();

// 引擎主循环,处理屏幕图像刷新等工作

while( dEngineMainLoop() )

{

// 获取两次调用之间的时间差,传递给游戏逻辑处理

float fTimeDelta = dGetTimeDelta();

DrawHookLine();

// 执行游戏主循环

if(g_iGameState == 0)

{

float fThisRotate = fRotateSpeed * fTimeDelta;

if( iHookRotToLeft )

{

g_fHookRotation += fThisRotate;

if( g_fHookRotation >= 180.f )

{

g_fHookRotation = 180.f;

iHookRotToLeft = 0;

}

}

else

{

g_fHookRotation -= fThisRotate;

if( g_fHookRotation <= 0.f )

{

g_fHookRotation = 0.f;

iHookRotToLeft = 1;

}

}

dSetSpriteRotation("GoldHook",g_fHookRotation);

}

else if(g_iGameState == 1)

{

dAnimateSpritePlayAnimation("goldMan","GolderManAnimation3", 1 ); //播放拉金块的动作

//获取钩子X方向的速度

float fSpeedX = dGetSpriteLinearVelocityX("GoldHook");

//获取钩子Y方向的速度

float fSpeedY = dGetSpriteLinearVelocityY("GoldHook");

//当速度接近为0时,即可判定其已到达初始点

if( fSpeedX < 0.00001f && fSpeedX > -0.00001f && fSpeedY < 0.00001f && fSpeedY > -0.00001f )

{

//解除金块与钩子的锚定

dSpriteDismount(szGotGoldName);

//删除获取的金块

dDeleteSprite(szGotGoldName);

//回拉结束,设定状态为0

g_iGameState = 0;

//播放矿工的动画,即准备拉金子的动画

if(flagnum)

{g_iGoldCount--;

}

}

}

// 播放挖金者的动作(恢复初始守候动作)

dAnimateSpritePlayAnimation("goldMan", "GolderManAnimation2", 1);

if(g_iGoldCount==0)

{

g_iGameState = 0;

dSetSpriteVisible("GameBegin",1);

g_iGoldCount = 20;

flag=1;

}

};

dAnimateSpritePlayAnimation("goldMan", "GolderManAnimation2", 1);

// 关闭游戏引擎

dShutdownGameEngine();

return 0;

}

//========================================================================= =

//

// 引擎捕捉鼠标移动消息后,将调用到本函数

void dOnMouseMove( const float fMouseX, const float fMouseY )

{

// 可以在此添加游戏需要的响应函数

}

//========================================================================= =

//

// 引擎捕捉鼠标点击消息后,将调用到本函数

void dOnMouseClick( const int iMouseType, const float fMouseX, const float fMouseY )

{

// 可以在此添加游戏需要的响应函数

}

//========================================================================= =

//

// 引擎捕捉键盘按下消息后,将调用到本函数

// iAltPress iShiftPress iCtrlPress 分别为判断Shift,Alt,Ctrl当前是否也处于按下状态。比如可以判断Ctrl+E组合键

void dOnKeyDown( const int iKey, const int iAltPress, const int iShiftPress, const int iCtrlPress )

{

// 可以在此添加游戏需要的响应函数

if(iKey==KEY_SPACE)

{

g_iGameState = 1; // 初始化之后,将游戏状态设置为进行中

dSetSpriteVisible("GameBegin",0);

//生成金子

int iLoop = 0; //循环变量控制

int iSize = 4, iPosX = 0, iPosY = 0; //iSize表示金块大小的变量

if(flag)

{

for( iLoop = 0; iLoop < g_iGoldCount; iLoop++ )

{

if( iLoop < 10 )//生成10个小金块,大小为4

{

iSize = 4;

}

else if( iLoop >= 10 && iLoop < 16 )//生成6个中金块,大小为6

{

iSize = 6;

}

else//生成4个大金块,大小为8

{

iSize = 8;

}//初始化金子精灵实例

char* tmpName;

tmpName=dMakeSpriteName("GoldBlock",iLoop); //生成金块名字

dCloneSprite("goldTemplate",tmpName);

dSetSpriteWidth(tmpName,(float)iSize); //设置金块的宽度

dSetSpriteHeight(tmpName,(float)iSize); //设置金块的高度

//设置金子精灵位置

iPosX = dRandomRange(g_fGoldBornMinX,

g_fGoldBornMaxX);

iPosY = dRandomRange(g_fGoldBornMinY,

g_fGoldBornMaxY);

dSetSpritePosition(tmpName,(float)iPosX, (float)iPosY);

flag=0;

}

}

if(g_iGoldCount==0)

{

flag=1;

g_iGoldCount=20;

}

}

if( iKey == KEY_DOWN &&g_iGameState ==0 )

{ //按下↓并且游戏状态为"0"

g_iGameState = 2; //置游戏状态为2,可用于控制钩子是否摆动

// 以当前朝向给钩子一个向前的速度

dSetSpriteLinearVelocityPolar("GoldHook",g_fEmptyHookSpeed,

g_fHookRotation);

// 播放挖金者的动作(一个胳膊往下压的动作)

dAnimateSpritePlayAnimation("goldMan","GolderManAnimation1", 0);

//0 表示播放一次,这里胳膊往下压就是一次

}

}

//========================================================================= =

//

// 引擎捕捉键盘弹起消息后,将调用到本函数

void dOnKeyUp( const int iKey )

{

// 可以在此添加游戏需要的响应函数

}

//========================================================================= ==

//

// 引擎捕捉到精灵与精灵碰撞之后,调用此函数

void dOnSpriteColSprite( const char *szSrcName, const char *szTarName )

{

// 发起者为GoldHook,接受者含有GoldBlock字段

if(strcmp(szSrcName,"GoldHook")== 1 && strstr(szTarName,"GoldBlock")!=NULL )

{

dSpriteMountToSpriteLinkPoint( szTarName, "GoldHook", 2 );//将金块锚定在钩子上

dSpriteMoveTo("GoldHook",g_fHookStartPosX, g_fHookStartPosY, g_fEmptyHookSpeed, 1); //使钩子向初始位置移动,即会拉

strcpy(szGotGoldName,szTarName); //复制并保存当前抓取到金块的名称

// 发起者为GoldHook,接受者含有GoldBlock字段

// 根据金子大小,计算钩子的往回收的速度,越大的越慢。

// 算法:之前设置的金子大小为4,6,8,用10减去该大小再除以10,得到3个小// 数:0.6,0.4,0.2.该小数乘以空钩子的速度即得到挂接不同金子后的实际速度

float fWidth = dGetSpriteWidth( szTarName );

float fSpeed = ((10.f - fWidth) / 10.f) * g_fEmptyHookSpeed;

// 钩子往初始位置移动

dSpriteMoveTo( "goldhook", g_fHookStartPosX, g_fHookStartPosY, fSpeed, 1);

dAnimateSpritePlayAnimation("goldMan","GolderManAnimation1", 0 );

//播放拉金块的动作

g_iGameState = 1;

flagnum=1;

}

}

//========================================================================= ==

//

// 引擎捕捉到精灵与世界边界碰撞之后,调用此函数.

// iColSide : 0 左边,1 右边,2 上边,3 下边

void dOnSpriteColWorldLimit( const char *szName, const int iColSide )

{

if(strcmp(szName,"GoldHook")!=0)

{

//碰到边界的为钩子时

dSpriteMoveTo(szName,g_fHookStartPosX, g_fHookStartPosY, g_fEmptyHookSpeed, 1);

dAnimateSpritePlayAnimation("goldMan","GolderManAnimation3", 0); //播放拉金块的动作

//同样设置为回拉,只是没有碰到金子

g_iGameState = 1;

flagnum=0;

}

}

void DrawHookLine()

{

// 首先,从矿工精灵上获取一个缆绳链接点作为绳子的起始点(该链接点在编

// 辑器里编辑好)

float fStartX = dGetSpriteLinkPointPosX( "GoldMan", 1 );

float fStartY = dGetSpriteLinkPointPosY( "GoldMan", 1 );

// 绳子终点在钩子精灵上获取(该链接点在编辑器里编辑好)

float fEndX = dGetSpriteLinkPointPosX( "GoldHook", 1 );

float fEndY = dGetSpriteLinkPointPosY( "GoldHook", 1 );

// 在这两点之间划线.线的颜色红绿蓝值都为50,即灰色

dDrawLine( fStartX, fStartY, fEndX, fEndY, 2.f, 0, 50, 50, 50, 255 );

}

8、游戏运行,初试界面出现‘空格开始’的提示。

文丘里流量计实验实验报告

文丘里流量计实验实验报告 实验日期:2011.12.22 一、实验目的: 1、学会使用测压管与U 型压差计的测量原理; 2、掌握文丘里流量计测量流量的方法和原理; 3、掌握文丘里流量计测定流量系数的方法。 二、实验原理: 流体流径文丘里管时,根据连续性方程和伯努利方程 Q vA =(常数) H g v p z =++22 γ(常数) 得不计阻力作用时的文丘里管过水能力关系式(1、2断面) h K p z p z g d d d Q ?=?????????? ??+-???? ? ?+???? ??-=γγπ221141222214 1 由于阻力的存在,实际通过的流量Q '恒小于Q 。引入一无量纲系数Q Q '=μ(μ称为流量系数),对计算所得的流量值进行修正。 h K Q Q ?=='μμ h K Q ?' =μ 在实验中,测得流量Q '和测压管水头差h ?,即可求得流量系数μ,μ一般在0.92~0.99之间。 上式中 K —仪器常数 g d d d K 214 141222???? ??-=π h ?—两断面测压管水头差 ??? ? ??+-???? ??+=?γγ2211p z p z h h ?用气—水多管压差计或电测仪测得,气—水多管压差计测量原理如下图所示。

1h ? 2h ? H 3 1H 2H 1z 2z 气—水多管压差计原理图 根据流体静力学方程 γγ22231311 p H h H h H H p = +?-+?--- 得 221121H h h H p p -?+?++=γγ 则 )()(222211212211γγγγp z H h h H p z p z p z +--?+?+++=??? ? ??+-???? ?? + 212211)()(h h H z H z ?+?++-+= 由图可知 )()(4321h h h h h -+-=? 式中,1h 、2h 、3h 、4h 分别为各测压管的液面读数。 三、实验数据记录及整理计算(附表) 文丘里流量计实验装置台号:2 d1=1.4cm d2=0.7cm 水温t=13.1℃ v=0.01226cm 2/s 水箱液面标尺值▽0=38cm 管轴线高程标尺值▽=35.7cm 实验数据记录表见附表 四、成果分析及小结: 经计算 K=17.60cm 2.5/s u=1.064 由实验计算结果看各组数据的相差较大,可以判断实验的精密度不高,实验 与理论值有偏差。误差来源主要有实验测量值的不准确,人为造成的主管因素较大。 五、问题讨论: 为什么计算流量Q 理论与实际流量Q 实际不相等? 答:因为实际流体在流动过程中受到阻力作用、有能量损失(或水头损失),而计算流量是假设流体没有阻力时计算得到的,所以计算流量恒大于实际流量。

哈希表实验报告完整版

实验报告 姓名:学号: 1.实验题目 针对某个集体中人名设计一个哈希表,使得平均查找长度不超过R,并完成相应的建表和查表程序。 基本要求:假设人名为中国人姓名的汉语拼音形式。待填入哈希表的人名共有30个,取平均查找长度的上限为2。哈希函数用除留余数法构造,用线性探测再散列法或链地址法处理冲突。 2.需求分析 本演示程序用VC编写,完成哈希函数用除留余数法构造,用线性探测再散列法或链地址法处理冲突。 输出形式:地址,关键字,收索长度,H(key),拼音 3.概要设计 typedef struct NAME typedef struct hterm void InitNameList() void CreateHashList() void FindList() void Display() int main() 4.详细设计 #include #include #include

#define HASH_LEN 50 #define M 47 #define NAME_NO 8 typedef struct NAME { char *py; //名字的拼音 int k; //拼音所对应的整数}NAME; NAME NameList[HASH_LEN]; typedef struct hterm //哈希表{ char *py; //名字的拼音 int k; //拼音所对应的整数int si; //查找长度 }HASH; HASH HashList[HASH_LEN]; void InitNameList() { NameList[0].py="houxinming"; NameList[1].py="abc"; NameList[2].py="defdgf"; NameList[3].py="zhangrji"; NameList[4].py="jiaxin"; NameList[5].py="xiaokai"; NameList[6].py="liupeng"; NameList[7].py="shenyonghai";

数据库系统实验报告 实验三 数据控制(安全性)..

《数据库系统概论》实验报告 题目:实验三数据控制(安全性) 班级姓名学号日期2014年6月6日 一、实验目的 1.通过SQL对数据库进行安全性控制 2.完成教材中例题的上机练习 二、实验平台 微软SQL Server 2000或以上版本。 对于SQL Server 2000,使用查询分析器运行SQL语句,对于SQL Server 2005以上的版本,使用SQL Server Management Studio运行SQL语句。 三、实验内容和要求 使用SQL对数据进行安全性控制,包括授权和权力回收。 操作完成后,查看授权用户是否真正具有所授予的数据操作权利,在权力回收操作之后,用户是否确实丧失了所回收的数据操作权力。 在前几次实验中已经建立了实验数据库,继续在此数据库上进行实验所要求的各项操作。认真填写实验报告,记录所有的实验用例。 四、实验步骤 1.以管理员sa登录数据库,新建DB数据库,然后运行如下SQL语句,创建 我们前几次实验所建立的表。 CREATE TABLE course ( Cno char(4) NOT NULL, Cname char(40) DEFAULT NULL, Cpno char(4) DEFAULT NULL, Ccredit smallint DEFAULT NULL, PRIMARY KEY (Cno) ) ; -- -- 转存表中的数据'course' -- INSERT INTO course (Cno, Cname, Cpno, Ccredit) V ALUES ('1', '数据库', '5', 4); INSERT INTO course (Cno, Cname, Cpno, Ccredit) V ALUES ('2', '数学', NULL, 2);

实验报告内容与格式

实验报告内容与格式标准化管理部编码-[99968T-6889628-J68568-1689N]

把实验的目的、方法、过程、结果等记录下来,经过整理,写成的书面汇报,就叫实验报告。 实验报告的种类因科学实验的对象而异。如化学实验的报告叫化学实验报告,物理实验的报告就叫物理实验报告。随着科学事业的日益发展,实验的种类、项目等日见繁多,但其格式大同小异,比较固定。实验报告必须在科学实验的基础上进行。它主要的用途在于帮助实验者不断地积累研究资料,总结研究成果。 实验报告的书写是一项重要的基本技能训练。它不仅是对每次实验的总结,更重要的是它可以初步地培养和训练学生的逻辑归纳能力、综合分析能力和文字表达能力,是科学论文写作的基础。因此,参加实验的每位学生,均应及时认真地书写实验报告。要求内容实事求是,分析全面具体,文字简练通顺,誊写清楚整洁。 实验报告内容与格式 (一) 实验名称 要用最简练的语言反映实验的内容。如验证某程序、定律、算法,可写成“验证×××”;分析×××。 (二) 所属课程名称 (三) 学生姓名、学号、及合作者 (四) 实验日期和地点(年、月、日) (五) 实验目的 目的要明确,在理论上验证定理、公式、算法,并使实验者获得深刻和系统的理解,在实践上,掌握使用实验设备的技能技巧和程序的调试方法。一般需说明是验证型实验还是设计型实验,是创新型实验还是综合型实验。 (六) 实验内容 这是实验报告极其重要的内容。要抓住重点,可以从理论和实践两个方面考虑。这部分要写明依据何种原理、定律算法、或操作方法进行实验。详细理论计算过程。 (七) 实验环境和器材 实验用的软硬件环境(配置和器材)。 (八) 实验步骤 只写主要操作步骤,不要照抄实习指导,要简明扼要。还应该画出实验流程图(实验装置的结构示意图),再配以相应的文字说明,这样既可以节省许多文字说明,又能使实验报告简明扼要,清楚明白。 (九) 实验结果 实验现象的描述,实验数据的处理等。原始资料应附在本次实验主要操作者的实验报告上,同组的合作者要复制原始资料。 对于实验结果的表述,一般有三种方法: 1。文字叙述: 根据实验目的将原始资料系统化、条理化,用准确的专业术语客观地描述实验现象和结果,要有时间顺序以及各项指标在时间上的关系。 2。图表: 用表格或坐标图的方式使实验结果突出、清晰,便于相互比较,尤其适合于分组较多,且各组观察指标一致的实验,使组间异同一目了然。每一图表应有表目和计量单位,应说明一定的中心问题。

数据结构课程设计--哈希表实验报告

福建工程学院 课程设计 课程:算法与数据结构 题目:哈希表 专业:网络工程 班级:xxxxxx班 座号:xxxxxxxxxxxx 姓名:xxxxxxx 2011年12 月31 日 实验题目:哈希表 一、要解决的问题 针对同班同学信息设计一个通讯录,学生信息有姓名,学号,电话号码等。以学生姓名为关键字设计哈希表,并完成相应的建表和查表程序。 基本要求:姓名以汉语拼音形式,待填入哈希表的人名约30个,自行设计哈希函数,用线性探测再散列法或链地址法处理冲突;在查找的过程中给出比较的次数。完成按姓名查询的操作。 运行的环境:Microsoft Visual C++ 6.0 二、算法基本思想描述 设计一个哈希表(哈希表内的元素为自定义的结构体)用来存放待填入的30个人名,人名为中国姓名的汉语拼音形式,用除留余数法构造哈希函数,用线性探查法解决哈希冲突。建立哈希表并且将其显示出来。通过要查找的关键字用哈希函数计算出相应的地址来查找人名。通过循环语句调用数组中保存的数据来显示哈希表。 三、设计 1、数据结构的设计和说明 (1)结构体的定义 typedef struct //记录 { NA name; NA xuehao; NA tel; }Record;

{ Record *elem[HASHSIZE]; //数据元素存储基址 int count; //当前数据元素个数 int size; //当前容量 }HashTable; 哈希表元素的定义,包含数据元素存储基址、数据元素个数、当前容量。 2、关键算法的设计 (1)姓名的折叠处理 long fold(NA s) //人名的折叠处理 { char *p; long sum=0; NA ss; strcpy(ss,s); //复制字符串,不改变原字符串的大小写 strupr(ss); //将字符串ss转换为大写形式 p=ss; while(*p!='\0') sum+=*p++; printf("\nsum====================%d",sum); return sum; } (2)建立哈希表 1、用除留余数法构建哈希函数 2、用线性探测再散列法处理冲突 int Hash1(NA str) //哈希函数 { long n; int m; n=fold(str); //先将用户名进行折叠处理 m=n%HASHSIZE; //折叠处理后的数,用除留余数法构造哈希函数 return m; //并返回模值 }Status collision(int p,int c) //冲突处理函数,采用二次探测再散列法解决冲突{ int i,q; i=c/2+1; while(i=0) return q; else i=c/2+1; } else{ q=(p-i*i)%HASHSIZE; c++;

SQL 数据库实验报告3

一、实验内容 (1)掌握在SQL Server管理平台中对表进行插入、修改和删除数据操作的方法。 (2)掌握使用Transact-SQL语句对表进行插入、修改和删除数据操作的方法。 二、实验器材(设备、元器件) Window7操作系统,SQL Server软件 三、实验步骤 (1)启动SQL Server管理平台,在对象资源管理器中展开studentsdb数据库文件夹。 (2)在studentsdb数据库中包含有数据表student_info、curriculum、grade,这些表的数据结构如图所示在studentsdb数据库中包含有数据表student_info、curriculum、grade,这些表的数据结构如图所示 (3)在SQL Server管理平台中创建student_info、curriculum表。 学生基本情况表student_info 课程信息表curriculum

①启动SQL Server管理平台,在对象资源管理器中展开studentsdb数据库文件夹。 ②在SQL Server管理平台中创建student_info表。 ③在SQL Server管理平台中创建curriculum表。 (4)使用Transact-SQL语句CREATE TABLE在studentsdb数据库中创建表 学生成绩表grade

①新建查询,输入Transact-SQL语句,点击执行 ②出现如下界面,学生成绩表grade建立成功 (5)在SQL Server管理平台中,将student_info表的学号列设置为主键,非空。

(6)student_info、curriculum、grade表中的数据如图所示。 student_info的数据 curriculum的数据 grade的数据 (7)在SQL Server管理平台中为student_info表添加数据

实验报告格式及写法

实验报告格式及写法 (一)实验报告的特点 1.实录性实验报告是实验研究工作的如实记录。内容包括整个实验的主要过程,如实验步骤、方法、实验结果等。 2.科学性科技实验报告既可以描述创新的内容,又可以记述重复实验的工作。另外,实验报告可以不要求具有明确的结论,只要对科学研究有参考或借鉴价值,无论结果是否达到预期要求,都可以写成科学实验报告。 3.目的性以如实记载实验过程与结果为目的的所有科学实验工作都可以写成科技实验报告 4.规范性一般的实验报告如分析报告、教学中的实(试)验报告、病理化验单等,内容比较单一,而且项目固定,并按一定的格式印成表,由实验者根据要求逐项填写;比较复杂的实验,要按一定的格式写成实验报告,其写作方法具有特定的规范性。 (二)实验报告的种类 1.教学实验报告这类实验报告主要指理工科大学生撰写的实验报告。重复科学技术史上前人已做过的实验,目的是为了验证某一学科定律或结论,训练学生的动手能力和表达能力。其实验步骤和方法一般是由教师自己拟定的,只不过是教学中的一个环节。这种实验报告通常印制成表格,由实验者逐项填写。它是重复前人已做过的实验,不具有学术价值。

2.科技实验报告这类实验报告主要指科技工作者撰写的实验报告。它是描述、记录某项科研课题实验的过程和结果的报告,是科技报告中应用范围广泛的一种报告形式。它是科技工作者自己设计、具有新的实验过程和结果的记录。不是简单重复和再现前人的成果。这类实验报告往往具有科技创新意义和学术价值。 三、实验报告的格式写法 实验报告的写作格式主要包括以下几个部分: 1.标题即实验或试验项目的名称。有时在项目之前加“关于”两字。如“关于xxx的实验报告”。实验报告标题要力求明确、醒目,集中反映实验的内容。 2.作者及单位凡是直接参加实验研究的全部工作或主要工作,能对报告负责的人,都要署名并写明所在单位,这样既表明了成果的归属,同时也是文责自负,也便于读者联系。署名要用真名,不能用笔名,单位要写明全称和地址。 3.摘要摘要是对报告内容不加注释和评论的简短陈述,内容具有独立性、自含性,即不阅读报告的全文,就能获得必要的信息。也供文摘等二次文献采用。写摘要要注意:一般应说明实验的目的、方法、结果和最终结论等;一般不用图、表、化学结构式等;字数一般不超过200字;位于正文之前。 4正文 (1)引言。引言部分应是一系列间题的说明,如:研究的对象、实验的意义和作用;此前该项工作的发展概况以及存在的问题;本实

哈希表实验报告

数据结构实验报告四——哈希表查找名字(字符串) 实验题目:哈希表查找名字(字符串) 实验目标: 输入一组名字(至少50个),将其保存并利用哈希表查找。输出哈希查找冲突次数,哈希表负载因子、查找命中率。 数据结构: 哈希表与数组(二维)。二维数组用于静态顺序存储名字(字符串),哈希表采用开放定址法,用于存储名字(字符串)对应得关键字并实现对名字(字符串)得查找。 需要得操作有: 1、关键字求取(主函数中两次出现,未单独编为函数) 关键字key=abs(字符串首位ASCII码值-第二位ASCII码值+第([]+1)位ASCII码值-最后一位ASCII码值-倒数第二位ASCII码值)*字符串长度(abs为求整数绝对值得函数)。 2、处理关键字得哈希函数(Hash) 利用平方取中法求关键值key在哈希表中得位置。公式add=(key*key)%1000/LENGTH(a dd为key在哈希表中得地址)。 int Hash(intkey) { ?return((key*key)/1000%LENGTH); } 3、处理哈希表中冲突得函数(Collision) 利用线性探测再散列处理冲突,利用全局变量count统计冲突次数。 int Collision(intkey,int Hashtable[]) { inti; for(i=1;i<=LENGTH;i++) { ??if(Hashtable[(Hash(key)+i)%LENGTH]==-1) ?return((Hash(key)+i)%LENGTH); ??count++; } } 4、哈希表初始化(InitHash) void InitHash(int Hashtable[]) { inti; for(i=0;i<LENGTH;i++) ??Hashtable[i]=-1; } 5、向哈希表中插入关键字(InsertHash) void InsertHash(int key,int Hashtable[]) { int add;

水力学实验报告思考题答案(想你所要)..

实验二不可压缩流体恒定流能量方程(伯诺利方程)实验 成果分析及讨论 1.测压管水头线和总水头线的变化趋势有何不同?为什么? 测压管水头线(P-P)沿程可升可降,线坡J P可正可负。而总水头线(E-E)沿程只降不升,线坡J 恒为正,即J>0。这是因为水在流动过程中,依据一定边界条件,动能和势能可相互转换。测点5至测点7,管收缩,部分势能转换成动能,测压管水头线降低,Jp>0。测点7至测点9,管渐扩,部分动能又转换成势能,测压管水头线升高,J P<0。而据能量方程E1=E2+h w1-2, h w1-2为损失能量,是不可逆的,即恒有h w1-2>0,故E2恒小于E1,(E-E)线不可能回升。(E-E) 线下降的坡度越大,即J越大,表明单位流程上的水头损失越大,如图2.3的渐扩段和阀门等处,表明有较大的局部水头损失存在。 2.流量增加,测压管水头线有何变化?为什么? 有如下二个变化: (1)流量增加,测压管水头线(P-P)总降落趋势更显著。这是因为测压管水头 ,任一断面起始时的总水头E及管道过流断面面积A为定值时,Q增大, 就增大,则必减小。而且随流量的增加阻力损失亦增大,管道任一过水断面上的总水头E相应减 小,故的减小更加显著。 (2)测压管水头线(P-P)的起落变化更为显著。 因为对于两个不同直径的相应过水断面有 式中为两个断面之间的损失系数。管中水流为紊流时,接近于常数,又管道断面为定值,故Q增大,H亦增大,(P-P)线的起落变化就更为显著。 3.测点2、3和测点10、11的测压管读数分别说明了什么问题? 测点2、3位于均匀流断面(图2.2),测点高差0.7cm,H P=均为37.1cm(偶有毛细影响相差0.1mm), 表明均匀流同断面上,其动水压强按静水压强规律分布。测点10、11在弯管的急变流断面上,测压管水头差为7.3cm,表明急变流断面上离心惯性力对测压管水头影响很大。由于能量方程推导时的限制条件之一是“质量力只有重力”,而在急变流断面上其质量力,除重力外,尚有离心惯性力,故急变流断面不能选作能量方程的计算断面。在绘制总水头线时,测点10、11应舍弃。 4.试问避免喉管(测点7)处形成真空有哪几种技术措施?分析改变作用水头(如抬高或降低水箱的水位)对喉管压强的影响情况。 下述几点措施有利于避免喉管(测点7)处真空的形成: (1)减小流量,(2)增大喉管管径,(3)降低相应管线的安装高程,(4)改变水箱中的液位高度。

【商业策划】实验报告内容与格式(精彩方案)

实验报告内容与格式 实验报告的书写是一项重要的基本技能训练。它不仅是对每次实验的总结,更重要的是它可以初步地培养和训练学生的逻辑归纳能力、综合分析能力和文字表达能力,是科学论文 写作的基础。因此,参加实验的每位学生,均应及时认真地书写实验报告。要求内容实事求是,分析全面具体,文字简练通顺,誊写清楚整洁。 实验报告内容与格式 (一)实验名称 要用最简练的语言反映实验的内容。如验证某程序、定律、算法,可写成“验证XXX” ;分析XXX。 (二)所属课程名称 (三)学生姓名、学号、及合作者 (四)实验日期和地点(年、月、日) (五)实验目的 目的要明确,在理论上验证定理、公式、算法,并使实验者获得深刻和系统的理解,在 实践上,掌握使用实验设备的技能技巧和程序的调试方法。一般需说明是验证型实验还是设 计型实验,是创新型实验还是综合型实验。 (六)实验内容 这是实验报告极其重要的内容。要抓住重点,可以从理论和实践两个方面考虑。这部分要写明依据何种原理、定律算法、或操作方法进行实验。详细理论计算过程 (七)实验环境 实验用的软硬件环境(配置)。 (八)实验步骤 只写主要操作步骤,不要照抄实习指导,要简明扼要。还应该画出实验流程图(实验装置的结构示意图),再配以相应的文字说明,这样既可以节省许多文字说明,又能使实验报告简明扼要,清楚明白。 (九)实验结果 实验现象的描述,实验数据的处理等。原始资料应附在本次实验主要操作者的实验报告上,同组的合作者要复制原始资料。 对于实验结果的表述,一般有三种方法:

1.文字叙述:根据实验目的将原始资料系统化、条理化,用准确的专业术语客观地描述 实验现象和结果,要有时间顺序以及各项指标在时间上的关系。 2.图表:用表格或坐标图的方式使实验结果突出、清晰,便于相互比较,尤其适合于分 组较多,且各组观察指标一致的实验,使组间异同一目了然。每一图表应有表目和计量单位,应说明一定的中心问题。 3.曲线图应用记录仪器描记出的曲线图,这些指标的变化趋势形象生动、直观明了。 在实验报告中,可任选其中一种或几种方法并用,以获得最佳效果。 (十)讨论 根据相关的理论知识对所得到的实验结果进行解释和分析。如果所得到的实验结果和 预期的结果一致,那么它可以验证什么理论?实验结果有什么意义?说明了什么问题?这些是实验报告应该讨论的。但是,不能用已知的理论或生活经验硬套在实验结果上;更不能由于所得到的实验结果与预期的结果或理论不符而随意取舍甚至修改实验结果,这时应该分析其异常的可能原因。如果本次实验失败了,应找出失败的原因及以后实验应注意的事项。不要简单地复述课本上的理论而缺乏自己主动思考的内容。 另外,也可以写一些本次实验的心得以及提出一些问题或建议等。 (十^一)结论 结论不是具体实验结果的再次罗列,也不是对今后研究的展望,而是针对这一实验所能 验证的概念、原则或理论的简明总结,是从实验结果中归纳出的一般性、概括性的判断,要 简练、准确、严谨、客观。 (十二)鸣谢(可略) 在实验中受到他人的帮助,在报告中以简单语言感谢? (十三)参考资料 详细列举在实验中所用到的参考资料. 格式: 作者年代书名及页数出版社 作者年代篇名期刊名(页数)

数据结构课程设计--哈希表实验报告

福建工程学院课程设计 课程:算法与数据结构 题目:哈希表 专业:网络工程 班级:xxxxxx班 座号:xxxxxxxxxxxx 姓名:xxxxxxx 2011年12 月31 日

实验题目:哈希表 一、要解决的问题 针对同班同学信息设计一个通讯录,学生信息有姓名,学号,电话号码等。以学生姓名为关键字设计哈希表,并完成相应的建表和查表程序。 基本要求:姓名以汉语拼音形式,待填入哈希表的人名约30个,自行设计哈希函数,用线性探测再散列法或链地址法处理冲突;在查找的过程中给出比较的次数。完成按姓名查询的操作。 运行的环境:Microsoft Visual C++ 6.0 二、算法基本思想描述 设计一个哈希表(哈希表内的元素为自定义的结构体)用来存放待填入的30个人名,人名为中国姓名的汉语拼音形式,用除留余数法构造哈希函数,用线性探查法解决哈希冲突。建立哈希表并且将其显示出来。通过要查找的关键字用哈希函数计算出相应的地址来查找人名。通过循环语句调用数组中保存的数据来显示哈希表。 三、设计 1、数据结构的设计和说明 (1)结构体的定义 typedef struct //记录 { NA name; NA xuehao; NA tel; }Record; 录入信息结构体的定义,包含姓名,学号,电话号码。 typedef struct //哈希表 { Record *elem[HASHSIZE]; //数据元素存储基址 int count; //当前数据元素个数 int size; //当前容量 }HashTable; 哈希表元素的定义,包含数据元素存储基址、数据元素个数、当前容量。 2、关键算法的设计 (1)姓名的折叠处理

数据库原理实验报告(3)实验三数据表的创建与管理实验

数据库原理实验报告(3)实验三数据表的创建与 管理实验 南京晓庄学院 《数据库原理与应用》 课程实验报告 实验三数据表的创建与管理实验 所在院(系): 数学与信息技术学院班级: 学号: 姓名: 1.实验目的 (1) 理解SQL Server 20xx常用数据类型和表结构的设计方法。理解主键、外键含义,掌握 建立各表相关属性间参照关系的方法。 (2) 熟练掌握使用SQL Server Management Studio图形工具创建表,删除表,修改表结构,插入及更新数据的方法。 (3) 熟练掌握使用Transact-SQL语句创建表,删除表,修改表结构,插入及更新数据的方 法。 2.实验要求 基本实验:

(1) 在实验二所创建的“TM”数据库中合理设计以下各表逻辑结构: 学生信息(学号,姓名,性别,籍贯,出生日期,民族,学院/系别号,班级号) 课程信息(课程号,课程名称,课程所属模块,课程类别,学分,学时) 学习信息(学号,课程号,考试成绩,平时成绩) 院系信息(院系号,院系名称) 要求确定各个字段的名称、类型、是否有默认值,是否主键等信息。 (2) 依据你所设计的表结构,使用SQL Server Management Studio图形工具在“TM”数据 库中创建学生信息表和课程信息表,并试验在图形界面中修改表结构,删除数据表,输入并更新数据的方法。 (3) 依据你所设计表结构,使用Transact-SQL语句创建学习信息表和院系信息表,并试验 使用T-SQL语句修改表结构,删除数据表,插入和更新数据的方法。 (4) 找出已创建各表之间相关属性的参照关系,并在相关表中增加引用完整性约束。 (5) 按要求完成实验报告。 扩展实验: (1) 在“TM”数据库中补充设计以下各表结构:

流体力学实验 文丘里实验报告单

文丘里流量计实验 一、实验目的和要求 1.通过测定流量系数,掌握文丘里流量计量测管道流量的技能; 2.掌握气一水多管压差计量测压差的技能; 3.通过实验与量纲分析,了解应用量纲分析与实验结台研究水力学问题的途径,进而掌握文丘里流量计水力特征。 二、实验原理 根据能量方程式和连续性方程式,可得不计阻力作用时的文丘里管过水能力关系式 h K p Z p Z g d d d q V ?=+-+-= )]/()/[(21 )( 422114 2 12 1 γγπ ‘ (6-9) 1)/(/ 24 4 212 1 -= d d g d K π )()(2 21 1γ γ p Z p Z h + -+ =? 式中:h ?为两断面测压管水头差,m 。 由于阻力的存在,实际通过的流量V q 恒小于' V q 。今引入一无量纲系数’ V V q q =μ (μ称为流量系数),对计算所得的流量值进行修正。 即 h K q q V V ?=' =μμ (6-10) 另外由水静力学基本方程可得气—水多管压差计的h ?为 4321h h h h h -+-=? 三、实验装置 本实验的装置如图6-10 所示。 在文丘里流量计的两个测量断面上,分别有4个测压孔与相应的均压环连通,经均压环均压后的断面压强由气-水多管压差计9测量(亦可用电测仪量测)。

1.自循环供水器; 2.实验台 3.可控硅无级调速器 4.恒压水箱 5.有色水水管 6.稳水孔板 7.文丘里实验管段 8.测压计气阀 9.测压计10.滑尺11.多管压差计12.实验流量调节阀 图6—10文丘里流量计实验装置图 四、实验方法与步骤 1.测记各有关常数。 2.开电源开关,全关阀12,检核测管液面读数 4321h h h h -+-是否为0,不为0时,需查出原因并予以排除。 3.全开调节阀12检查各测管液面是否都处在滑尺读数范围内?否则,按下列步骤调节:拧开气阀8,将清水注入测管2、3,待2432≈=h h cm ,打开电源开关充水,待连通管无气泡,渐关阀12,并调开关3至5.2821≈=h h cm ,即速拧紧气阀8。 4.全开调节阀门,待水流稳定后,读取各潮压管的液面读数1h 、2h 、3h 、4h ,并用秒表、量筒测定流量。 5.逐次关小调节阀,改变流量7~9次,重复步骤4,注意调节阀门应缓慢。 6.把测量值记录在实验表格内,并进行有关计算。 7.如测管内液面波动时,应取时均值。 8.实验结束,需按步骤2校核压差计是否回零。 五、实验结果处理及分析 1.记录计算有关常数。 实验装置台号No____ =1d m , =2d m , 水温=t ℃, =ν m 2/s , 水箱液面标尺值=?0 cm , 管轴线高程标尺值=? cm 。 2 整理记录计算表6-9 6-10

数据结构实验四哈希表及其查找

云南大学数学与统计学实验教学中心实验报告 课程名称: 数据结构与算法学期: 2011-2012学年第二学期 成绩: 指导教师:xxx学生姓名:xxx学生学号:xxxxx 实验名称:哈希表及其查找实验要求:必做实验学时:4(+2)学时 实验编号:4(及5)实验日期:第6-8周完成日期:2012.5.10 学院:数学与统计学院专业:信息与计算科学年级:2010级 一、实验目的 通过实验掌握散列存储的基本概念,进行哈希问题的处理,同时附带进行字符串的处理的练习。 二、实验内容 为某单位的人名(n=30人)设计一个哈希表,使得平均查找长度<2,要求完成相应的哈希建表和查表。。 三、实验环境 Windows XP 程序设计语言C 四、实验过程 1.实验要求: 1、设人名长度<10个字符,用二维字符数组存储哈希表:char hash[ ][10]; 2、要求哈希函数用除留余数法,并用人名的10个字符代码和作为分子; 用(补偿性)线性探测再散列处理冲突。 3、依题意有:平均查找长度=(1+1/(1-α))/2< 2,∴取α=0.6, 由此哈希表长m=n/α=30/0.6=50; 所以有char hashlist [ 50][10]; 令:除留余数法中的P取47; (补偿性)线性探测再散列的地址:j=(j+Q)% m中的Q取17。 4、对程序结构的要求: ①要求为哈希建表和哈希查表分别编写和设计相应的函数: createhash( ... ... ); hashsearch(... ...); ②再设计一个哈希函数表的输出函数printhash( ),对构造的哈希表进行输出,注 意输出格式要在屏幕好看,先输出序号(1~30),再输出该序号 的人名或null,每行输出10项,共输出5行。 ③还应有一个初始化char hashlist [ 50][10]的函数Inithashlist( ), 初始时将50个人名全赋值为null. 5、在主函数中: 调用Inithashlist( )初始化哈希表;

数据库实验报告1

1.使用系统存储过程(sp_rename)将视图“V_SPJ”更名为“V_SPJ_三建”。(5分) exec sp_rename v_spj, v_spj_三建; 2.针对SPJ数据库,创建并执行如下的存储过程:(共计35分) (1)创建一个带参数的存储过程—jsearch。该存储过程的作用是:当任意输入一个工 程代号时,将返回供应该工程零件的供应商的名称(SNAME)和零件的名称(PNAME) 以及工程的名称(JNAME)。执行jsearch存储过程,查询“J1”对应的信息。(10 分) create proc jsearch @jno char(2) as select sname, pname, jname from s,p,j,spj where s.sno=spj.sno and p.pno=spj.pno and j.jno=spj.jno and spj.jno=@jno; 执行: exec jsearch 'J1'

(2)使用S表,为其创建一个加密的存储过程—jmsearch。该存储过程的作用是:当执 行该存储过程时,将返回北京供应商的所有信息。(10分) 创建加密存储过程: create proc jmsearch with encryption as select * from s where s.city='北京'; sp_helptext jmsearch; (3)使用系统存储过程sp_helptext查看jsearch, jmsearch的文本信息。(5分) 用系统存储过程sp_helptext查看jsearch: exec sp_help jsearch; exec sp_helptext jsearch;

实验报告格式范文.doc

实验报告格式范文 实验报告如何写?格式是什么?下面是我给大家整理收集的实验报告格式范文,供大家阅读参考。 实验报告格式 实验名称 要用最简练的语言反映实验的内容。如验证某程序、定律、算法,可写成"验证×××";分析×××。 学生姓名、学号、及合作者 实验日期和地点(年、月、日) 实验目的 目的要明确,在理论上验证定理、公式、算法,并使实验者获得深刻和系统的理解,在实践上,掌握使用实验设备的技能技巧和程序的调试方法。一般需说明是验证型实验还是设计型实验,是创新型实验还是综合型实验。 实验原理 在此阐述实验相关的主要原理。 实验内容 这是实验报告极其重要的内容。要抓住重点,可以从理论和实践两个方面考虑。这部分要写明依据何种原理、定律算法、或操作方法进行实验。详细理论计算过程。 实验步骤

只写主要操作步骤,不要照抄实习指导,要简明扼要。还应该画出实验流程图(实验装置的结构示意图),再配以相应的文字说明,这样既可以节省许多文字说明,又能使实验报告简明扼要,清楚明白。 实验结果 实验现象的描述,实验数据的处理等。原始资料应附在本次实验主要操作者的实验报告上,同组的合作者要复制原始资料。 对于实验结果的表述,一般有三种方法: 1. 文字叙述: 根据实验目的将原始资料系统化、条理化,用准确的专业术语客观地描述实验现象和结果,要有时间顺序以及各项指标在时间上的关系。 2. 图表: 用表格或坐标图的方式使实验结果突出、清晰,便于相互比较,尤其适合于分组较多,且各组观察指标一致的实验,使组间异同一目了然。每一图表应有表目和计量单位,应说明一定的中心问题。 3. 曲线图 应用记录仪器描记出的曲线图,这些指标的变化趋势形象生动、直观明了。 在实验报告中,可任选其中一种或几种方法并用,以获得最佳效果。 讨论 根据相关的理论知识对所得到的实验结果进行解释和分析。如果所得到的实验结果和预期的结果一致,那么它可以验证什么理论?实验结果有什么意义?说明了什么问题?这些是实验报告应该讨论的。但是,不能用已知的理论或生活经验硬套在实验结果上;更不能由于所得到的实验结果

数据结构哈希表的实验报告

课程实习报告 一、需求分析: 1.本程序来自于图书馆靠书名来检索想要查找的书问题。 2.本程序要求: (1)根据输入建立图书名称表,采用创建散列表实现。 (2)建散列表后,如果想要查找的数据在散列表中输出yes否则输出no。 二、哈希表简介 结构中存在关键字和K相等的记录,则必定存储在f(K)的位置上。由此,不需比较便可直接取得所查记录。这个对应关系f称为散列函数(Hash function),按这个思想建立的表为散列表。

* 对不同的关键字可能得到同一散列地址,即key1≠key2,而f(key1)=f(key2),这种现象称冲突。具有相同函数值的关键字对该散列函数来说称做同义词。 * 综上所述,根据散列函数H(key)和处理冲突的方法将一组关键字映象到一个有限的连续的地址集(区间)上,并以关键字在地址集中的“象”,作为这条记录在表中的存储位置,这种表便称为散列表,这一映象过程称为散列造表或散列,所得的存储位置称散列地址。这个现象也叫散列桶,在散列桶中,只能通过顺序的方式来查找,一般只需要查找三次就可以找到。科学家计算过,当负载因子(load factor)不超过75%,查找效率最高。* 若对于关键字集合中的任一个关键字,经散列函数映象到地址集合中任何一个地址的概率是相等的,则称此类散列函数为均匀散列函数(Uniform Hash function),这就是使关键字经过散列函数得到一个“随机的地址”,从而减少冲突。 程序设计流程 程序思想 (一)哈希函数unsigned int hash_BKDE(char *str)生成映射 地址,成为散列表的编号。 (二)哈希表HashTable::HashTable()通过数组储存元素 (三)插入函数void HashTable::insert(char*c)插入字符串, 先计算要插入字符串生成的映射地址,然后在相应的地址插入,如果没有空位查找空位插入。

数据库道理实验报告3

实验三数据表的创建与管理实验 所在院(系):数学与信息技术学院 班级: 学号: 姓名:

1.实验目的 (1)理解SQL Server 2005常用数据类型和表结构的设计方法。理解主键、外键含义,掌握 建立各表相关属性间参照关系的方法。 (2)熟练掌握使用SQL Server Management Studio图形工具创建表,删除表,修改表结构, 插入及更新数据的方法。 (3)熟练掌握使用Transact-SQL语句创建表,删除表,修改表结构,插入及更新数据的方 法。 2.实验要求 基本实验: (1)在实验二所创建的“TM”数据库中合理设计以下各表逻辑结构: 学生信息(学号,姓名,性别,籍贯,出生日期,民族,学院/系别号,班级号) 课程信息(课程号,课程名称,课程所属模块,课程类别,学分,学时) 学习信息(学号,课程号,考试成绩,平时成绩) 院系信息(院系号,院系名称) 要求确定各个字段的名称、类型、是否有默认值,是否主键等信息。 (2)依据你所设计的表结构,使用SQL Server Management Studio图形工具在“TM”数据 库中创建学生信息表和课程信息表,并试验在图形界面中修改表结构,删除数据表,输入并更新数据的方法。 (3)依据你所设计表结构,使用Transact-SQL语句创建学习信息表和院系信息表,并试验 使用T-SQL语句修改表结构,删除数据表,插入和更新数据的方法。 (4)找出已创建各表之间相关属性的参照关系,并在相关表中增加引用完整性约束。 (5)按要求完成实验报告。 扩展实验: (1)在“TM”数据库中补充设计以下各表结构: 教师信息(教师号,姓名,性别,出生日期,学历,学位,入职时间,职称,院系号) 授课信息(教师号,课程号,学期) 班级信息(班级号,班级名称,专业号) 专业信息(专业号,专业名称,学制,学位) 图书信息(图书号,书名,作者,出版社,出版日期,册数,价格,分类) 借书偏息(学号,图书号,借出时间,归还时间) 奖励信息(学号,奖励类型,奖励金额) (2)设计并实现各表之间相关属性的参照关系。 (3)使用SQL Management Studio图形界面或Transact-SQL在“TM”数据库中创建前述各 表,并插入部分数据,要求所插入数据合理有效。 3.实验步骤、结果和总结实验步骤/结果

流体力学实验文丘里实验报告单

文丘里流量计实验 一、实验目的与要求 1.了解文丘里流量计的构造与原理,掌握用文丘里流量计量测管道流量的方法与应用 气一水压差计测压差的技术。掌握测定文丘里流量计的流量系数μ的方法。 2.通过测量与计算,掌握用方格纸绘制Q-Δh 与Re-μ曲线(分别取Δh 、μ为纵坐标 的方法) 3.比较体积法与文丘里流量计测流量的精度。 二、实验原理 根据能量方程式与连续性方程式,可得不计阻力作用时的文丘里流量计理论流量计算式: h K p Z p Z g d d d Q ?=+-+-= )]/()/[(21)(4'221142 12 1γγπ 1)/(/24 42121-= d d g d K π )()(2 21 1γ γp Z p Z h + -+ =? 式中:h ?为两断面测压管水头差,m 。d ?、d ?为喉部收缩前后管道的内径。 由于阻力的存在,实际通过的流量Q 恒小于'Q 。今引入流量系数’ Q =μ (μ称为流量系数),对计算所得的流量值进行修正。 即: h K Q Q ?=' =μμ 另外由水静力学基本方程可得气—水多管压差计的h ?为 4321h h h h h -+-=? 三、实验装置 本实验的装置如图所示。 在文丘里流量计的两个测量断面上,分别有4个测压孔与相应的均压环连通,经均压环均压后的断面压强由气-水多管压差计9测量(亦可用电测仪量测)。

1、自循环供水器; 2、实验台 3、可控硅无级调速器 4、恒压水箱 5、有色水水管 6、稳水孔板 7、文丘里实验管段8、测压计气阀9、测压计10、滑尺11、多管压差计12、实验流量调节阀 文丘里流量计实验装置图 四、实验步骤 1、打开无极调速器向恒压水箱中注水至满,全关流量调节阀12,检核测管液面读数 4321h h h h -+-就是否为0,不为0时,需查出原因并予以排除。 2、全开调节阀12检查各测管液面就是否都处在滑尺读数范围内。否则,按下列步骤调节:拧开气阀8,将清水注入测管2、3,待2432≈=h h cm,打开电源开关充水,待连通管无气泡,渐关阀12,并调开关3至5.2821≈=h h cm,即速拧紧气阀8。 3、全开调节阀门,待水流稳定后,读取各潮压管的液面读数1h 、2h 、3h 、4h ,并用秒表、量筒测定流量。 4、逐次关小调节阀,改变流量7~9次,重复步骤(4),注意调节阀门应缓慢。 5、把测量值记录在实验表格内,并进行有关计算。 6、如测管内液面波动时,应取时均值。 7、实验结束,需按步骤2校核压差计就是否回零。 五、实验结果处理及分析 1、记录计算有关常数。 =1d m, =2d m, 水温=t ℃, =ν m 2/s, 水箱液面标尺值=?0 cm, 管轴线高程标尺值=? cm 。 2、实验数据记录 记录表

相关文档
最新文档