当前位置:文档之家› 体系结构实验报告

体系结构实验报告

体系结构实验报告
体系结构实验报告

|

课程实验报告

软件系统结构?

\

]

专业软件工程

学生姓名刘辉

软件151

班级|

学号17

指导老师孙莉

*

实验一C/S结构应用设计(1)

一、实验目的

设计并实现一个基于多层C/S结构的数据库应用,熟悉多层C/S体系结构及其基本处理流程,了解多层结构表现层、业务逻辑层(功能层)、数据访问层所完成的功能,掌握多层C/S结构的数据库应用设计方法,对这三层进行明确分割,并在逻辑上使其独立。学生通过本实验的训练能够熟练掌握对小型数据库应用系统三层结构层次划分方法及系统实现技术。

本次实验目的:

(1)熟悉并掌握二层C/S软件体系结构的相关知识;

(2)掌握二层C/S结构应用系统的分析和设计;

(3)掌握一种开发二层C/S结构应用系统的技术线路;

:

(4)实际开发出一个简单的基于二层C/S结构的应用实例——个人通讯录管理系统。

要求:

(1)需要预先掌握SQL server 2000数据库基本操作、(用C#语言)编程技术和多层C/S软件体系结构的概念;

(2)进行二层C/S结构应用系统的分析和设计,在实验报告中写出个人通讯录管理系统的设计方案;

(3)在SQL server 2000数据库系统中建立数据库并输入数据;

(4)在中用C#语言编写表现层(UI)程序;

(5)在中用C#语言编写业务逻辑层(BLL)程序;

:

(6)完成系统调试,得出正确的实验结果;

(7)做完实验后写出本实验的实验报告。

二、实验环境

奔腾以上计算机,装有SQL Server 2000数据库系统和Visual Studio 2000软件。

三、实验内容

1、分别采用二层C/S结构和多层C/S结构实现个人通讯录系统。该系统的设计目标是能够轻松地管理个人的联系人信息,包括添加、修改和删除操作。联系人信息包括姓名、住址、电话。整个系统的功能图如下图所示:

分析系统需求,完成软件体系结构设计及模块划分、数据库设计,采用Visual C#实现系统功能

四、实验操作过程

在电脑上安装好Microsoft Visual Studio 2010 用于系统的开发

需要实际设计开发出一个简单的基于两层C/S结构的应用系统——个人通讯录管理系统,主要步骤和内容如下:

1、在SQL Server 2000中建立数据库Contact,建立表friend。

(1)建立数据库Contact:Create database contact

(2)建立数据库表friend

friend]’)and OBJECTPROPERTY (id,N’isusertable’)=1)

?

Drop table [dbo].[friend]

GO

friend]

([fid] [int] identity(1,1) not null,

[fname] [varchar] (8) collate Chinese prc ci as not null,

[fphone] [varchar] (12) collate Chinese prc ci as null,

[faddress] [varchar] (100) collate Chinese prc ci as null

`

)on [primary]

表1 friend的结构

列名数据类型长度允许空是否标识~

说明

Fid Int

4

否是联系人编号,自动递增型

{ Fname Varchar8否

联系人姓名

Fphone。

Varchar

12否否联系人电话

Faddress Varchar?

100

是否联系人地址

新建完friend表之后向表中插入1条记录。以便程序调试时使用。

2、在Visual Studio 2000中用C#语言建立用户界面层(UI)程序:Contact 项目,主要呈现用户操作界面。

用户的主要操作界面如下:

各个控件的属性如下表:

其中txtAddress控件的Multilane属性为True.

最后我们要设置listView属性,将其FullRowSelect属性设置为true,Gridlines属性设置为True,View属性设置为Details,并点开Columns属性,添加一列,设置其Name为fContactID,Text属性为编号,以此方式再为其添加姓名、电话、联系方式。

到此,用户图形界面就设计完成了。

)

3、编写应用程序层代码,用于实现数据访问、添加、删除和修改等控制,关键代码如下:

(1)数据连接

数据库连接的代码如下:

string connstr = "Data Source=(local);Initial Catalog=contact;user id=sa;password=";

本代码的意思是以用户名为sa登录到本地数据库,密码为空。

(2)数据添加、删除和修改等控制的主要代码

①显示联系人信息

$

显示联系人信息由主界面的listview显示,其思路是读取数据库中所有的联系人信息,然后通过Lisview显示。

private void getInfo()

{

string sql = "select Fid,Fname,Fphone,Faddress from friend";

SqlConnection conn = new SqlConnection(connstr);

();

SqlCommand cmd = new SqlCommand(sql, conn);

·

SqlDataReader reader = ;

try

{

while ())

{

string[] subItems = new string[]{

(0).ToString(),

(1),

`

(2),

(3)};

ListViewItem(subItems));

}

();

}

catch (Exception ex)

/

{

());

}

}

②添加联系人信息

对联系人信息进行添加的操作并录入数据库

public void addInfo(string name, string phone, string address)

@

{

string sql="insert into friend(Fname,Fphone,Faddress)values('"+name+"','"+phone+"','"+address+"')";

SqlConnection conn=new SqlConnection(connstr);

SqlCommand cmd=new SqlCommand(sql,conn);

();

();

();}

)

③修改联系人信息

对联系人信息进行修改的操作并录入数据库

private void btnEdit_Click(object sender, EventArgs e)

{

if == 0)

{

("请单击选择需要修改的联系人!");

|

return;

}

();

ListViewItem lvi = [ - 1];

= [1].Text;

= [2].Text;

= [3].Text;

(

Fid = [0].Text);

= false;

= false;

= false;

}

④删除联系人

对联系人信息进行删除的操作并录入数据库

&

private void button5_Click(object sender, EventArgs e)

{

int infoID = ();

if (infoID == 0)

{

("请选中信息先!");

return;

}

try

{

string sql = "delete friend where fid=" + infoID;

SqlConnection conn = new SqlConnection(connstr);

();

SqlCommand cmd = new SqlCommand(sql, conn);

~

();

();

();

}

catch (Exception ex)

{

;

}

*

}

五、实验结果及结论。

当我们运行程序时可以看到之前在数据库中插入的数据已经显示在了联系人列表中,我们点击添加联系人信息之后再次插入信息,点击确定后,我们可以看到,新插入的数据已经在联系人列表中了,如下图所示。

添加联系人

单击确定按钮之后显示通讯上去了:

六、心得体会

这次实验让我学会了两层C/S体系结构的设计实现方法,在实验中我也犯了很多低级错误,比如在进行程序编码时要注意C#区分大小写,编写程序时一定要注意;程序要注意保存,并记住保存的位置。本实验为综合性实验,需要多次才能完成,前面的阶段性实验成果后续需要使用。

这次实验让我学会了个道理:做事要脚踏实地,一步一步地来,不能着急,遇到问题首先不能着急,静下心来慢慢地检查和解决问题,这才是最好的方法,不然永远不能解决问题,在以后的实验中也要慢慢地学会如何学习,掌握学习的方法最重要。

.

"

实验二C/S结构应用设计(2)

一、实验目的

设计并实现一个基于多层C/S结构的数据库应用,熟悉多层C/S体系结构及其基本处理流程,了解多层结构表现层、业务逻辑层(功能层)、数据访问层所完成的功能,掌握多层C/S结构的数据库应用设计方法,对这三层进行明确分割,并在逻辑上使其独立。学生通过本实验的训练能够熟练掌握对小型数据库应用系统三层结构层次划分方法及系统实现技术。

本次实验目的:

(1)熟悉并掌握多层C/S软件体系结构的相关知识;

(2)掌握多层C/S结构应用系统的分析和设计;

(3)掌握一种开发多层C/S结构应用系统的技术线路;

(4)实际开发出一个简单的基于多层C/S结构的应用实例——个人通讯录管理系统。

实验要求

(1)需要预先掌握SQL server 2000数据库基本操作、(用C#语言)编程技术和多层C/S软件体系结构的概念;

(2)进行多层C/S结构应用系统的分析和设计,在实验报告中写出个人通

讯录管理系统的设计方案;

(3)在SQL server 2000数据库系统中建立数据库并输入数据;

(4)在中用C#语言编写表现层(UI)程序;

(5)在中用C#语言编写业务逻辑层(BLL)程序;

(6)完成系统调试,得出正确的实验结果;

(7)做完实验后写出本实验的实验报告。

二、实验环境

奔腾以上计算机,装有SQL Server 2000数据库系统和Visual Studio 2000软件。

三、实验内容

1、分别采用二层C/S结构和多层C/S结构实现个人通讯录系统。该系统的设计目标是能够轻松地管理个人的联系人信息,包括添加、修改和删除操作。联系人信息包括姓名、住址、电话。整个系统的功能图如下图所示:

分析系统需求,完成软件体系结构设计及模块划分、数据库设计,采用Visual C#实现系统功能

四、实验操作过程

需要实际设计开发出一个简单的基于多层C/S结构的应用系统——个人通讯录管理系统,主要步骤和内容如下:

1、在SQL Server 2000中建立数据库Contact,建立表friend。

在创建二层C/S时,我们已经创建了contact数据库,并建立了friend表,这次我们可以直接引用。

2、在Visual Studio 2000中用C#语言建立用户界面层(UI)程序:Contact 项目,主要呈现用户操作界面。

在创建二层C/S架构中,我们已经创建过此用户图形界面,三层架构的用户图形层(UI)与两层架构一致,所以在此就不再重复。

3、在Contact中增加新类作为业务逻辑层(BLL)程序。

在业务逻辑层中需要为其添加头文件

using System;

.

using ;

using ;

并创建contactDB类

using Contact

{

class ContactDB{

}

?

4、编写类文件代码,用于实现数据访问控制,关键代码如下:

(1)数据连接

数据库的访问是由contactDB类中的getReader方法实现的,在MainForm中,只需要如下代码:

SqlDataReader reader = ();

getReader方法定义了一个String类型的变量sql,用于保存访问数据库的SQL 命令:

string sql = "select Fid,Fname,Fphone,Faddress FROM friend";

接着新建数据库连接对象conn并打开数据连接:

?

SqlConnection conn = new SqlConnection(connStr);

();

其中连接字符窜connStr是contactDB类的域:

string connStr = "Data source=(local);Initial Catalog=contact;user id=sa;password=''";

然后建立数据命令对象:

SqlCommand cmd = new SqlCommand(sql, conn);

数据命令对象cmd使用的数据库连接是conn,而参数sql表示数据命令的数据文本为sql,即数据命令的CommandText属性为sql。

^

(2)数据获取

SqlDataReader reader = ;

return reader;

在MainForm的getInfo方法中,获取了由ContactDB类的getReader方法返回的数据阅读器后,接下来要执行的是循环读取阅读器中的信息,然后依次添加到listView中;

try

{

SqlDataReader reader = ();

{

oString(),

(1),

(2),

(3)};

ListViewItem(subItems));

}

();

^

}

catch (Exception ex)

{

());

}

while ())

{

\

每次读取一条记录都将记录中的每个字段的信息封装到string类型的数组中:

string[] subItems = new string[]{

(0).ToString(),

(1),

(2),

(3)

接下来将subItems中的数据封装为listView的一个节点(listViewItem)并添加到listView中:

~

ListViewItem(subItems));

();

至此显示联系人的功能就完成了,其他模块的代码编写与此类似,就不再重复。

五、实验结果及结论。

(1)数据库中原有两个数据,分别为彭振东与张三的信息,我们选择修改联系人,修改张三的名字为王麻子,电话为8890,,联系地址为中国,可以看到listView中张三的信息修改了,如下图所示:

注册页面:

修改信息:

)

(2)思考题:与二层C/S体系结构比较,三层(多层)体系结构有什么特点采用三层体系结构在设计时应该注意哪些问题

答:三层体系结构的优点:

①允许合理地划分三层结构的功能,使之在逻辑上保持相对独立性

②允许更灵活有效地选用相应的平台和硬件系统

③三层C/S结构中,应用的各层可以并行开发,各层也可以选择各自最合适的开发语言。

④允许充分利用功能层有效地隔离层表示层与数据层。

⑤三层C/S结构各层间的通信效率若不高,即使分配给各层的硬件能力很强,其作为整体来说也达不到所要求的性能。

/

六、心得体会

!

这次实验主要是对于三层C/S体系结构的设计和实现,在实验进行中我还是会犯一些错误,但是相对于第一次已经好很多了,在实验过程中我深刻地体会到了三层体系结构的优点,它允许合理地划分三层结构的功能,使之在逻辑上保持相对独立性;允许更灵活有效地选用相应的平台和硬件系统;三层C/S结构中,应用各层可以并行开发,各层也可以选择各自独立最适合的开发语言;允许充分利用功能层有效地隔离表示层与数据层。并且了解了三层与两层之间的区别。三层的结构很分明。

这次实验让我学到很多,独立的思考问题并解决问题是锻炼我们独立思考的能力,而且比较学习才能发现其中的奥妙,知识的积累靠的是我们反复地推敲以及思考如何达到目标,很庆幸,我们做到了。

&

`

|

实验三B/S结构应用设计(1)

一、实验目的

设计并实现一个基于B/S结构的数据库应用,熟悉B/S体系结构及其基本处理流程,了解B/S结构系统各部分所完成的功能,掌握B/S结构的数据库应用设计方法。学生通过本实验的训练能够熟练掌握对小型数据库应用系统B/S结构设计及系统实现技术。

二、实验环境

MyEclips 10、Tomcat、SQL Server 2010

三、实验内容

1、采用B/S结构实现个人通讯录系统。该系统的设计目标是能够轻松地管理个人的联系人信息,包括添加、修改和删除操作。联系人信息包括姓名、住址、电话。整个系统的功能图如下图所示:

分析系统需求,完成软件体系结构设计及模块划分、数据库设计,采用(使用C#语言)实现系统功能

四、实验操作过程

在MyEclips中新建项目:Structure_Contact。生成项目之后在src下新建包,在包中建立action类,包括:addAction、deleteAction、editAction、mainAction、modifyAction、registerAction类主要步骤如下:

(1)建立addAction类继承ActionSupport类,主要是同于添加用户,主要代

码如下:

public String execute() throws Exception{

HttpServletRequest request = (); quals(

())))

&& (() == ()) || () != null

&& () != null && ()

.equals())));

}

public int hashCode() {

·

int result = 17;

result = 37 * result + (getId() == null 0 : ().hashCode());

result = 37 * result

+ (getUser() == null 0 : ().hashCode());

return result;

}

}

(5),用于数据库中的表User和定义的属性相对应,代码如下:

"-

" pageEncoding="UTF-8"%>

<%@page import =".*" %>

phone_category

welcome!

<%

ArrayList list = (ArrayList)("al");

Iterator iter = ();

while()){

UserFriend userfriend = (UserFriend)();

String temp_id = ().getId()); String temp_name = ().getUser();

%>

<%" pageEncoding="UTF-8"%>

register

nameaddressphoneadd
<%=()%><%=() %><%=() %>edit 

delete

username
password

if you don't have account ,please click here to register.

五、实验结果及结论

(1)添加界面:

(2)出错界面:

(3)register界面:

六、心得体会

在这次实验过程中,我并没有用C#实现B/S体系结构的个人通讯录,而是用的SSH三层架构实现的,同样是B/S体系结构,都是浏览器/服务器的风格,由于我们这学期在学J2EE,所以我就抱着试试看的态度尝试着开发了,虽然开发过程中遇到很多问题,不仅是技术上的,还有只是上的,不过通过这次实验让我

【精品实验报告】软件体系结构设计模式实验报告

【精品实验报告】软件体系结构设计模式实验报告软件体系结构 设计模式实验报告 学生姓名: 所在学院: 学生学号: 学生班级: 指导老师: 完成日期: 一、实验目的 熟练使用PowerDesigner和任意一种面向对象编程语言实现几种常见的设计模式,包括组合模式、外观模式、代理模式、观察者模式和策略模式,理解每一种设计模式的模式动机,掌握模式结构,学习如何使用代码实现这些模式,并学会分析这些模式的使用效果。 二、实验内容 使用PowerDesigner和任意一种面向对象编程语言实现组合模式、外观模式、代理模式、观察者模式和策略模式,包括根据实例绘制模式结构图、编写模式实例实现代码,运行并测试模式实例代码。 (1) 组合模式 使用组合模式设计一个杀毒软件(AntiVirus)的框架,该软件既可以对某个文件夹(Folder)杀毒,也可以对某个指定的文件(File)进行杀毒,文件种类包括文本文件TextFile、图片文件ImageFile、视频文件VideoFile。绘制类图并编程模拟实现。 (2) 组合模式 某教育机构组织结构如下图所示: 北京总部 教务办公室湖南分校行政办公室 教务办公室长沙教学点湘潭教学点行政办公室

教务办公室行政办公室教务办公室行政办公室 在该教育机构的OA系统中可以给各级办公室下发公文,现采用 组合模式设计该机构的组织结构,绘制相应的类图并编程模拟实现,在客户端代码中模拟下发公文。(注:可以定义一个办公室类为抽象叶子构件类,再将教务办公室和行政办公室作为其子类;可以定义一个教学机构类为抽象容器构件类,将总部、分校和教学点作为其子类。) (3) 外观模式 某系统需要提供一个文件加密模块,加密流程包括三个操作,分别是读取源文件、加密、保存加密之后的文件。读取文件和保存文件使用流来实现,这三个操作相对独立,其业务代码封装在三个不同的类中。现在需要提供一个统一的加密外观类,用户可以直接使用该加密外观类完成文件的读取、加密和保存三个操作,而不需要与每一个类进行交互,使用外观模式设计该加密模块,要求编程模拟实现。参考类图如下: reader = new FileReader();EncryptFacadecipher = new CipherMachine();writer = new FileWriter();-reader: FileReader-cipher: CipherMachine-writer: FileWriter +EncryptFacade () +fileEncrypt (String fileNameSrc,: voidString plainStr=reader.read(fileNameSrc); String fileNameDes)String

实验三--单相交流调压电路实验

信息科技大学 电力电子技术实验报告 实验项目:单相交流调压电路实验 学院:自动化 专业:自动化(信息与控制系统) /学号:贾鑫玉/2012010541 班级:自控1205班 指导老师:白雪峰 学期: 2014-2015学年第一学期

实验三单相交流调压电路实验 一.实验目的 1.加深理解单相交流调压电路的工作原理。 2.加深理解交流调压感性负载时对移相围要求。 二.实验容 1.单相交流调压器带电阻性负载。 2.单相交流调压器带电阻—电感性负载。 三.实验线路及原理 本实验采用了锯齿波移相触发器。该触发器适用于双向晶闸管或两只反并联晶闸管电路的交流相位控制,具有控制方式简单的优点。 晶闸管交流调压器的主电路由两只反向晶闸管组成。 四.实验设备及仪器 1.教学实验台主控制屏 2.NMCL—33组件 3.NMEL—03组件 4.NMCL-05(A)组件或NMCL—36组件 5.二踪示波器 6.万用表 五.注意事项 在电阻电感负载时,当α

体系结构实验报告

中南大学软件学院 软件体系结构 设计模式实验报告 学生姓名:宋昂 所在学院:软件学院 学生学号: 3901080115 学生班级:软件0801 指导老师:刘伟 完成日期: 2010-12-7

一、实验目的 熟练使用PowerDesigner和任意一种面向对象编程语言实现几种常见的设计模式,包括简单工厂模式、工厂方法模式、抽象工厂模式、单例模式和适配器模式,理解每一种设计模式的模式动机,掌握模式结构,学习如何使用代码实现这些模式,并学会分析这些模式的使用效果。 二、实验内容 使用PowerDesigner和任意一种面向对象编程语言实现简单工厂模式、工厂方法模式、抽象工厂模式、单例模式和适配器模式,包括根据实例绘制模式结构图、编写模式实例实现代码,运行并测试模式实例代码。 (1) 简单工厂模式 使用简单工厂模式设计一个可以创建不同几何形状(Shape)的绘图工具类,如可创建圆形(Circle)、方形(Rectangle)和三角形(Triangle) 对象,每个几何图形都要有绘制draw()和擦除erase()两个方法,要求在绘制不支持的几何图形时,提示一个UnsupportedShapeException,绘制类图并编程实现。 (2) 简单工厂模式 使用简单工厂模式模拟女娲(Nvwa)造人(Person),如果传入参数“M”,则返回一个Man 对象,如果传入参数“W”,则返回一个Woman对象,使用任意一种面向对象编程语言实现该场景。现需要增加一个新的Robot类,如果传入参数“R”,则返回一个Robot对象,对代码进行修改并注意女娲的变化。 (3) 工厂方法模式 某系统日志记录器要求支持多种日志记录方式,如文件记录、数据库记录等,且用户可以根据要求动态选择日志记录方式,现使用工厂方法模式设计该系统。用代码实现日志记录器实例,如果在系统中增加一个中的日志记录方式——控制台日志记录(ConsoleLog),绘制类图并修改代码,注意增加新日志记录方式过程中原有代码的变化。

双闭环三相异步电机调压调速系统实验报告

运动控制系统专题实验 实 验 报 告 2016年5月

6.1双闭环三相异步电机调压调速系统 一.实验目的 (1)熟悉晶闸管相位控制交流调压调速系统的组成与工作原理。 (2)熟悉双闭环三相异步电机调压调速系统的基本原理。 (3)掌握绕线式异步电机转子串电阻时在调节定子电压调速时的机械特性。(4)掌握交流调压调速系统的静特性和动态特性。 熟悉交流调压系统中电流环和转速环的作用。 二.实验内容 (1)测定绕线式异步电动机转子串电阻时的人为机械特性。 (2)测定双闭环交流调压调速系统的静特性。 (3)测定双闭环交流调压调速系统的动态特性。 三.实验设备 (1)电源控制屏(NMCL-32); (2)低压控制电路及仪表(NMCL-31); (3)触发电路和晶闸管主回路(NMCL-33); (4)可调电阻(NMCL-03); (5)直流调速控制单元(NMCL-18); (6)电机导轨及测速发电机(或光电编码器); (7)直流发电机M03; (8)三相绕线式异步电机; (9)双踪示波器; (10)万用表。 四.实验原理 1.系统原理 双闭环三相异步电动机调压调速系统的主电路为三相晶闸管交流调压器(TVC)及三相绕线式异步电动机M(转子回路串电阻)。控制系统由零速封锁器(DZS)、电流调节器(ACR)、速度调节器(ASR)、电流变换器(FBC),速度变换器(FBS),触发器(GT),一组桥脉冲放大器(AP1)等组成。其系统原理图如图6-1所示。

整个调速系统采用了速度、电流两个反馈控制环。这里的速度环作用基本上与直流调速系统相同而电流环的作用则有所不同。在稳定运行情况下,电流环对电网波动仍有较大的抗扰作用,但在起动过程中电流环仅起限制最大电流的作用,不会出现最佳起动的恒流特性,也不可能是恒转矩起动。 异步电机调压调速系统结构简单,采用双闭环系统时静差率较小,且比较容易实现正,反转,反接和能耗制动。但在恒转矩负载下不能长时间低速运行,因低速运行时转差功率全部消耗在转子电阻中,使转子过热。 2.三相异步电机的调速方法 交流调速系统按转差功率的处理方式可分为三种类型。 转差功率消耗型:异步电机采用调压、变电阻等调速方式,转速越低时,转差功率的消耗越大,效率越低。 转差功率馈送型:控制绕线转子异步电机的转子电压,利用其转差功率可实现调节转速的目的,这种调节方式具有良好的调速性能和效率,如串级调速。 转差功率不变型:这种方法转差功率很小,而且不随转速变化,效率较高,列如磁极对数调速、变频调速等。 如何处理转差功率在很大程度上影响着电机调速系统的效率。 五.实验方法 双闭环交流调压调速系统主回路和控制回路如图连接,NMCL-32的“三相交流 电源”开关拨向“交流调速”。给定电位器RP1和RP2左旋到最大位置,可调电阻NMCL-03左旋到最大位置。注意:图中主回路中接入的是交流电流表和交流电压表。 VT 3 VT 1 VT 6 VT 4 VT 5 VT 2 A 交流电流表,量程为1A 图2-1 双闭环交流调压调速系统主回路G 直流电机 励磁电源 R G 直流发电机M03V TG 定子 转子NMEL-09的线绕电机起动电阻

软件设计模式与软件体系结构实验报告

《软件体系结构》大作业(1) 学院:软件学院 课程名称:软件体系结构 专业班级: 学生姓名:学号: 学生姓名:学号: 指导教师: 完成时间:年月日 评分表 1、叙述各小组成员完成本题目的分工协作情况。 小组中的每个成员都先理解题目要求及涉及的设计模式,并一起完成代码编写。另外,组长负责文档制作。 2、评分表 序号姓名评分是否组长 1 2 作业正文需要包括以下内容: 1、作业题目内容的详细描述。 2、完成本题目所采用的软件设计模式名称及画出相应的类图,或者是所采用的 软件体系结构名称及画出相应的体系结构图。

3、画出完成本题目所设计程序的设计类图;如还有其他图,也一并画出。 4、完成本题目所设计的程序代码。 5、程序运行的典型界面截图

1、作业题目内容的详细描述。 【作业2.1-1】例2.3为使用工厂方法模式设计的汽车保险管理应用程序实例。现在需要 扩展例2.3的设计图,添加一个名为LuxuryCarInsurance的类,并且需要编写此类和其他需要添加的类的代码,详细要求参见光盘的相应作业部分。 【作业2.1-1】在例2.4中,设计并且实现了豪华(Super)和中等(Medium)别墅(House)与公寓(Condo)的查询。要求在该设计的基础上,增加一个新的类SemiDetacher(半独立式楼宇),并且编写代码,实现相应的查询功能,详细要求参见光盘的相应作业部分。 2、完成本题目所采用的软件设计模式名称及画出相应的类图,或者是所采用的软件体系结构名称及画出相应的体系结构图。 【作业2.1-1】采用的是工厂方法模式 【作业2.1-2】采用的是抽象方法模式

软件设计与体系结构实验报告

福建农林大学计算机与信息学院 实验报告 课程名称:软件设计与体系结构 姓名:陈宇翔 系:软件工程系 专业:软件工程 年级:2007 学号:070481024 指导教师:王李进 职称:讲师 2009年12月16日

实验项目列表

福建农林大学计算机与信息学院实验报告 学院:计算机与信息学院专业:软件工程系年级:2007 姓名:陈宇翔 学号:070481024 课程名称:软件设计与体系结构实验时间:2009-10-28 实验室田实验室312、313计算机号024 指导教师签字:成绩: 实验1:ACME软件体系结构描述语言应用 一、实验目的 1)掌握软件体系结构描述的概念 2)掌握应用ACMESTUDIO工具描述软件体系结构的基本操作 二、实验学时 2学时。 三、实验方法 由老师提供软件体系结构图形样板供学生参考,学生在样板的指导下修改图形,在老师的指导下进行软件体系结构描述。 四、实验环境 计算机及ACMESTUDIO。 五、实验内容 利用ACME语言定义软件体系结构风格,修改ACME代码,并进行风格测试。 六、实验操作步骤 一、导入Zip文档 建立的一个Acme Project,并且命名为AcmeLab2。如下图:

接着导入ZIP文档,导入完ZIP文档后显示的如下图: 二、修改风格 在AcmeLab2项目中,打开families下的TieredFam.acme.如下图: 修改组件外观 1. 在组件类型中,双击DataNodeT; 在其右边的编辑器中,将产生预览;选择Modify 按钮,将打开外观编辑器对话框。 2. 首先改变图形:找到Basic shape section,在Stock image dropdown menu中选 择Repository类型. 3. 在Color/Line Properties section修改填充颜色为深蓝色。 4. 在颜色对话框中选择深蓝色,并单击 [OK]. 5. 修改图形的边框颜色为绿色 7. 单击Label tab,在Font Settings section, 设置字体颜色为白色,单击[OK] 产生的图形如下图:

计算机体系结构实验报告二

实验二结构相关 一、实验目的: 通过本实验,加深对结构相关的理解,了解结构相关对CPU性能的影响。 二、实验内容: 1. 用WinDLX模拟器运行程序structure_d.s 。 2. 通过模拟,找出存在结构相关的指令对以及导致结构相关的部件。 3. 记录由结构相关引起的暂停时钟周期数,计算暂停时钟周期数占总执行 周期数的百分比。 4. 论述结构相关对CPU性能的影响,讨论解决结构相关的方法。 三、实验程序structure_d.s LHI R2, (A>>16)&0xFFFF 数据相关 ADDUI R2, R2, A&0xFFFF LHI R3, (B>>16)&0xFFFF ADDUI R3, R3, B&0xFFFF ADDU R4, R0, R3 loop: LD F0, 0(R2) LD F4, 0(R3) ADDD F0, F0, F4 ;浮点运算,两个周期,结构相关 ADDD F2, F0, F2 ; <- A stall is found (an example of how to answer your questions) ADDI R2, R2, #8 ADDI R3, R3, #8 SUB R5, R4, R2 BNEZ R5, loop ;条件跳转 TRAP #0 ;; Exit <- this is a comment !! A: .double 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 B: .double 1, 2, 3, 4, 5, 6, 7, 8, 9, 10

四、实验过程 打开软件,load structure_d.s文件,进行单步运行。经过分析,此程序一 次循环中共有五次结构相关。(R-stall 数据相关Stall- 结构相关) 1)第一个结构相关:addd f2,,f0,f2 由于前面的数据相关,导致上一条指令addd f0,f0,f4暂停在ID阶段,所以下一条指令addd f2,,f0,f2发生结构相关,导致相关的部件:译码部件。 2)第二个结构相关:ADDI R2, R2, #8,与第一个结构相关类似。由于数据相关, 上一条指令暂停在ID阶段,所以导致下一条指令发生结构相关。

单相交流调功电路正文

1概述 1.1晶闸管交流调功器 交流调功器:是一种以晶闸管为基础,以智能数字控制电路为核心的电源功率控制电器,简称晶闸管调功器,又称可控硅调功器,可控硅调整器,可控硅调压器,晶闸管调整器,晶闸管调压器,电力调整器,电力调压器,功率控制器。具有效率高、无机械噪声和磨损、响应速度快、体积小、重量轻等诸多优点。 1.2 交流调压与调功 交流调功电路的主电路和交流调压电路的形式基本相同,只是控制的方式不同,它不是采用移相控制而采用通断控制方式。交流调压是在交流电源的半个周期内作移相控制,交流调功是以交流电的周期为单位控制晶闸管的通断,即负载与交流电源接通几个周波,再断开几个周波,通过改变接通周波数和断开周波数的比值来调节负载所消耗的平均功率。如图3-21所示,这种电路常用于电炉的温度控制,因为像电炉这样的控制对象,其时间常数往往很大,没有必要对交流电源的各个周期进行频繁的控制。只要大致以周波数为单位控制负载所消耗的平均功率,故称之为交流调功电路。 1.3 过零触发和移相触发 过零触发是在设定时间间隔内,改变晶闸管导通的周波数来实现电压或功率的控制。过零触发的主要缺点是当通断比太小时会出现低频干扰,当电网容量不够大时会出现照明闪烁、电表指针抖动等现象,通常只适用于热惯性较大的电热负载。 移相触发是早期触发可控硅的触发器。它是通过调速电阻值来改变电容的充放电时间再来改变单结晶管的振荡频率,实际改变控制可控硅的触发角。早期可控可是依靠这样改变阻容移相线路来控制。所为移相就是改变可控硅的触发角大小,也叫改变可控硅的初相角。故称移相触发线路。

2系统总体方案 2.1交流调功电路工作原理 单相交流调功电路方框图如图2.1.1所示。 图2.1.1 交流调功电路的主电路和交流调压电路的形式基本相同,只是控制的方式不同,它不是采用移相控制而采用通断控制方式。交流调压是在交流电源的半个周期内作移相控制,交流调功是以交流电的周期为单位控制晶闸管的通断,即负载与交流电源接通几个周波,再断开几个周波,通过改变接通周波数和断开周波数的比值来调节负载所消耗的平均功率。如图2.1.2所示,这种电路常用于电炉的温度控制,因为像电炉这样的控制对象,其时间常数往往很大,没有必要对交流电源的各个周期进行频繁的控制。只要大致以周波数为单位控制负载所消耗的平均功率,故称之为交流调功电路。 图2.1.2 LO AD BCR TLC336A1 A2 g u 脉宽可调矩形波信号发生器

软件体系结构实验报告

实验指导书 实验一 1、实验项目:软件体系结构设计(一) 某系统C/S风格客户端软件体系结构设计 2、实验目的:熟悉C/S风格的工作机制 3、实验内容:针对某个应用系统,选用C/S风格作为这个系统的软件体系结构 风格。熟悉C/S风格的工作机制,对所考察的系统进行C/S风格客户端软件体系结构设计。(针对不同的特定应用系统具体表述) 实验二 1、实验项目:软件体系结构设计(二) 某系统C/S风格服务器软件体系结构设计 2、实验目的:熟悉C/S风格的工作机制 3、实验内容:针对某个应用系统,选用C/S风格作为这个系统的软件体系结构 风格。熟悉C/S风格的工作机制,对所考察的系统进行C/S风格服务器软件体系结构设计。(针对不同的特定应用系统具体表述) 实验三 1、实验项目:UML建模 某系统UML建模 2、实验目的:深入理解UML建模的思想,熟悉UML建模方法 3、实验内容:作为实际应用前的一种演练,深入理解UML建模的思想,熟悉 UML建模方法,锻炼和培养分析问题、解决问题的能力。针对某个选定的应用系统,对其进行用例建模、对象类建模和状态图建模。 实验四 1、实验项目:某系统详细设计 2、实验目的:细化前期设计的有关结果,做出软件的详细规格说明 3、实验内容:详细设计(也叫过程设计)是软件设计的具体模块设计阶段,是 在作为软件开发前期设计的体系结构设计和总体设计的基础上进行的。目的是要细化前期设计的有关结果,做出软件的详细规格说明。要求具体地设计目标系统给个模块的实现过程。 实验五 1、实验项目:系统集成 2、实验目的:系统集成与总结 3、实验内容:综合考察前八次实验的内容,通盘考虑软件设计的整个过程,深 入理解软件体系结构的构建过程

交流调压实验报告

电力电子实验四-- 交流调压实验 姓名:肖珂 学号:09291218 班次:电气0907 指导老师:汤钰鹏 合作者:冷凝(09291174)

一、实验目的 熟悉单相交流调压电路的工作原理、分析在电阻负载和电阻电感负载时不同的输出电压和电流的波形及相控特性。加深理解交流调压电路在电阻电感负载时其相控角α应限制在θ≤α≤π的范围内 二、步骤内容 (1) 熟悉实验电路(包括主电路、触发控制电路)。 (2) 熟悉用TCA785集成触发电路芯片构成的集成触发器。 (3) 按实验电路要求接线,用示波器观察移相控制信号α的情况。 (4) 主电路接电阻负载(灯箱),用示波器观察不同α角时输出电压和晶闸管两端的电压波形,并用电压表测出输出电压的有效值。为使读数便利,可取α为30°、60°、90°、120°和150°各特殊角进行观察和分析。 (5) 主电路改接电阻电感负载(灯箱+电抗器),在不同控制角α和不同负载阻抗角θ情况下用示波器观察和记录负载电压和电流的波形。分别观察并画出当α>θ和α<θ情况下负载电压和电流的波形,指出电流临界连续的条件。 (6) 特别注意观察上述α<θ情况下出现较大的直流分量,此时L固定,加大R(减少亮灯个数)直至消除直流分量。

三、电路原理 1、单相交流调压电路 2、晶闸管触发电路 3、相控角发生电路

4、驱动隔离电路 5、DC电源电路 四、实验要求 (1) 估算实验电路负载参数(R、L等)。 (2) 电阻负载时,画出U-α曲线。(U为负载R上的电压有效值),并与理论计算值进行比较。 (3) 电阻电感负载时,画出在不同α值情况下负载电压和电流

实验3三相交流调压电路实验

实验3 三相交流调压电路实验 一、实验目的 (1) 了解三相交流调压触发电路的工作原理。 (2) 加深理解三相交流调压电路的工作原理。 (3) 了解三相交流调压电路带不同负载时的工作特性。 二、实验所需挂件及附件 三、实验线路及原理 交流调压器应采用宽脉冲或双窄脉冲进行触发。实验装置中使用双窄脉冲。实验线路如图3-1所示。

图中晶闸管均在DJK02上,用其正桥,将D42三相可调电阻接成三相负载,其所用的交流表均在DJK01控制屏的面板上。 四、实验内容 (1)三相交流调压器触发电路的调试。 (2)三相交流调压电路带电阻性负载。 (3)三相交流调压电路带电阻电感性负载(选做)。 图3-1三相交流调压实验线路图 五、预习要求 (1)阅读电力电子技术教材中有关交流调压的内容,掌握三相交流调压的工作原理。 (2)如何使三相可控整流的触发电路用于三相交流调压电路。 六、实验方法 (1)DJK02和DJK02-1上的“触发电路”调试

①打开DJK01总电源开关,操作“电源控制屏”上的“三相电网电压指示”开关,观察输入的三相电网电压是否平衡。 ②将DJK01“电源控制屏”上“调速电源选择开关”拨至“直流调速”侧。 ③用10芯的扁平电缆,将DJK02的“三相同步信号输出”端和DJK02-1“三相同步信号输入”端相连,打开DJK02-1电源开关,拨动“触发脉冲指示”钮子开关,使“窄”的发光管亮。 ④观察A、B、C三相的锯齿波,并调节A、B、C三相锯齿波斜率调节电位器(在各观测孔左侧),使三相锯齿波斜率尽可能一致。 ⑤将DJK06上的“给定”输出U g直接与DJK02-1上的移相控制电压U ct 相接,将给定开关S2拨到接地位置(即U ct=0),调节DJK02-1上的偏移电压电位器,用双踪示波器观察A相同步电压信号和“双脉冲观察孔”VT1的输出波形,使α=180°。 ⑥适当增加给定U g的正电压输出,观测DJK02-1上“脉冲观察孔”的波形,此时应观测到单窄脉冲和双窄脉冲。 ⑦将DJK02-1面板上的U 端接地,用20芯的扁平电缆,将DJK02-1的 lf “正桥触发脉冲输出”端和DJK02“正桥触发脉冲输入”端相连,并将DJK02“正桥触发脉冲”的六个开关拨至“通”,观察正桥VT1~VT6晶闸管门极和阴极之间的触发脉冲是否正常。 (2)三相交流调压器带电阻性负载 使用正桥晶闸管VT1~VT6,按图3-21连成三相交流调压主电路,其触发脉冲己通过内部连线接好,只要将正桥脉冲的6个开关拨至“接通”,“U lf”端接地即可。接上三相平衡电阻负载,接通电源,用示波器观察并记录α=30°、60°、90°、120°、150°时的输出电压波形,并记录相应的输出电压有效值,填入下表:

体系结构windlx流水线实验报告

实验一基本实验----by 王琳PB07210432 1. 实验目的: 1)熟悉计算机流水线基本概念 2)了解DLX基本流水线的各段的功能 3)了解各种不同指令在流水线中的实际流动情况 4)对流水线做性能分析 5)了解影响流水线效率的因素——数据相关、结构相关、控制相关,了解相关的种类 6)了解解决数据相关的方法 2. 实验平台:WinDLX仿真器 WinDLX简介: ●是一个图形化、交互式的DLX流水线仿真器。 ●可以装入DLX汇编语言程序,然后单步,设断点或是连续执行该程序. ●CPU的寄存器,流水线,I/O和存储器都可以用图形表示出来 ●提供了对流水线操作的统计功能. ●可以装载文件名为*.s的文件. ●要求的硬件平台是IBM-PC兼容机. ●WinDLX是一个Windows应用程序,运行DOS3.3以上和Windows3.0以上的操作系统. ●WinDLX软件包中带有说明文件及教程,可以供使用者进一步了解仿真器的使用方法和 DLX处理器的原理.大家再进行实验前应该仔细阅读这些文档. 3. 实验内容: 1)在仿真器上分别运行单条指令:Load指令、Store指令、分支指令、寄存器ALU指令、立即数ALU指令,记录它们在流水线中的执行情况 ●Lw: 观察此流水线时空图,可以发现:转移指令引起的延迟仅为1 clocks,另2 stalls 是trap指令引起的,这个执行结果似与不采用forwarding技术的前提相违,只能理解为对于无条件的转移指令,新的PC值在EX阶段即已被写入。 ●Sw:

●Beqz: 由此图可见,对于分支指令,总是用 not-taken的策略来处理,并且也认为新的 PC值也在EX阶段即已被写入,且cond 条件也在EX段被算出(这显然是一个极 不合理的假设,究竟为何分支指令的延迟 为1 stall有待进一步探究) ●寄存器ALU指令 ●立即数ALU指令 2)仿真器运行一段无相关的程序,记录它的执行情况,计算流水线的加速比、吞吐率与效率。下面是一段不相关的程序,一共6条指令 ADDI R5, R5, 1 SUBI R4, R4, 1 AND R3, R3, R3 XOR R7, R7, R7 ADDI R8, R8, 1 ADDI R9, R9, 1 在WinDLX中执行的结果如下:

斩控式交流调压电路实验报告

斩控式交流调压电路实验报告 交流调压的控制方式有三种:①整周波通断控制。整周波控制 调压——适用于负载热时间常数较大的电热控制系统。晶闸管导通 时间与关断时间之比,使交流开关在某几个周波连续导通,某几个 周波连续关断,如此反复循环地运行,其输出电压的波形如图1-1 所示。改变导通的周波数和控制周期的周波数之比即可改变输出电压。为了提高输出电压的分辨率,必须增加控制周期的周波数。为 了减少对周围通信设备的干扰,晶闸管在电源电压过零时开始导通。但它也存在一些缺点那就是:在负载容量很大时,开关的通断将引 起对电网的冲击,产生由控制周期决定的奇数次谐波,这些谐波引 起电网电压变化,造成对电网的污染。 图1-1周期控制的电压波形 ②相位控制。相位控制调压——利用控制触发滞后角α的方法, 控制输出电压。晶闸管承受正向电压开始到触发点之间的电角度称 为触发滞后角α。在有效移相范围内改变触发滞后角,即能改变输 出电压。有效移相范围随负载功率因数不同而不同,电阻性负载最

大,纯感性负载最小。图1-2是阻性负载时相控方式的交流调压电路 的输出电压波形。相控交流调压电路输出电压包含较多的谐波分量,当负载是电动机时,会使电动机产脉动转矩和附加谐波损耗。另外 它还会引起电源电压畸变。为减少对电源和负载的谐波影响,可在 电源侧和负载侧分别加滤波网 络。b5E2RGbCAP ③斩波控制。斩波控制调压——使开关在一个电源周期中多次通断,将输入电压切成几个小段,用改变段的宽度或开关通断的周期来调 节输出电压。斩控调压电路输出电压的质量较高,对电源的影响也较小。图1-2为斩波控制的交流调压电路的输出电压波形。 p1EanqFDPw 图1-2相位控制的电压输出波形 在斩波控制的交流调压电路中,为了在感性负载下提供续流通路, 除了串联的双向开关S1外,还须与负载并联一只双向开关S2。当 开关S1导通,S2关断时,输出电压等于输入电压;开关S1关断,S2导通时,输出电压为零。控制开关导通时间与关断时间之比即能

双闭环三相异步电机调压调速系统实验报告

“运动控制系统”专题实验 实验报告 电子与信息工程学院自动化科学与技术系

(5)可调电阻(NMCL—03) (6)电机导轨及测速发电机(或光电编码器) (7)三相线绕式异步电动机 (8)双踪示波器 (9)万用表 (10)直流发电机M03 四.实验原理 1.系统组成及原理 双闭环三相异步电动机调压调速系统的主电路为三相晶闸管交流电源及三相绕线式异步电动机(转子回路串电阻)。控制系统由电流调节器(ACR),速度调节器(ASR),电流变换器(FBC),速度变换器(FBS),触发器(GT),一组桥脉冲放大器等组成。其系统原理图如图6-1所示。 图6-1 整个调速系统采用了速度,电流两个反馈控制环。这里的速度环作用基本上与直流调速系统相同而电流环的作用则有所不同。在稳定运行情况下,电流环对电网振动仍有较大的抗扰作用,但在起动过程中电流环仅起限制最大电流的作用,不会出现最佳起动的恒流特性,也不可能是恒转矩起动。 异步电机调压调速系统结构简单,采用双闭环系统时静差率较小,且比较容易实现正,反转,反接和能耗制动。但在恒转矩负载下不能长时间低速运行,因低速运行时转差功率 电子与信息工程学院自动化科学与技术系

电子与信息工程学院自动化科学与技术系

电子与信息工程学院自动化科学与技术系

(2)空载电压为200V时 n/(r/min) 1281 1223 1184 1107 1045 I G/A 0.10 0.11 0.12 0.13 0.13 U G/V 182 179 176 166 157 M/(N·m) 0.2265 0.2458 0.2636 0.2814 0.2831 2.闭环系统静特性 n/(r/min) 1420 1415 1418 1415 1416 1412 电子与信息工程学院自动化科学与技术系

中南大学 计算机体系结构实验报告

计算机体系结构课程设计 学院:信息科学与工程学院 专业班级: 指导老师: 学号: 姓名:

目录 实验1 对指令操作码进行霍夫曼编码 (3) 一、实验目的 (3) 二、实验内容 (3) 三、设计思路 (4) 四、关键代码 (4) 五、实验截图 (5) 六、源代码 (5) 实验2 使用LRU 方法更新Cache (8) 一、实验目的 (8) 二、实验内容 (8) 三、设计思路 (9) 四、程序截图 (9) 五、实验代码 (9) 实验总结 (16) 参考文献 (16)

实验1 对指令操作码进行霍夫曼编码一、实验目的 了解和掌握指令编码的基本要求和基本原理 二、实验内容 1. 使用编程工具编写一个程序,对一组指令进行霍夫曼编码,并输出最后的编码结果以及对指令码的长度进行评价。与扩展操作码和等长编码进行比较。 2. 问题描述以及问题分析 举例说明此问题,例如: 下表所示: 对此组指令进行 HUFFMAN 编码正如下图所示: 最后得到的HUFFMAN 编码如下表所示:

最短编码长度为: H=0.45*1+0.30*2+0.15*3+0.05*4+0.03*5+0.01*6+0.01*6=-1.95. 要对指令的操作码进行 HUFFMAN 编码,只要根据指令的各类操作码的出现概率构造HUFFMAN 树再进行 HUFFAM 编码。此过程的难点构造 HUFFMAN 树,进行 HUFFAM 编 码只要对你所生成的 HUFFMAN 树进行中序遍历即可完成编码工作。 三、设计思路 观察上图,不难看出构造 HUFFMAN 树所要做的工作:1、先对各指令操作码的出现概率进行排序,构造一个有序链表。2、再取出两个最小的概率节点相加,生成一个生的节点加入到链表中,同时从两表中删除此两个节点。3、在对链表进行排序,链表是否只有一个节点,是则 HUFFAN 树构造完毕,否则继续做 2 的操作。为此设计一个工作链表(链表的元素时类,此类的功能相当结构。)、HUFFMAN 树节点、HUFFMAN 编码表节点。 四、关键代码 哈夫曼树重点在于如何排列权值大小不同的结点的顺序 private int leafNum; //叶子结点个数 private HaffmanNode[] hnodes; //哈夫曼树的结点数组 public HaffManCode(double[] weight) //构造指定权值集合的哈夫曼树 { int n = weight.length; //n个叶子结点 this.leafNum = n; this.hnodes = new HaffmanNode[2*n-1]; //n个叶子结点的哈夫曼树共有2n-1个结点 for(int i=0; i

实验三 单相交流调压电路实验

北京信息科技大学 电力电子技术实验报告 实验项目:单相交流调压电路实验 学院:自动化 专业:自动化(信息与控制系统) 姓名/学号:贾鑫玉/2012010541 班级:自控1205班 指导老师:白雪峰 学期:2014-2015学年第一学期

实验三单相交流调压电路实验 一.实验目的 1.加深理解单相交流调压电路的工作原理。 2.加深理解交流调压感性负载时对移相范围要求。 二.实验内容 1.单相交流调压器带电阻性负载。 2.单相交流调压器带电阻—电感性负载。 三.实验线路及原理 本实验采用了锯齿波移相触发器。该触发器适用于双向晶闸管或两只反并联晶闸管电路的交流相位控制,具有控制方式简单的优点。 晶闸管交流调压器的主电路由两只反向晶闸管组成。 四.实验设备及仪器 1.教学实验台主控制屏 2.NMCL—33组件 3.NMEL—03组件 4.NMCL-05(A)组件或NMCL—36组件 5.二踪示波器 6.万用表 五.注意事项 在电阻电感负载时,当α

0308软件体系结构实验报告

河南工业大学实验报告 (2015~2016学年-第2学期) 课程名称:软件体系结构课程编号:51610192地点:6313/6316/6308/6320 一、实验目的: 验证C/S风格的工作机制。 二、实验内容: 针对某个应用系统,选用C/S风格作为这个系统的软件体系结构风格。熟悉C/S风格的工作机制,对所考察的系统进行C/S风格客户端软件体系结构设计的验证。(针对不同的特定应用系统具体表述)。 三.编程环境 Windows 7 Visual Studio | Dev-C++ Eclipse 四.实验代码 1.画棋盘 // 画横线 for (int i = 0; i <= ROWS; i++) { g.drawLine(MARGIN, MARGIN+ i * GRID_SPAN, MARGIN+ COLS* GRID_SPAN, MARGIN + i * GRID_SPAN); } for (int i = 0; i <= COLS; i++) {// 画竖线 g.drawLine(MARGIN + i * GRID_SPAN, MARGIN, MARGIN + i * GRID_SPAN, MARGIN + ROWS * GRID_SPAN); } 2.将鼠标点击转为网格索引 publicvoid mouseMoved(MouseEvent e) {

int x1 = (e.getX() - MARGIN + GRID_SPAN / 2) / GRID_SPAN; // 将鼠标点击的坐标位置转成网格索引 int y1 = (e.getY() - MARGIN + GRID_SPAN / 2) / GRID_SPAN; if (x1 < 0 || x1 >ROWS || y1 < 0 || y1 >COLS || gameOver || findChess(x1, y1)) setCursor(new Cursor(Cursor.DEFAULT_CURSOR)); // 设置成默认状态 else setCursor(new Cursor(Cursor.HAND_CURSOR)); } 3.增加棋子 // ********************** 增加黑色棋子 public Point[] BlackAddChess(int x, int y) { if (!isBlack) { String msg = String.format("黑子已经落子,轮到白子"); JOptionPane.showMessageDialog(this, msg); returnnull; } else return addChess(x, y); } // ********************** 增加白色棋子 public Point[] WhiteAddChess(int x, int y) { if (isBlack) { String msg = String.format("白子已经落子,轮到黑子"); JOptionPane.showMessageDialog(this, msg); returnnull; } else return addChess(x, y); } 4.悔棋 publicvoid goback() { if (chessCount == 0) return; chessList[chessCount - 1] = null; chessCount--; if (chessCount> 0) { xIndex = chessList[chessCount - 1].getX(); yIndex = chessList[chessCount - 1].getY(); } isBlack = !isBlack;

体系结构实验报告

北京邮电大学 实验报告 课程名称:高级计算机系统结构 学号:2015140454姓名:罗一皓

实验二指令流水线相关性分析 一.实验类别: 验证试验 二.实验目的: 通过使用WINDLX模拟器,对程序中的三种相关现象进行观察,并对使用专用通路,增加运算部件等技术对性能的影响进行考察,加深对流水线和RISC处理器的特点的理解。 三.实验学时: 4 四.实验人数: 1 五.实验设备环境: WinDLX模拟器可以装入DLX汇编语言程序,然后单步、设置断点或者连续执行该程序。CPU的寄存器、流水线、I/O和存储器都可以使用图形的方式表示出来。模拟器还提供了对流水线操作的统计功能。该模拟器对理解流水线和RISC处理器的特点很有帮助。 六.实验原理: 指令流水线中主要有结构相关、数据相关、控制相关。相关影响流水线性能。 结构相关:当指令在重叠执行过程中,硬件资源满足不了指令重叠执行的要求,发生资源冲突时,将产生“结构相关”。 数据相关:当一条指令需要用到前面指令的执行结果,而这些指令均在流水线中重叠执行时,就可能引起“数据相关”。 控制相关:由条件指令引起的相关。 七.实验内容和要求: 使用WinDLX模拟器,对求阶乘程序Fact.s做分析 八.实验步骤: (1)观察程序中出现的数据/控制/结构相关。指出程序中出现上述现象的指令组合。 数据相关: 在第24个周期时,在Clock Cycle Diagram 中有橙黄色的R-Stall,

点开之后,我们发现有 相关指令组合: lbu r3,0x0(r2) seqi r5,r3,0xa 控制相关: 在第4个时钟周期中,第一条命令正在MEM段,在第二条命令在intEXcellent 段,第四条命令在IF段。而第三条命令指示为“aborted”。 其原因是:在第二条命令(jal)是无条件分支指令,但只有在第三个时钟周期,jal指令被译码后才知道,这时,下一条命令movi2fp已经取出,但须执行的下一条命令在另一个地址处,因而,movi2fp的执行应被取消,在流水线中留下气泡。此处发生了控制相关。 相关的指令组合:

电力电子实验指导书完全版

电力电子技术实验指导书 目录 实验一单相半波可控整流电路实验 (1) 实验二三相桥式全控整流电路实验 (4) 实验三单相交流调压电路实验 (7) 实验四三相交流调压电路实验 (9) 实验装置及控制组件介绍 (11)

实验一单相半波可控整流电路实验 一、实验目的 1.熟悉单结晶体管触发电路的工作原理及各元件的作用; 2.对单相半波可控整流电路在电阻负载及电阻电感负载时的工作做全面分析; 3.了解续流二极管的作用; 二、实验线路及原理 熟悉单结晶体管触发电路的工作原理及线路图,了解各点波形形状。将单结晶体管触发电路的输出端“G”和“K”端接至晶闸管的门极和阴极,即构成如图1-1所示的实验线路。 图1-1 单结晶体管触发的单相半波可控整流电路 三、实验内容 1.单结晶体管触发电路的调试; 2.单结晶体管触发电路各点电压波形的观察; 3.单相半波整流电路带电阻性负载时Ud/U2=f(α)特性的测定; 4.单相半波整流电路带电阻电感性负载时续流二极管作用的观察; 四、实验设备 1.电力电子实验台 2.RTDL09实验箱 3.RTDL08实验箱 4.RTDL11实验箱 5.RTDJ37实验箱 6.示波器; 7.万用表; 五、预习要求 1.了解单结晶体管触发电路的工作原理,熟悉RTDL09实验箱; 2.复习单相半波可控整流电路的有关内容,掌握在接纯阻性负载和阻感性负载时,

电路各部分的电压和电流波形; 3.掌握单相半波可控整流电路接不同负载时Ud、Id的计算方法。 六、思考题 1.单相桥式半波可控整流电路接阻感性负载时会出现什么现象?如何解决? 七、实验方法 1.单相半波可控整流电路接纯阻性负载 调试触发电路正常后,合上电源,用示波器观察负载电压Ud、晶闸管VT两端电压波形U VT,调节电位器RP1,观察α=30o、60o、90o、120o、150o、180o时的Ud、U VT 波形,并测定直流输出电压Ud和电源电压U2,记录于下表1-1中。 表1-1 2.单结晶体管触发电路的调试 RTDL09的电源由电源电压提供(下同),打开实验箱电源开关,按图1-1电路图接线,负载为RTDJ37实验箱,选择最大的电阻值,调节移相可变电位器RP1,用示波器观察单结晶体管触发电路的输出电压波形(即用于单相半波可控整流的触发脉冲)。 4.单相半波可控整流电路接电阻电感性负载 将负载改接成阻感性负载(由滑动变阻器Rd与平波电抗器串联而成,RTDL08实验箱提供电感)。不接续流二极管VD,在不同阻抗角(改变Rd的电阻值)情况下,观察并记录α=30o、60o、90 o、120o时的Ud及U VT的波形。 接入续流二极管VD,重复上述实验,观察续流二极管的作用记录于下表1-2中。 计算公式:Ud=[0.45*U2*(1+cosα)]/2 表1-2

相关主题
文本预览
相关文档 最新文档