文档库 最新最全的文档下载
当前位置:文档库 › 第三、四次实验

第三、四次实验

第三、四次实验
第三、四次实验

实验三:基于Proteus软件的8086最小系统硬件设计

一、实验目的

1.学习使用Proteus进行8086微机系统仿真设计的方法。

2.学习8086CPU以及外部电路的接法和应用原理。

二、实验设备

PC微机一台、Proteus软件、emu8086编码器软件

三、实验任务

1.正确安装Proteus软件。

2. 使用Proteus绘制38译码电路,并通过通断开关,观察二极管导通情况。

3. 在Proteus中绘制8086最小系统电路,并加载程序,观察运行结果。

四、实验原理

本实验首先学习Proteus软件的安装,并通过绘制简单的38译码器电路掌握该软件的使用方法。然后利用该软件设计完成一个8086最小模式系统原理图并加载指定程序实现LED显示开关状态。设计8086最小模式系统包括8086CPU、地址锁存器、数据总线收发器、时钟发生器等。利用74LS373芯片进行扩展外接开关和LED发光二极管。

Proteus软件是英国Lab Center Electronics公司出版的EDA工具软件。它不仅具有其它EDA工具软件的仿真功能,还能仿真单片机及外围器件。它是目前比较好的仿真单片机及外围器件的工具。它受到单片机爱好者、从事单片机教学的教师、致力于单片机开发应用的科技工作者的青睐。本次试验将以该软件为基础分别绘制38译码器电路图和8086最小系统电路图。

74LS138译码器有三个输入端:A0、A1、A2和八个输出端/Y0~/Y7。当输入端A0、A1、A2的编码为000时,译码器输出为/Y0=0,而/Y1~/Y7=1。即Q0对应于A0、A1、A2为000状态,低电平有效。A0、A1、A2的另外7种组合见后面的

真值表。S1、S2、S3为使能控制端,起到控制译码器是否能进行译码的作用。只有S1为高电平,S2、S3均为低电平时,才能进行译码,否则不论输入为何值,每个输出端均为1。

8086最小模式即系统中只有8086(或8088)一个微处理器。最小模式是单处理器系统。系统中所需要的控制信号全部由8086(或8088)CPU本身直接提供。该最小系统电路图

微处理器级总线带负载的能力弱,加之部分引脚采用复用引脚,所以在微机系统设计时,不能直接与存储器、I/O接口连接。

地址锁存:对存储器读写或对I/O设备输入输出的总线周期中,要求地址信息一直保持有效。因此总线控制逻辑必须完成对分时复用的地址/数据总线中地址信息的锁存,以实现地址总线和数据总线的分离。(74ls373)

数据缓冲(三态输出的总线收发器):总线控制逻辑中的驱动器和

接收器是为了提高总线的驱动电流的能力和承受电容负载的能力。(74ls245)他们都必须要求具有三态功能。

最小系统原理图:

图3-1 8086最小模式系统原理图

五、实验内容

实验中,我首先学习了Proteus软件的安装,并通过绘制简单的38译码器电路掌握该软件的使用方法。然后利用该软件设计完成一个8086最小模式系统原理图并加载指定程序实现LED显示开关状态。设计8086最小模式系统包括

8086CPU、地址锁存器、数据总线收发器、时钟发生器等。利用74LS373芯片进行扩展外接开关和LED发光二极管。

六、实验过程及结果

1、下载Proteus软件,并根据安装步骤安装软件。

图1-1 安装Proteus

2、学习Proteus软件使用方法并绘制8086最小模式系统图。

所用元器件:38译码器、电源、地线、上拉电阻、LED发光二极管。

8086最小系统过控制开关的闭合与断开来控制LED发光二极管的发光与熄灭。其中系统图如下,第1~8个开关处于断开状态。双击8086处理器芯片加载指定的实验三代码,exe文件运行,电路图无报错。发现第1~8个LED均处于发光状态,闭合第1~8个开关,与之对应的第1~8个LED依次熄灭。由此得出实验结果与预测结果完全相符。实验成功。

图2-1 Proteus绘制的8086最小模式系统电路图

七、实验感想

8086最小系统硬件设计实验是一个十分有趣的实验。

刚开始做实验时我就被复杂的电路图吓坏了。但是听了老师的详细讲解后我逐渐了解了Proteus的基本应用及方法。通过绘制38译码器电路,我对该电路有了直观的认识,对它的功能及使用方法影响深刻。画好电路图后,出现了一些小故障,经过我仔细排查是接线问题。当实验成功的那一刻,我十分高兴,并且更加深入的了解了这个电路的组成及运行方式。

这次实验告诉我要有始有终,不要气馁。

八、参考文献

[1]李继灿,谭浩强.微机原理与接口技术.北京:清华大学出版社

[2]王爽.汇编语言.北京:清华大学出版社

[3]沈美明,温冬婵.汇编语言程序设计.北京:机械工业出版社

[4]许立梓.微型计算机原理及应用.北京:机械工业出版社

实验四:基于8086最小系统的汇编程序设计

一、实验目的

1.学习使用Proteus进行8086微机系统仿真设计的方法。

2.学习8086CPU以及外部电路的接法和应用原理。

3.编程实现电路功能,学习汇编程序的编辑、编译、链接、执行的全过程。

二、实验设备

PC微机一台、Proteus软件、emu8086编码器软件

三、实验任务

1. 研究所给实验材料中的8086最小系统电路原理图,了解其基本工作原理,包括工作时序、地址译码、相关逻辑器件的配合等。

2. 根据电路的工作原理,编写程序,实现由矩阵按键控制BCD数码管显示0~F的基本功能。

四、实验原理

该8086最小系统的输入端物理地址为4004H,输出端地址为4000H。该系统不断扫描输入端4*4矩阵开关的状态,当发现4*4矩阵开关有开关闭合,将该开关所代表的横纵坐标传给8086CUP进行计算,求出其代表的键值,并将该值传给输出端通过BCD数码管显示输出该值。

在键盘中按键数量较多时,为了减少I/O口的占用,通常将按键排列成矩阵形式。在矩阵式键盘中,每条水平线和垂直线在交叉处不直接连通,而是通过一个按键加以连接。这样,一个端口(如P1口)就可以构成4*4=16个按键,比之直接将端口线用于键盘多出了一倍,而且线数越多,区别越明显,比如再多加一条线就可以构成20键的键盘,而直接用端口线则只能多出一键(9键)。由此可见,在需要的键数比较多时,采用矩阵法来做键盘是合理的。

1、判断键盘中有无键按下:将全部行线Y0-Y3置低电平,然后检测列线的状态。只要有一列的电平为低,则表示键盘中有键被按下,而且闭合的键位于低

电平线与4根行线相交叉的4个按键之中。若所有列线均为高电平,则键盘中无键按下。

2、判断闭合键所在的位置:在确认有键按下后,即可进入确定具体闭合键的过程。其方法是:依次将行线置为低电平,即在置某根行线为低电平时,其它线为高电平。在确定某根行线位置为低电平后,再逐行检测各列线的电平状态。若某列为低,则该列线与置为低电平的行线交叉处的按键就是闭合的按键。

电路如图4-1所示:

图4-1 8086系统电路图

五、实验内容

本实验首先需阅读Proteus设计文件中已经给出的译码表和译码电路,然后编写程序实现显示按键号的功能,即16个按键对应显示0~F。电路中的数码管为BCD数码管,控制脚连接到IO口上,每个IO口分别代表二进制的一位,四位二进制可表示0~15的数,对应此数码管则显示0~F。

六、实验过程及结果

1、绘制程序流程图:

图4-2 程序流程图2、编写程序:

OUT1 EQU 4000H

OUT2 EQU 4002H

IN1 EQU 4004H

DATAS SEGMENT

DATAS ENDS

STACKS SEGMENT

STACKS ENDS

CODES SEGMENT

ASSUME CS:CODES,DS:DATAS,SS:STACKS START:

MOV AL,00H

MOV BX,OUT1

MOV [BX],AL

MOV DL,00000001B

L:

MOV AL,DL

MOV BX,OUT2

MOV [BX],AL

MOV BX,IN1

MOV AL,[BX]

CMP AL,0

JNE KEY

SHL DL,01H

CMP DL,00010000B JNE L

MOV DL,00000001B JMP L

KEY:

MOV BX,0000H

MOV CX,0000H

LINECOUNT:

CMP DL,01H

JE ROWCOUNT

ADD CX,01H

SHR DL,01H

JMP LINECOUNT

ROWCOUNT:

CMP AL,01H

JE VALUE

ADD BX,04H

SHR AL,01H

JMP ROWCOUNT

VALUE:

ADD CX,BX

MOV AL,CL

MOV BX,OUT1

MOV [BX],AL

JMP L

CODES ENDS

END START

3、载入程序验证结果

图4-3实验结果展示

在电路途中载入程序,电路导通。,依次点击第1~16个按键,数码管依次显示出0~F。因此试验结果与预测结果相同,本实验正确。

七、实验感想

通过上次实验,我主要了解了如何对硬件结构进行设计。本次实验在上次实验基础上将上次实验中的开关闭和与断开控制LED灯点亮与熄灭改为矩阵按键,不仅要自己编程,还要直观地看到编译程序对硬件系统的控制。本次实验虽然难度较大,但是十分有趣味性和挑战性,加深了我对编程地理解。

八、参考文献

[1]李继灿,谭浩强.微机原理与接口技术.北京:清华大学出版社

[2]王爽.汇编语言.北京:清华大学出版社

[3]沈美明,温冬婵.汇编语言程序设计.北京:机械工业出版社

[4]许立梓.微型计算机原理及应用.北京:机械工业出版社

《计算机图形学》新版实验指导书

湖北汽车工业学院实验报告 班级学号姓名 课程名称完成日期 实验一熟悉Visual C++绘图应用程序的开发过程 一、实验目的 1、熟悉VC6.0开发环境; 2、掌握MFC编程; 3、掌握CDC图形程序库; 4、掌握VC6.0下的简单图形程序的开发过程。 二、实验性质 验证性 三、实验要求 1、认真阅读本次实验的目的,了解本次实验要求掌握的内容; 2、能够根据实验指导书的要求,完成相关的内容; 3、务必掌握绘图程序的开发流程,为今后复杂的图形程序开发做好准备。 四、实验内容 (一)生成绘图应用程序的框架 开发绘图应用程序的第一步是使用AppWizard(程序生成向导)来建立程序的基本框架。AppWizard为框架的建立提供了一系列对话框及多种选项,用户可以根据不同的选项生成自己所需要的应用程序框架。具体步骤如下: 1、从“文件”菜单选择“新建”菜单项,在“新建”对话框中选择“工程”选项卡,从项目类型中选择MFC AppWizard(.exe)。在“位置”文本框中,可直接输入目录名称,或者单击“…”按钮选择已有的目录。在“工程名称”文本框中输入项目的名称,如Draw,其他采用默认值,这时确定按钮变亮,如下图所示:

2、单击确定按钮,弹出“MFC应用程序向导步骤1”对话框,如图所示,选择单文档单选按钮和“中文[中国]”选项,表示要生成以中文为用户界面的单文档(SDI绘图程序)。 3、点击下一步,在随后出现的几个对话框中,都点击下一步,表示采用各项的默认设置,直到出现“MFC应用程序向导步骤6”对话框,如图所示。

4、“MFC应用程序向导步骤6”对话框中默认设置确定了类得名称及其所在文件的名称。用户可以改CdrawApp、CmainFrame和CdrawDoc的文件名称,但不可以改变它们的基类。 单击完成按钮,应用程序向导显示将要创建的文件清单,再单击确定,MFC应用程序向导就自动生成绘图程序的各项源文件了。 MFC应用程序向导设置完后,点击组建按钮,然后再点击执行按钮,就会出现MFC 应用程序向导生成的完整应用程序的基本框架。

计算机图形学实验报告—正文

设计1 环境设置 (实验环境 microsoft visual studio 2010) 一、实验目的 1.掌握图形驱动程序及图形模式的基本概念,掌握图形初始化方法; 2.掌握进行图形程序设计的基本方法; 3.了解的图形功能,了解常见的图形库函数; 二、实验要求 1.图形系统初始化; 2.综合应用图形库函数,进行图形设计与绘制; 3.熟悉开发环境,要求会对程序进行编辑,编译,调试 三、设计说明 图形系统初始化以及主要代码: #include "stdafx.h" #include #include using namespace std; LRESULT CALLBACK WndProc (HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam)//回调函数 { HDC hdc ; //设备句柄 PAINTSTRUCT ps ; //绘图结构 RECT rect,rc ; //矩形结构 HBRUSH hBrush; //刷子 HPEN hpen; //笔 SYSTEMTIME tm; //定义时间结构体变量 switch (message) //从回调函数的参数据中传入的值,是系统执行回调函数之后的结果体现 { case WM_PAINT: //画矩形 hdc = BeginPaint (hwnd, &ps) ;//准备指定的窗口来重绘并将绘画相关的信息放到一个

PAINTSTRUCT结构中 SetTextColor(hdc,RGB(0,255,255));//设置指定设备环境(HDC)的字体颜色 TextOut(hdc,10,160, TEXT("画出直线!"),16);//该函数用当前选择的字体、背景颜色和正文颜色将一个字符串写到指定位置 MoveToEx(hdc,200,100,NULL);//将当前绘图位置移动到某个具体的点,同时也可获得之前位置的坐标。开始画线,从100,100开始 LineTo(hdc,300,400);//用当前画笔画一条线,从当前位置连到一个指定的点。这个函数调用完毕,当前位置变成x,y /*以下是画笔的用法,函数原型是BOOL CreatePen(int nPenStyle, int nWidth, COLORREF crColor); 功能是:用指定的样式、宽度和颜色创建一个画笔 参数(1)nPenStyle指定画笔样式,可以是下述常数之一,PS_SOLID画笔画出的是实线;PS_DASH 画笔画出的是虚线(nWidth必须是1);PS_DOT画笔画出的是点线(nWidth必须是1); PS_DASHDOT画笔画出的是点划线(nWidth必须是1);PS_DASHDOTDOT画笔画出的是点-点-划线(nWidth必须是1);PS_NULL画笔不能画图;PS_INSIDEFRAME画笔在由椭圆、矩形、圆 角矩形、饼图以及弦等生成的封闭对象框中画图。如指定的准确RGB颜色不存在,就进行抖动处理。 参数(2)nWidth 以逻辑单位表示的画笔的宽度 参数(3)crColor画笔的RGB颜色 返回值:如函数执行成功,就返回指向新画笔的一个句柄;否则返回零。一旦不再需要画笔,记得用DeleteObject函数将其删除。*/ hpen=CreatePen(PS_SOLID,5,RGB(0,255,0));//获得刷子 SelectObject(hdc,hpen);//选择你获得的刷子。该函数选择一对象到指定的设备上下文环境中,该新对象替换先前的相同类型的对象。原型:HGDIOBJ SelectObject(HDC hdc, HGDIOBJ hgdiobj) MoveToEx(hdc,200,200,NULL);//刷子的起点 LineTo(hdc,500,500);//刷子的结束点 /*下面的函数取得客户端的矩形,rect和rc为用户定义的矩形结构变量。该函数获取窗口客户区的坐标。客户区坐标指定客户区的左上角和右下角。由于客户区坐标是相对窗口客户区的左上角而言的,因此左上角坐标为(0,0),函数原型BOOL GetClientRect(HWND hWnd,LPRECT lpRect );第一个参数为窗口句柄,第二个参数为客户区坐标*/ GetClientRect (hwnd, &rect); rc.left=rect.left+300;//客户端矩形的左上方点加400像素 rc.top=rect.top+300; rc.right=rect.right-50; rc.bottom=rect.bottom-20;

数据库第四次实验报告

南昌航空大学实验报告 二0一年月日 课程名称:数据库概论实验名称:存储过程及触发器 班级:姓名:同组人: 指导教师评定:签名: 一、实验参考代码及结果 存储过程: (1)创建存储过程 9.11 CREATE PROCEDURE Select_S AS SELECT*FROM S WHERE sex='女' GO Execute Select_S 9.12 CREATE PROCEDURE InsRecToS(@sno char(5),@sn varchar(8),@sex char(2)='男',@age int,@dept varchar(20)) AS INSERT INTO S VALUES(@sno,@sn,@sex,@age,@dept) GO Execute InsRecToS@sno='S8',@sn='罗兵',@age='18',@dept='信息' 执行前: 执行后:

9.13 CREATE PROCEDURE Query_S(@Sno char(5),@SN VARCHAR(8)OUTPUT,@Age SMALLINT OUTPUT) AS SELECT@sn=sn,@age=age FROM S WHERE Sno=@Sno (2)执行存储过程 Declare@SN VARCHAR(8),@AGE SMALLINT execute Query_S'98010',@SN OUTPUT,@AGE OUTPUT SELECT@SN,@AGE (3)查看和修改存储过程 9.14 ALTER PROCEDURE[dbo].[InsRecTos](@sno char(5),@sn varchar(8),@sex char(2)='女',@age smallint,@dept varchar(20)) AS INSERT INTO S VALUES(@sno,@sn,@sex,@age,@dept) (4)查看、重命名和删除存储过程 9.15 exec sp_helptext Select_S 9.16 sp_rename Select_S,Select_Student 执行后:

数据库实验报告

. . 《数据库原理与技术》实验报告 实验一、数据定义及更新语句练习 一、实验容 建立如下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 .实验中遇到的问题及解决过程 2 .实验中产生的错误及原因分析 首先写出执行语句不成功的时候系统报告的错误信息。然后分析错误原因,并给出解决办法。

实验二简单查询和连接查询 一、实验容 (一)完成下面的简单查询: ①查询所有“”的供应商明细; ②查询所有“红色”的14公斤以上的零件。 ③查询工程名称中含有“厂”字的工程明细。 (二)完成下面的连接查询: ①等值连接:求s表和j表的相同城市的等值连接。 ②自然连接:查询所有的供应明细,要求显示供应商、零件和工程的名称,并按照供应、工程、零件排序。 ③笛卡尔积:求s和p表的笛卡尔积。 ④左连接:求j表和spj表的左连接。 ⑤右连接:求spj表和j表的右连接。 二、完成情况 (一)完成下面的简单查询: ①查询所有“”的供应商明细; ②查询所有“红色”的14公斤以上的零件。

计算机图形学实验报告 (2)

中南大学信息科学与工程学院 实验报告实验名称 实验地点科技楼四楼 实验日期2014年6月 指导教师 学生班级 学生姓名 学生学号 提交日期2014年6月

实验一Window图形编程基础 一、实验类型:验证型实验 二、实验目的 1、熟练使用实验主要开发平台VC6.0; 2、掌握如何在编译平台下编辑、编译、连接和运行一个简单的Windows图形应用程序; 3、掌握Window图形编程的基本方法; 4、学会使用基本绘图函数和Window GDI对象; 三、实验内容 创建基于MFC的Single Document应用程序(Win32应用程序也可,同学们可根据自己的喜好决定),程序可以实现以下要求: 1、用户可以通过菜单选择绘图颜色; 2、用户点击菜单选择绘图形状时,能在视图中绘制指定形状的图形; 四、实验要求与指导 1、建立名为“颜色”的菜单,该菜单下有四个菜单项:红、绿、蓝、黄。用户通过点击不同的菜单项,可以选择不同的颜色进行绘图。 2、建立名为“绘图”的菜单,该菜单下有三个菜单项:直线、曲线、矩形 其中“曲线”项有级联菜单,包括:圆、椭圆。 3、用户通过点击“绘图”中不同的菜单项,弹出对话框,让用户输入绘图位置,在指定位置进行绘图。

五、实验结果: 六、实验主要代码 1、画直线:CClientDC *m_pDC;再在OnDraw函数里给变量初始化m_pDC=new CClientDC(this); 在OnDraw函数中添加: m_pDC=new CClientDC(this); m_pDC->MoveTo(10,10); m_pDC->LineTo(100,100); m_pDC->SetPixel(100,200,RGB(0,0,0)); m_pDC->TextOut(100,100); 2、画圆: void CMyCG::LineDDA2(int xa, int ya, int xb, int yb, CDC *pDC) { int dx = xb - xa; int dy = yb - ya; int Steps, k; float xIncrement,yIncrement; float x = xa,y= ya; if(abs(dx)>abs(dy))

图形学实验报告

计 算 机 图 形 学 实验指导书 学号:1441901105 姓名:谢卉

实验一:图形的几何变换 实验学时:4学时 实验类型:验证 实验要求:必修 一、实验目的 二维图形的平移、缩放、旋转和投影变换(投影变换可在实验三中实现)等是最基本的图形变换,被广泛用于计算机图形学的各种应用程序中,本实验通过算法分析以及程序设计实验二维的图形变换,以了解变换实现的方法。如可能也可进行裁剪设计。 二、实验内容 掌握平移、缩放、旋转变换的基本原理,理解线段裁剪的算法原理,并通过程序设计实现上述变换。建议采用VC++实现OpenGL程序设计。 三、实验原理、方法和手段 1.图形的平移 在屏幕上显示一个人或其它物体(如图1所示),用交互操作方式使其在屏幕上沿水平和垂直方向移动Tx和Ty,则有 x’=x+Tx y’=y+Ty 其中:x与y为变换前图形中某一点的坐标,x’和y’为变换后图形中该点的坐标。其交互方式可先定义键值,然后操作功能键使其移动。 2.图形的缩放 在屏幕上显示一个帆船(使它生成在右下方),使其相对于屏幕坐标原点缩小s倍(即x方向和y方向均缩小s倍)。则有: x’=x*s y’=y*s 注意:有时图形缩放并不一定相对于原点,而是事先确定一个参考位置。一般情况下,参考点在图形的左下角或中心。设参考点坐标为xf、yf则有变换公式x’=x*Sx+xf*(1-Sx)=xf+(x-xf)*Sx y’=y*Sy+yf*(1-Sy)=yf+(y-yf)*Sy 式中的x与y为变换前图形中某一点的坐标,x’和y’为变换后图形中该点的坐标。当Sx>1和Sy>1时为放大倍数,Sx<1和Sy<1时为缩小倍数(但Sx和Sy

山东大学数据库第四次实验实验报告

實驗4 視圖操作 實驗目の:掌握創建、刪除視圖のSQL語句の用法,掌握使用企業管理器創建、視圖の方法。 實驗准備: 1)了解創建視圖方法。 2)了解修改視圖のSQL 語句の語法格式。 實驗內容: 1)使用企業管理器創建視圖 a)在pubs數據庫中以authors表為基礎,建立一個名為CA_authorの視圖, 使用該視圖時,將顯示所有state為CAの作者の基本信息。 2)使用SQL語句創建視圖 a)在查詢分析器中利用author表建立一個每個作者のID,lname,fname, phone,addressの視圖S_author。 b)建立一個employee_date視圖,利用employee表中信息,顯示1991年 1月1日之後雇傭の雇員のid,name,minit,job_id。 3)刪除視圖 a)使用企業管理器S_author視圖 b)使用SQL語句刪除CA_author、employee_date視圖 實驗要求: 用不同の方法創建視圖。 實驗步驟如下: 一、使用企業管理器創建視圖 a )在pubs數據庫中以authors表為基礎,建立一個名為CA_author の視圖,使用該視圖時,將顯示所有state為CAの作者の基本信息。

①右鍵點擊pubs數據庫文件下の視圖,選擇“新建視圖”,在彈出來の“添加表”中添加表authors。 ②在“添加表”一欄中添加表authors後點擊“關閉”,並全選author表中所有項目。 ③點擊保存,從彈出來の“選擇名稱”框中輸入視圖名稱“CA_author”。

④添加名為CA_author の視圖成功。 ⑤顯示所有state為CAの作者の基本信息。

计算机图形学实验指导书1

佛山科学技术学院计算机图形学实验指导书 李晓东编 电信学院计算机系 2011年11月

实验1 直线段的扫描转换 实验类型:设计性 实验类别:专业实验 实验目的 1.通过实验,进一步理解直线段扫描转换的DDA算法、中点bresenham算法及 bresenham算法的基本原理; 2.掌握以上算法生成直线段的基本过程; 3.通过编程,会在C/C++环境下完成用DDA算法、中点bresenham算法及 bresenham算法对任意直线段的扫描转换。 实验设备及实验环境 计算机(每人一台) VC++6.0或其他C/C++语言程序设计环境 实验学时:2学时 实验内容 用DDA算法中点bresenham算法及bresenham算法实现任意给定两点的直线段的绘制(直线宽度和线型可自定)。 实验步骤: 1、复习有关算法的基本原理,明确实验目的和要求; 2、依据算法思想,绘制程序流程图; 3、设计程序界面,要求操作方便; 4、用C/C++语言编写源程序并调试、执行; 5、分析实验结果 6、对程序设计过程中出现的问题进行分析与总结; 7、打印源程序或把源程序以文件的形式提交; 8、按格式要求完成实验报告。 实验报告要求: 1、各种算法的基本原理; 2、各算法的流程图 3、实验结果及分析(比较三种算法的特点,界面插图并注明实验条件) 4、实验总结(含问题分析及解决方法)

实验2 圆的扫描转换 实验类型:设计性 实验类别:专业实验 实验目的 1、通过实验,进一步理解和掌握中点bresenham画圆算法的基本原理; 2、掌握以上算法生成圆和圆弧的基本过程; 3、掌握在C/C++环境下完成用中点bresenham算法圆或圆弧的绘制方法。实验设备及实验环境 计算机(每人一台) VC++6.0或其他C/C++语言程序设计环境 实验学时:2学时 实验内容 用中点(Besenham)算法实现圆或圆弧的绘制。 实验步骤 1.复习有关圆的生成算法,明确实验目的和要求; 2.依据算法思想,绘制程序流程图(注意圆弧生成时的输入条件); 3.设计程序界面,要求操作方便; 4.用C/C++语言编写源程序并调试、执行; 5.分析实验结果 6.对程序设计过程中出现的问题进行分析与总结; 7.打印源程序或把源程序以文件的形式提交; 8.按格式要求完成实验报告。 实验报告要求: 1.分析算法的工作原理; 2.画出算法的流程图 3.实验结果及分析(比较圆与圆弧生成算法的不同) 4.实验总结(含问题分析及解决方法)

图形学实验报告

山东建筑大学测绘地理信息学院 实验报告 (2016—2017学年第一学期) 课程:计算机图形学 专业:地理信息科学 班级:地信141 学生姓名:王俊凝 学号:20140113010 指

实验一直线生成算法设计 一、实验目的 掌握基本图形元素直线的生成算法,利用编程语言C分别实现直线和圆的绘制算法。 二、实验任务 在TurboC环境下开发出绘制直线和圆的程序。 三、实验仪器设备 计算机。 四、实验方法与步骤 1 运行TurboC编程环境。 2 编写Bresenham直线绘制算法的函数并进行测试。 3 编写中点圆绘制算法的函数并进行测试。 4 增加函数参数,实现直线颜色的设置。 提示: 1. 编程时可分别针对直线和圆的绘制算法,设计相应的函数,例如void drawline(…)和void drawcircle(…),直线的两个端点可作为drawline的参数,圆的圆心和半径可作为drawcircle的参数。 2. 使用C语言编写一个结构体类型用来表示一个点,结构体由两个成员构成,x和y。这样,在向函数传入参数时,可使用两个点类型来传参。定义方法为:

typedef struct{ int x; int y; }pt2; 此处,pt2就是定义的一个新的结构体数据类型,之后就可用pt2来定义其他变量,具体用法见程序模板。 3. 在main函数中,分别调用以上函数,并传入不同的参数,实现对直线的绘制。 4. 线的颜色也可作为参数传入,参数可采用TurboC语言中的预设颜色值,具体参见TurboC图形函数。 五、注意事项 1 代码要求正确运行,直线和圆的位置应当为参数,实现可配置。 2 程序提交.c源文件,函数前和关键代码中增加注释。 程序模板 #include #include typedef struct{ int x; int y; }pt2; /*declare your drawing functions.*/ void drawline(pt2 startpt,pt2 endpt,int color); void drawcircle(pt2 centerpt,int radius,int color); void circlePlotPoints(pt2 centerpt,int x,int y,int color); int main() { int color,radius;

大型数据库第三次实验

大型数据库第三次实验

————————————————————————————————作者: ————————————————————————————————日期:

南京邮电大学计算机学院 《大型数据库技术》 实验三:MySQL数据库进阶开发 姓名:??班级:??学号: 年月日星期 说明:斜体需要输出的部分。 1MySQL的存储过程和函数 1.1创建企业销售系统的数据库,命名为salesdb 1.2创建一张商品销售表,命名为salerecords,包括如下字段:商品ID,商品名称, 销售单价,销售数量。 以上不需要截图。 1.3创建一个存储过程,名称自订,通过输入商品ID,商品名称,销售单价,销售数量 往表中插入一条记录。 输出截图:(包括存储过程定义,调用三次存储过程,以及表的查询结果) 1.4创建一个存储过程,名称自订,通过输入商品名称往表中插入100条记录。其中,

所插入第一条记录的商品ID由现有表中商品ID的最大值+1构成,后续记录中商品ID依次递增1。所插入第一条记录的商品价格与现有表中商品价格的最小值相同,后续记录的商品价格依次递增1。商品销售数量随机生成。 输出截图:(包括存储过程定义,表中前10条查询结果) 1.5创建一个存储过程,名称自定,通过输入商品ID的最小值,最大值,将表中商品ID 处于(最小值,最大值)范围内,且为偶数的记录删除,包括最小值与最大值本身。 此处不考虑商品ID不存在的情况,在实验时请选择1.4中创建的商品ID范围的子集。 输出截图:

1.6创建两个事件调度器,第一个每3秒往1.2的表中插入一条记录,第二个每30秒清空1.2 的表中的所有记录。 输出截图:(只需要截取两个事件调度器的定义,以及在三个不同时刻查询表中记录count (*)的结果。)

数据库实验报告4

数据库实验报告4

《数据库原理》实验报告 题目:实验四视图与索引学号姓名班级日期Xxxx Xx xxxxx 2016.10.20 一. 实验内容、步骤以及结果 1.在Student数据库中,利用图形用户界面,创建一个选修了“数据库原理”课程并且是 1986年出生的学生的视图,视图中包括学号,性别,成绩三个信息。 2.用两种不同的SQL语句创建第五版教材第三章第9题中要求的视图(视图名:V_SPJ) 方法一: create view V_SP as select sno,pno,qty from spj where spj.jno in (select jno from j where j.jname='

三建') 方法二: create view V_SPJ as select sno,pno,qty from spj,j where j.jno=spj.jno and j.jname='三建'

INTO V_SPJ(SNO,PNO,QTY) VALUES( 's5','p3',900) 提示: -SPJ表中JNO允许为空时,数据可以插入基本表,此时JNO为NULL,由 于JNO为NULL,所以视图中没有该 条数据。 -SPJ表中JNO不能为空时,可以使用instead of触发器实现。 (1)修改视图V_SPJ中的任意一条数据的供 应数量。 update V_SPJ set qty=111 where sno='s1' and pno='p1'

(2)删除视图V_SPJ中的任意一条数据(注意 所创建视图可以视图消解时,才能正常删除,否则会删除失败;也可以考虑用 instead of触发器实现)。 DELETE V_SPJ where sno='s1' and pno='p1' and qty=111 用instead of触发器实现 CREATE TRIGGER trdV_SPJ ON V_SPJ INSTEAD OF DELETE AS BEGIN Delete from V_SPJ WHERE sno='s1' and pno='p1' and qty=111 END

计算机图形学上机实验指导

计算机图形学上机实验指导 指导教师:张加万老师 助教:张怡 2009-10-10

目录 1.计算机图形学实验(一) – OPENGL基础 ..................................... - 1 - 1.1综述 (1) 1.2在VC中新建项目 (1) 1.3一个O PEN GL的例子及说明 (1) 2.计算机图形学实验(二) – OPENGL变换 ..................................... - 5 - 2.1变换 (5) 3.计算机图形学实验(三) - 画线、画圆算法的实现....................... - 9 - 3.1MFC简介 (9) 3.2VC6的界面 (10) 3.3示例的说明 (11) 4.计算机图形学实验(四)- 高级OPENGL实验...................... - 14 - 4.1光照效果 (14) 4.2雾化处理 (16) 5.计算机图形学实验(五)- 高级OPENGL实验........................ - 20 - 5.1纹理映射 (20) 5.2反走样 (24) 6.计算机图形学实验(六) – OPENGL IN MS-WINDOWS .......... - 27 - 6.1 实验目标: (27) 6.2分形 (28)

1.计算机图形学实验(一) – OpenGL基础 1.1综述 这次试验的目的主要是使大家初步熟悉OpenGL这一图形系统的用法,编程平台是Visual C++,它对OpenGL提供了完备的支持。 OpenGL提供了一系列的辅助函数,用于简化Windows操作系统的窗口操作,使我们能把注意力集中到图形编程上,这次试验的程序就采用这些辅助函数。 本次实验不涉及面向对象编程,不涉及MFC。 1.2在VC中新建项目 1.2.1新建一个项目 选择菜单File中的New选项,弹出一个分页的对话框,选中页Projects中的Win32 Console Application项,然后填入你自己的Project name,如Test,回车即可。VC为你创建一个工作区(WorkSpace),你的项目Test就放在这个工作区里。 1.2.2为项目添加文件 为了使用OpenGL,我们需要在项目中加入三个相关的Lib文件:glu32.lib、glaux.lib、opengl32.lib,这三个文件位于c:\program files\microsoft visual studio\vc98\lib目录中。 选中菜单Project->Add To Project->Files项(或用鼠标右键),把这三个文件加入项目,在FileView中会有显示。这三个文件请务必加入,否则编译时会出错。或者将这三个文件名添加到Project->Setting->Link->Object/library Modules 即可。 点击工具条中New Text File按钮,新建一个文本文件,存盘为Test.c作为你的源程序文件,再把它加入到项目中,然后就可以开始编程了。 1.3一个OpenGL的例子及说明 1.3.1源程序 请将下面的程序写入源文件Test.c,这个程序很简单,只是在屏幕上画两根线。 #include

数据库实验四

西南石油大学实验报告 注意:在粘贴截图时请保留窗口完整标题,但只需保留关键界面,多余的空白界面请删除。 一、实验课时:2 二、实验目的 (1) 掌握使用T-SQL语句创建登录帐户的方法。 (2) 掌握使用T-SQL语句创建数据库用户的方法。 (3) 掌握使用T-SQL语句创建数据库角色的方法。 (4) 掌握使用T-SQL语句管理数据库用户权限方法。 三、实验要求 (1) 使用SQL Server 2008查询分析器。 (2) 严格依照操作步骤进行。 四、实验环境 (1) PC机。 (2) SQL Server 2008。 五、实验内容及步骤 注意事项: (1)首先在C盘根目录创建文件夹Bluesky,执行脚本文件“PracticePre-第11章安全管理.sql”,创建数据库BlueSkyDB和表; (2)如何建立“数据库引擎查询”;

(3)使用“select user_name()”可查询当前登录账号在当前数据库中的用户名。 步骤1 使用Transact-SQL创建三个SQL Server登录账户TUser1、TUser2、TUser3,初始密码均为“123456”。 --SA CREATE LOGIN TUser1 WITH PASSWORD='123456' CREATE LOGIN TUser2 WITH PASSWORD='123456' CREATE LOGIN TUser3 WITH PASSWORD='123456' 步骤2 使用TUser1建立一个新的数据库引擎查询,在“可用数据库”下拉列表框中是否能看到并选中BlueSkyDB数据库?为什么?

计算机图形学实验指导书

计算机图形学实验指导书 授课教师:臧辉 适用专业:计算机学院计算机科学技术 使用班级: 12软件工程 授课时间:2015春季 授课学时:40/30/10学时 使用教材:计算机图形学教程 王汝传编著 人民邮电出版社,2009年版 湖北理工学院计算机学院

实验教学进度表

实验一直线段的生成算法 一、实验目的及要求 1、掌握Bresenham算法的原理; 2、熟悉Bresenham算法的具体c语言实现; 3、掌握dda算法的原理; 4、熟悉dda算法的具体c语言实现。 二、实验学时 4学时 三、实验任务 1、Bresenham算法的c语言实现 2、DDA算法的c语言实现 四、实验重点、难点 对Bresenham算法的原理以及c语言程序的具体实现 (一)Bresenham算法的实现 #include #include #include #include void Bresenham_line(int x0,int y0,int x1,int y1,int color) { 具体代码根据书上算法2.1.6改写 } Void main() { int gdriver = DETECT, gmode, errorcode; char msg[80]; initgraph(&gdriver, &gmode, "");//初始化图形和局部变量Bresenham_line(100,100,300,300,5); Getch(); Closegraph(); } (二)DDA算法的实现 #include #include #include #include void DDAline(int x0,int y0,int x1,int y1,int color) { 根据书上算法2.1-2改写 } void main() { int gdriver = DETECT, gmode;

计算机图形学实验报告记录

计算机图形学实验报告记录

————————————————————————————————作者:————————————————————————————————日期:

计算机图形学实验报告 姓名:___ __________ 学号:_____ ________ 班级:______ _______ 时间:_____2016年12月_________

实验一OpenGL编程与图形绘制 1.实验目的 了解OpenGL编程,并熟悉OpenGL的主要功能、绘制流程和基本语法。学会配置OpenGL环境,并在该环境中编程绘图。 2.实验内容 OpenGL的主要功能:模型绘制、模型观察、颜色模式、光照应用、图像效果增强、位图和图像处理、纹理映射、实时动画和交互技术。 OpenGL的绘制流程分为两个方面:一个完整的窗口系统的OpenGL图形处理系统的结构为:最底层为图形硬件,第二层为操作系统,第三层为窗口系统,第四层为OpenGL,最上面的层为应用软件;OpenGL命令将被放在一个命令缓冲区中,这样命令缓冲区中包含了大量的命令、顶点数据和纹理数据。当缓冲区被清空时,缓冲区中的命令和数据都将传递给流水线的下一个阶段。 OpenGL的基本语法中相关库有:OpenGL核心库:gl、OpenGL实用程序库:glu、OpenG 编程辅助库:aux、OpenGL实用程序工具包(OpenGL utility toolkit,GLUT):glut、Windows 专用库:wgl。 OpenGL的基本语法中命名规则为:OpenGL函数都遵循一个命名约定,即采用以下格式:<库前缀><根命令><可选的参数个数><可选的参数类型>。 了解了上述基础知识后,配置好OpenGL环境,然后在该环境中编程练习图形的绘制,本次实验主要是对点的绘制、直线的绘制和多边形面的绘制。 3.实验代码及结果 3.1点的绘制: #include void Initial(void) { glClearColor(1.0f,1.0f,1.0f,1.0f); //设置窗口背景颜色为白色 glMatrixMode(GL_PROJECTION); //指定设置投影参数 gluOrtho2D(0.0,200.0,0.0,150.0); //设置投影参数 } void Display(void) {

数据库系统概论(第四版)-第三章全部实验

实验一 【附】1、定义一个学生-课程模式S-T create schema”s-t”authorization WANG (若上句没有模式名”s-t”,则默认为WANG) 2、删除模式ZHANG drop schema ZHANG cascade (cascade级联:对象全删;restrict限制) 1.建立学生-课程数据库s_t; create database s_t 2.在数据库s_t下新建三张表:Student、Course、SC。 (1)学生表:Student(Sno,Sname,Sex,Sage,Sdept)。Student由学号(Sno)、姓名(Sname)、性别(Sex)、年龄(Sage)、所在系(Sdept)五个属性组成,其中Sno为主键。 create table Student (Sno char(9)primary key not null, Sname char(20)unique not null, Ssex char(2)not null, Sage smallint not null, Sdept char(20)not null) Insert into Student(Sno,Sname,Ssex,Sage,Sdept) values('200215121','李勇','男',20,'CS') insert into Student(Sno,Sname,Ssex,Sage,Sdept) values('200215122','刘晨','女',19,'CS') insert into Student(Sno,Sname,Ssex,Sage,Sdept) values('200215123','王敏','女',18,'MA') insert into Student(Sno,Sname,Ssex,Sage,Sdept) values('200215125','张立','男',19,'IS') (2)课程表:Course(Cno,Cname,Cpno,Ccredit) Course课程号(Cno)、课程名(Cname)、先行课的课程号(Cpno)、学分(Ccredit)四个属性组成,其中Cno为主键。其中Cpno参考了本表的Cno字段的值,Cno为主键 create table course (cno char(40)primary key not null, cname char(4)not null, ccredit smallint not null foreign key(Cpon)references course(Cno)) insert into Course values('1','数据库','5',4) insert into Course values('2','数学','',2) insert into Course values('3','信息系统','1',4) insert into Course values('4','操作系统','6',3) insert into Course values('5','数据结构','7',4)insert into Course values('6','数据处理','',2) insert into Course values('7','PASCAL语言','6',4)学生选课表:SC(Sno,Cno,Grade) SC由学号(Sno)、课程号(Cno)、成绩(Grade)三个属性组成,其Sno、Cno的组合为主键。create table SC (Sno char(9)not null, cno char(4)not null, Grade smallint not null) insert into SC values('200215121','1',92) insert into SC values('200215121','2',85) insert into SC values('200215121','3',88) insert into SC values('200215122','2',90) insert into SC values('200215121','3',80) ) 3基本表的修改: a)向Student表增加“入学时间”列,期数据类型为日期型 b)将年龄的数据类型由字符型改为整型 c)增加课程名称必须取唯一值的约束条件alter table studebt add s_entrance datetime alter table student alter column sage int alter table course add unique(cname) 实验二 1.查询全体学生的学号和姓名 select sno,sname from student 2.查询全体学生的详细记录 select* from student 3.查询全体学生的姓名、出生年份和所在的院系,要求用小写字母表示所有系名。select sname,'year of birth:',2011-sage,lower( sdept) from student 4.查询选修了课程的学生学号,去掉结果中的重复行。 select distinct sno from sc 5.查询所有年龄在20~23岁之间的学生姓名、系别和年龄。 select sname,sdept,sage from student where sage not between20and23

数据库实验报告

实验内容与要求 请有选择地实践以下各题。 (1)基于“教学管理”数据库 jxgl,使用SQL的查询语句表达下列查询: ①检索年龄大于23岁的男学生的学号和姓名; SELECT Sn o,S name FROM Stude nt WHERE Ssex=男’AND Sage>23; ②检索至少选修一门课程的女生姓名; SELECT Sn ame FROM Stude nt WHERE Ssex=女’AND Sno IN ( SELECT Sno FROM SC GROUP BY Sno HAVING cou nt(*)>=1; ); ③检索王同学不学的课程的课程号; SELECT Cno; FROM Course WHERE Cno NOT IN ( SELECT Cno FROM Stude nt,SC WHERE Sname like '王 % AND Student.Sno=SC.Sno ); ④检索至少选修两门课程的学生学号; SELECT DISTINCT Sno FROM SC GROUP BY Sno HAVING cou nt(*)>=2; ⑤检索全部学生都选修的课程的课程号与课程名; SELECT Cn o,C name FROM Course WHERE NOT EXISTS ( SELECT * FROM Stude nt WHERE NOT EXISTS ( SELECT * FROM SC WHERE SC.S no=Stude nt.S no AND SC.C no=Course.C no

) ); ⑥检索选修了所有 3学分课程的学生学号; SELECT DISTINCT Sno FROM SC X WHERE NOT EXISTS ( SELECT * FROM Course WHERE Ccredit=3 AND NOT EXISTS ( SELECT * FROM SC Y WHERE X.S no=Y.S no AND Course.C no=Y.C no ) ); (2)基于“教学管理”数据库 jxgl,使用SQL的查询语句表达下列查询: ①统计有学生选修的课程门数; SELECT coun t(DISTINCT Cno) FROM SC; ②求选修4号课程的学生的平均年龄; SELECT AVG(Sage) FROM Stude nt,SC WHERE Cn o=4 AND Stude nt.S no=SC.S no; ③求学分为3的每门课程的学生平均成绩; SELECT AVG(Grade) FROM Course,SC WHERE Ccredit=3 AND Course.C no=SC.C no GROUP BY SC.C no; ④统计每门课程的学生选修人数,要求超过3人的课程才统计,要求输出课程号和选修人数查询结果按人数降序排列,若人数相同,按课程号升序排列; SELECT Cn o,cou nt(S no) FROM SC GROUP BY Cno HAVING cou nt(S no )>3 ORDER BY cou nt(S no) DESC,C no ASC; ⑤检索学号比“王菲”同学大而年龄比他小的学生姓名; SELECT Sn ame FROM Stude nt X WHERE Sno>

相关文档
相关文档 最新文档