文档库 最新最全的文档下载
当前位置:文档库 › 实验二 选择结构程序设计 实验报告

实验二 选择结构程序设计 实验报告

实验二 选择结构程序设计 实验报告
实验二 选择结构程序设计 实验报告

实验二选择结构程序设计

一、实验目的和要求

1. 掌握关系表达式和逻辑表达式的使用。

2. 熟悉选择结构程序设计。

3. 熟练使用if语句进行程序设计。

4. 使用switch语句实现多分支选择结构。

二、实验设备

PC机 Visual C++

三、实验内容

(一)实验准备

1.从程序流程的角度来看,程序可以分为三种基本结构,即顺序结构、分支(选择)结构、循环结构。

2.If-else语句:

一般形式为:if(表达式)

语句1;

else

语句2;

该语句用于实现分支结构,根据表达式的值选择语句1或语句2中的一条执行。首先求解表达式,如果表达式的值为“真”,则执行语句1;如果表达式的值为“假”,则执行语句2.

2.switch语句

switch语句可以处理多分支选择问题,根据其中break语句的使用方法,一般分为三种情况。

(二)实验项目

1. 计算a+|b|

#include<>

int main(void)

{

int a,b,z;

printf("Please enter a,b:\n");

scanf("%d,%d",&a,&b);

if (b>=0){

b=b;

}

else{

b=-b;

}

z=a+b;

printf("%d+%d=%d\n",a,b,z);

return 0 ;

}

2 判断一个整数是否可以被3和5整除

#include<>

int main(void)

{

int a ;

printf("Please enter a:\n");

scanf("%d",&a);

if (a%3==0){

printf("a可以被3整除:\n");

}

else{

if (a%5==0){

printf("a可以被5整除:\n");

}

else {

printf("a不可以被5整除,也不可以被3整除:\n");

}

}

3.从键盘输入一个字符型数据,若输入一个数字字符('0'-'9'),则将其转换成相应的整数显示出来;若输入其它字符,则显示出错信息。

#include<>

int main(void)

{

int a ;

printf("please enter a char:\n");

scanf("%d",&a);

if((0<=a)&&(a<=9))

{

printf("This char is %d:\n",a);

}

else

{

printf("这个字符不是个整数:\n");

}

return 0 ;

}

4.编写一个程序,其功能为:从键盘输入三个数x、y、z,判断x+y=z是否成立,若成立输出“x+y=z”的信息,否则输出“x+y!=z”的信息。

#include<>

int main(void)

{

int x,y,z;

printf ("请输入x,y,z:\n");

scanf ("%d,%d,%d",&x,&y,&z);

if (x+y==z)

{

printf ("x+y=z\n");

}

else

{

printf ("x+y!=z\n");

}

return 0;

}

5.编写一个程序,其功能为:输入三个整数,输出最大数和最小数。#include<>

int main(void)

{

int a,b,c,x,y;

printf ("请输入三个数字:\n");

scanf ("%d,%d,%d",&a,&b,&c);

x=0;

if (a>b)

{

x=a;

if (x>c)

{

x=x;

}

else

{

x=c;

}

}

else

{

x=b;

if(x>c)

{

x=x;

}

else

{

x=c;

}

}

y=0;

if (a

{

y=a;

if (y

{

y=y;

}

else

{

y=c;

}

}

else

{

y=a;

if(y>c)

{

y=c;

}

else

{

y=y;

}

}

printf ("最大数是%d,最小值是%d\n",x,y);

return 0;

}

6.如下两个线性方程组的两个未知数为x1和x2:

ax1+bx2=m

cx1+dx2=n

该方程的唯一解为(ad-cb不等于零时):

请编写一个程序,读取a、b、c、d的值,计算x1和x2的值。如果ad-cd等于零,应给出适当的提示信息。

#include<>

int main(void)

{

int a,b,c,d,m,n,x1,x2;

printf("请输入方程组a,b,c,d,m,n\n");

scanf("%d,%d,%d,%d,%d,%d",&a,&b,&c,&d,&m,&n);

if(a*d-c*b==0)

{

printf("此方程组无解\n");

}

else

{

x1=(m*d-b*n)/(a*d-c*b);

x2=(n*a-m*c)/(a*d-b*c);

printf("此方程组的解为%d和%d\n",x1,x2);

}

return 0;

}

7.某产品生产成本c=c1+mc2,其中c1为固定成本,c2为单位产品可变成本。当生产数量m<10000时,c1=20000元,c2=10元;当生产数量m≥10000时,c1=40000元,c2=5元;编写一个程序,其功能为:分别计算出生产数量为6000以及25000时,总生产成本及单位生产成本。

#include<>

int main(void)

{

int c,c1,c2,m;

printf("请输入生产数量m:\n");

scanf("%d",&m);

if (m<10000)

{

c1=20000;

c2=10;

}

else

{

c1=40000;

c2=5;

}

c=c1+m*c2;

printf("生产成本为%d\n",c);

return 0;

}

8.编写一个程序,计算下列函数:

y= x x<1

2x-1 1≤x<10 3x-11 X≥10

#include<>

int main(void)

{

int x,y;

printf ("Plesse input a x :\n");

scanf ("%d",&x);

if (x<1)

{y=x;}

else

{

if(x>=10)

{y=3*x-11;

}

else

{y=2*x-1;

}

}

printf ("y=%d\n",y);

return 0;

}

9.编写一个程序,其功能为:从键盘输入一个字符,判别该字符的类别,并输出向相应信息。

#include<>

int main(void)

{

char i;

scanf("%c",&i);

if (i<32)

{printf ("此字符为控制字符\n");}

else

{

if((i>='0')&&(i<='9'))

{printf ("此字符为数字字符\n");}

else

{

if((i>='A')&&(i<='Z'))

{printf ("此字符为大写字母\n");}

else

{

if((i>='a')&&(i<='z'))

{printf ("此字符为小写字母\n");}

else

{

printf("此字符为其他字符\n");

}

}

}

}

return 0;

}

10.编写一个程序,其功能为:从键盘输入一元二次方程ax2+bx+c=0的各项系数a、b、c 的值,判断方程实数解的不同情况,分别求解方程,并输出(结果保留两位小数,如无实根给出相应的信息)。

应用如下规则:

(1)若a、b的值为零,则没有解;

(2)若a为零,只有一个实数解;

(3)若b2-4ac为负数,则没有实数解;若b2-4ac为正数,有两个实数解;若b2-4ac 为零,有两个相等的实数解。

#include <>

#include <>

int main(void)

{

float a,b,c;

double x1,x2;

printf ("Please input a,b,c\n");

scanf ("%f%f%f",&a,&b,&c);

if((a==0)&&(b==0))

{printf ("此方程没有解\n");}

else

{

if(a==0)

{

printf("此方程有一个实根\n");}

else

{if((b*b-4*a*c)<0)

{printf ("此方程无实根\n");}

else

{

if((b*b-4*a*c)==0)

{x1=((-b)/(2*a));

printf("此方程有两个相等实根: x1=x2=%lf\n",x1);

}

else

{x1=(-b+(sqrt(b*b-4*a*c)))/(2*a);

x2=(-b-(sqrt(b*b-4*a*c)))/(2*a);

printf("此方程有两个实根: x1=%lf x2=%lf\n",x1,x2);

}

}

}

}

return 0;

}

11.编写程序,输入三角形三边 a、b、c,判断a、b、c能否构成三角形,若不能则输出相应的信息,若能则判断组成的是等腰、等边、直角还是一般三角形。

#include<>

int main(void)

{

int a,b,c;

printf("piease input a,b,c:\n");

scanf("%d,%d,%d",&a,&b,&c);

if((a+b>c)&&(a+c>b)&&(b+c>a))

{

if(a==b&&b==c&&a==c)

{printf("能构成等边三角形\n");

}

else

{

if(a==b||b==c||a==c)

{printf("能构成等腰三角形\n");

}

else

{

if(a*a==b*b+c*c||b*b==a*a+c*c||c*c==a*a+b*b)

{printf("能构成直角三角形\n");

}

else

{printf("能构成一般三角形\n");

}

}

}

}

else

{printf("不能构成三角形\n");

}

return 0;

}

12.某个电力公司对其用户的收费规定如下:

用电数量收费标准

0~200 x*元

201~400 100+(x-200)*元

401~600 230+(x-400)*元

601以上 390+(x-600)*元

编写程序,对于一个输入的用电数量,计算用户的缴费额。

#include<>

int main(void)

{

double x,y;

printf("piease input x:\n");

scanf("%lf",&x);

if(x<0)

{printf("输入的数据有误!\n");}

else

{

if(x>=0&&x<=200)

{y=x*;

}

else

{

if(x>=201&&x<=400)

{y=100+(x-200)*;

}

else

{

if(x>=401&&x<=600)

{y=230+(x-400)*;

}

else

{y=390+(x-600)*;

}

}

printf("y=%lf\n",y); }

}

return 0;

}

13某个服装展示厅对所卖商品打折规定如下:

------------------------------------------------------------ 购买总额折扣

-------------------------------------------

机加工产品手工产品

0~100 - 5%

101~200 5% %

201~300 % %

大于300 % %

-------------------------------------------------------------- 编写程序输入购买总额,计算并输顾客实际应付的货款。

#include ""

int main(void)

{

double x,y;

int lb;

printf("请输入顾客购买总额x:\n");

scanf("%lf",&x);

printf("请输入顾客购买类别lb:\n");

scanf("%d",&lb);

if(x<0)

printf("输入购买总额数据有误!");

else

{

if(x>=0&&x<=100)

{

if(lb==0)

y=x;

else if(lb==1)

y=x*;

else

printf("输入购买类别数据有误!");

}

else if(x>=101&&x<=200)

{

if(lb==0)

y=x*;

else if(lb==1)

y=x*;

else

printf("输入购买类别数据有误!");

}

else if(x>=201&&x<=300)

{

if(lb==0)

y=x*;

else if(lb==1)

y=x*;

else

printf("输入购买类别数据有误!");

}

else

{

if(lb==0)

y=x*;

else if(lb==1)

y=x*;

else

printf("输入购买类别数据有误!");

}

printf("x=%lf y=%lf\n",x,y);

}

return 0;

}

14编程在屏幕上显示一张如下所示的时间表:

*******Time*******

1morning

2afternoon

3night

Please enter your choice:

根据用户输入的时间序号显示相应的问候信息,选择1时显示“Good morning”, 选择2时显示“Good afternoon”, 选择3时显示“Good night”,对于其他选择显示“Selection

error!”。

#include<>

int main(void)

{

int xh;

printf("\n\n*******Time*******\n");

printf("1 morning \n");

printf("2 afternoon \n");

printf("3 night \n");

printf("\n\n请输入您的选择(1、2、3):");

scanf("%d",&xh);

switch(xh)

{

case 1: printf("\nGood morning\n");break;

case 2: printf("\nGood atfernoon\n");break;

case 3: printf("\nGood night\n");break;

default: printf("\nSelection error!\n");break;

}

return 0;

}

15编程设计一个简单的计算器程序,要求根据用户从键盘输入的表达式:操作数1 运算符op 操作数2

计算表达式的值,指定的运算符为加(+)、减(-)、乘(*)、除(/)

#include<>

int main(void)

{

float x,y,z;

char op;

printf(“请输入表达式:”);

scanf(“%f,%c,%f”,&x,&op,&y);

if (op==‘+’)

z=x+y;

if (op==‘-’)

z=x-y;

if(op==‘*’)

z=x*y;

if (op==‘/’)

{if (y!=0) z=x/y;

else printf(“除数为0”);}

printf(“%f%c%f=%f\n”,x,op,y,z);

}

#include <>

void main()

{ float x,y,z;

char op;

printf(“请输入表达式:”);

scanf(“%f,%c,%f”,&x,&op,&y);

switch(op)

{

case ‘+’: z=x+y;

case ‘-’: z=x-y;

case ‘*’: z=x*y;

case ‘/’: {if (y!=0) z=x/y;

else printf(“除数为0”);}

}

printf(“%f%c%f=%f\n”,x,op,y,z);

return 0;

}

16输入某学生的成绩,经处理后给出学生的等级,等级分类如下: 90分以上(包括90): A

80至90分(包括80):B

70至80分(包括70):C

60至70分(包括60):D

60分以下: E

方法一:(用if语句的嵌套)

##include<>

int main(void)

{

float score;

printf("请输入成绩:");

scanf("%f",&score);

if(score>=0&&score<=100)

if(score>=90)

printf("%f A",score);

else if(score>=80)

printf("%f B",score);

else if(score>=70)

printf("%f C",score);

else if(score>=60)

printf("%f D",score);

else printf("%f E",score);

else printf("成绩输入有误!");

return 0;

}

方法二:用switch语句

#include<>

int main(void)

{

float score;

int p;

printf("请输入成绩:");

scanf("%f",&score);

p=(int)(score/10);

if(score>=0&&score<=100)

switch(p)

{

case 10:

case 9: printf("%f A",score);break;

case 8: printf("%f B",score);break;

case 7: printf("%f C",score);break;

case 6: printf("%f D",score);break;

default: printf("%f E",score);

}

else printf("成绩输入有误!");

return 0;

}

四、实验小结

通过本次实验我进一步熟悉了C语言操作环境,学习了两种条件语句,弄清了语句格式和使用方法。学会了分别使用使用if嵌套语句和switch语句实现功能,其中在使用if嵌套时要注意分清层次,明白else所对应的应当是离得最近的if语句,防止发生逻辑错误。条件判断语句可以结合逻辑运算符更好得实现。

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

实验二结构相关 一、实验目得: 通过本实验,加深对结构相关得理解,了解结构相关对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 ment !! 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文件,进行单步运行。经过分析,此程序一 次循环中共有五次结构相关。(Rstall 数据相关Stall 结构相关) 1)第一个结构相关:addd f2,,f0,f2 由于前面得数据相关,导致上一条指令addd f0,f0,f4暂停在ID阶段,所以下一条指令addd f2,,f0,f2发生结构相关,导致相关得部件:译码部件。

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

【精品实验报告】软件体系结构设计模式实验报告软件体系结构 设计模式实验报告 学生姓名: 所在学院: 学生学号: 学生班级: 指导老师: 完成日期: 一、实验目的 熟练使用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

建筑模型制作实验报告

建筑模型制作实验报告 Company Document number:WUUT-WUUY-WBBGB-BWYTT-1982GT

学生实验报告 (理工类) 课程名称:规划设计模型制作专业班级:城乡规划 学生学号:学生姓名: 所属院部:建筑工程学院指导教师:刘琰 2014——2015学年第 2 学期 金陵科技学院教务处制

实验项目名称:江宁校区总体规划模型制作实验学时:24学时 同组学生姓名: 实验地点:实验楼B203 实验日期:实验成绩: 批改教师:刘琰批改时间: 一、实验目的和要求 目的:1、学习利用规划模型分析总平面的布局 2、学习规划模型的制作方法 要求:在读懂图纸的基础上,通过对空间、功能、结构、环境、流线、体量、外观、平面到剖面、几何关系、基本形状、逻辑关系等方面进行总体分析, 理清建筑平面和空间的组成关系,理清建筑与道路的关系,最后完成规划 模型的制作。 二、实验仪器和设备 1.测绘工具 三棱尺(比例尺) 、直尺、三角板、弯尺 (角尺) 、圆规、游标卡尺、蛇尺等。 2.剪裁、切割工具 勾刀、刻刀、裁纸刀、角度刀(45o) 、切圆刀、剪刀、手锯、钢锯、电磨机、电热切割器等。 3.打磨喷绘工具 砂纸、锉刀、什锦锉、木工刨、台式砂轮机。 4.粘合剂 三、实验过程

第一次模型制作实验课在工科楼模型教室,之前老师在多媒体教室跟我们讲解了模型制作的工具,材料等基本知识,发任务书。 这一次在模型教室老师带我们参观了一下往届做的模型,看到学姐学长的作品时,感觉有点震惊,稍微有点不自信,但是在我们仔细参观与讨论我们自己组用的材料与制作流程后,我立马又斗志昂扬了起来。参观完往届作品后,我们确定小组成员,小组开始确定制作模型所需的材料,大致分配了任务,男生做模型,女生做细节部分。我们组的组员经过积极热烈的讨论,初步确定了地形,草,建筑的材料,地形采用灰色纸板,草为普通草皮,多数建筑为PVC板为骨架,少部分为泡沫,同时大概制定了制作流程与方案。 方案确定后,我们小组成员在第二天就全部出发去购买制作模型所需的材料,我们按着讨论后的清单购买,包括灰色的卡纸、厚泡沫板、薄木板、PVC板、树粉、树干,草皮,胶水等一系列材料。 感悟:在此次购买中,我们小组有着很激烈的讨论,虽然在昨天已确定好清单,但是到了店里发现我们考虑的还是不够周全。 第二次模型制作实验课我们通力合作,用木板做底将买来的厚泡沫板做第二层底,上面再铺一层厚的PVC板,层与层之间用双面胶与泡沫胶粘合。其实我们在黏板的事先并没想好用什么黏,我们是在仔细观察了其他的组用的粘合材料后经过比较后讨论决定的,这也算取长补短了。我们一边黏一边试试粘合的效果,感觉比较结实。然后用复写纸将打印好的cad 地形描到买好的灰色卡纸上,而我则负责将地形上的绿地剪出来,作为之后剪草皮的模板。这是一件费时费力的工作,因为老师给我们的学校地形

模型制作实验报告

模型制作实验报告 1、实验目的与要求 通过本次实验练习模型制作,熟悉建筑模型材料的种类、特性,学会使用钢尺、美工刀等模型制作工具,基本掌握模型的制作技法。为将来在箭镞设计课程中使用模型推敲方案打下基础。要求根据课程设计命题,结合自身设计概念制作模型,可以有一定的取舍,不能有大的错误,制作认真仔细,整体模型干净利落。最后完成得模型要求按照自己的设计方案,体块表现清楚,有自己的风格。 2、实验方案: 结合课程设计的进度,在一草方案后制作工作模型,用于推敲建筑环境、建筑体量、材料、色彩等方面要素,学习以制作模型的形式激发创作灵感、推进方案设计。在基本明确建筑设计方案后进行模型制作设计,选用卡纸、PVC板等作为主材,适用选用色纸、瓦楞纸、型材等作为辅材,利用钢尺、美工刀、模型胶等工具制作建筑模型呈现设计方案。 3、实验过程和数据处理: 听取了专业老师的意见后,我使用了pvc板(厚度为2cm)和kt板作为这次作业的模型主要材料。Pvc板作为主模型的材料,因为其比较结实,不容易被破坏,而且表面平滑,外观看起来十分规整。而kt板则作为模型底座的材料,在kt板上容易插入模型花和粘贴模型人,但是kt板不能与502胶水接触,其会被腐蚀。所以在制作模型时,对于底座的粘合,我使用的是u胶,而pvc板的粘合我会根据需要,使用u胶和502胶水。这次制作模型需要用到的工具中,有手术刀,ut刀,直尺、90度尺、切割板u胶、502胶水等。 考虑到这次制作的模型是塑料模型,因此所需用到的工具比较少。而这次制作模型的手法,鉴于我是大一新生,在经济和知识掌握程度的限制上,我是手工制作模型的。在制作模型时,有直接粘合、镶嵌粘合和穿插的步骤。在制作模型时,我曾经遇到因为粘合位置特殊的原因,很难把两块pvc板粘合在一起或者由于柱子太长,不能轻易与pvc板粘合的问题。一开始我是使用u胶粘合的,但后来发现,原来在一些地方,可以用502胶水作粘合剂,但是值得注意的是,在使用502胶水前,应该确认是否这样粘合,一旦粘合错了,分离工作会很难,而且强制分离会破坏pvc板。另外,在制作模型是,我会发现自己设计的建筑,有些地方做起模型来,会有比较大的难度,会花比较多的时间,于是自己会在考虑是否应该对原来的设计方案进行修改,而如何修改,这又是需要慢慢去思考的,因此,在做模型的时候会发现不少的对设计有用或使你感到困惑的东西。在数据处理方面,我认为做模型对数据的处理十分有用,因为当你把设计从二维转化为三维时,你会发现,你所定的数据不适合人体的模度,对于整个场地的迎合十分不适合。当然,在处理数据时,一些建筑规范是不能忽略的,你的数据可能是不可能实现的东西。因此,在数据处理是,要遵守人体的模度、整个场地的迎合和建筑规范来进行。另外,在处理数据时,我一般时先定大范围的数据,在处理小地方的数据的。可能两方面一起处理会比较好,这我会更加留意这一点。而在数据的整理时,对于复杂的数据,我通常是结合场地的情况稍作调整,当你做出一个模型时,1:20或更大的比例模型用于观察这建筑是否适合人的模度,1:100或更小的比例模型用于观察这建筑是否迎合整理环境的。我制作了1:100和1:50的模型进行分析,最后定出了我的模型方案。

体系结构实验报告

中南大学软件学院 软件体系结构 设计模式实验报告 学生姓名:宋昂 所在学院:软件学院 学生学号: 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),绘制类图并修改代码,注意增加新日志记录方式过程中原有代码的变化。

选择结构程序设计

第四章择路而行---选择结构程序设计 第一节路口诀择----条件语句 一、教学目标 1、掌握选择结构程序中常用的Qbasic语句。 2、掌握选择结构程序设计方法。 3、能利用选择结构程序设计解决简单的实际问题。 二、教学重点: 1.选择结构的语句及功能 2.选择结构中程序设计方法。 三、教学方法:讲授法,对比法,分组讨论法。 四、教学时间:2课时 五、教学教程: (一)引入新课:前面我们学习了顺序结构程序设计,利用顺序结构只能设计一些较简单的程序,如果要处理复杂的问题,就需要采用另外两种基本结构:选择结构和循环结构。选择结构,是一种常用的主要基本结构,是计算机科学用来描述自然界和社会生活中分支现象的重要手段。其特性是:无论分支多寡,必择其一;纵然分支众多,仅选其一。 (二)讲述新课 l 单行条件选择语句IF 1、单行结构条件语句IF…THEN…ELSE 格式:IF <条件> THEN <语句1> [ELSE <语句2>] 功能:最简单的条件选择语句,用来进行条件判断,使语句有条件的执行。 说明: 1)当<条件>为真(非零数)时,则执行<语句1>。 2)ELSE语句可以省略。 3)当<条件>为假(零)时,而且语句中有ELSE语句则执行<语句2>。 4)IF、THEN、ELSE必须在同一行上。 2、示例A、输入x的值,计算y的值。 REM 程序名为:eg1.bas INPUT “请输入x的值:”,x IF x>=0 THEN Y=1+X ELSE Y=1-2*X PRINT "Y=";Y END 例:求一元二次方程Ax2+Bx+C=0(A<>0)的实数根。 分析:写写出程序的流程图,参考流程图来写程序。 程序清单如下: INPUT A,B,C D=B*B-4*A*C IF D<0 THEN then X1=(-B+SQR(D))/(2*A) X2=(-B-SQR(D))/(2*A) PRINT “X1=”;X1, “X2=”;X2 ELSE PRINT “此方程无实根” END

工业设计-石膏模型制作实验报告

《模型制作》 实 验 报 告

实验名称:石膏模型制作 姓名学号 实验目的: 1、掌握石膏模型材料与调制方法 2、掌握石膏成型技法 实验材料、用具:石膏粉、水、水盆、夹板、C形钳、保鲜膜、胶合板 实验过程: 1、用夹板在胶合板上围成一个方形区域, 用C形钳对夹板进行固定,之后将鼠标模型放 置在围成的方形区域正中间。 2、将保鲜膜裁成一定大小,在鼠标木模 拍上水,把保鲜膜敷在鼠标木模上。 3、调制石膏浆,用小盆接适量的水,抓 一把熟石膏粉放进去,之后,边搅拌边添加熟石膏粉,两人配合,搅拌适当时,停止加料。 4、将和好的石膏浆倒入围好的方形区域 内,注意不要倒偏,可用手边倒边用手拨,石膏 浆超出夹板一部分,另外找一块胶合板-将石膏 浆表面刮平,待石膏浆有一定硬度后,将成型的 石膏模翻过来,并迅速取出鼠标模型。 5、打开夹子,撤掉夹板,修补制作好的 石膏阴模。修补完成后,放置在一处较平坦的 地方,待其晾干。 6、取出晾干的模子,在模型腔上覆上一 层保险模,和熟石膏粉,步骤跟之前做阴模时 一样。将和好的石膏浆拨进模型腔,把表面刮

平,挂掉多余的部分。 7、待石膏有一定温度时,将做好的鼠标石 膏模型取出,进行修补,用手沾水对多余部分进 行处理,将坑洼处,用石膏料补平。 实验体会: 石膏模型的制作,过程不太繁琐,挺适合用 来做设计成品的初步表达,但考虑到石膏的固化特性,不能用来做太大的模型。 还有,在制作过程中,对石膏的基本特性及使用有所了解,知道在那一块儿该注意,比如:石膏浆不能和的太稀,太稀就要花大把的时间去等待其发干,这样就会费很多时间,并且不便于对石膏进行再处理。太稠也不行,干的快,还没倒完料,石膏浆就成干块了,干了后,木质的鼠标模型就不容易脱出。所以,调制石膏浆很重要,得把握好用谁的量。 在翻模与脱模的时候也很关键,动作要迅速,及时对模型进行修补和修饰,这样才能做出一件相当不错的石膏模型。

实验四-答案--选择结构程序设计讲课讲稿

实验四-答案--选择结构程序设计

实验四选择结构程序设计答案 实验时间:年月日【实验步骤】 一、程序调试练习 1、写出下列程序的运行结果: (1)ex4_1.c #include void main() { char ch; printf("input a character:"); ch=getchar(); if(ch>='A' && ch<='Z') ch=ch+32; printf("%c\n",ch); } 具体要求: ①从键盘上输入a,分析程序运行的结果。 ②从键盘上输入A,分析程序运行的结果。 ③从键盘上输入5,分析程序运行的结果。 程序运行结果: ①a ②a ③5 (2)ex4_2.c #include void main() { int x,y,z; printf("input x,y,z"); scanf("%d,%d,%d",&x,&y,&z); if(x

①从键盘上给x、y、z分别输入2,-1,2,分析程序运行的结果。 ②从键盘上给x、y、z分别输入3,5,2,分析程序运行的结果。 ③从键盘上给x、y、z分别输入-5,-3,2,分析程序运行的结果。 程序运行结果: ①z=2 ②z=3 ③z=0 (3)ex4_3.c #include main() { int x=1,a=0,b=0; switch(x) { case 0:b++; case 1:a++; case 2:a++;b++; } printf("a=%d,b=%d\n",a,b); } 程序运行结果: a=2,b=1 (4)ex4_4.c #include void main() { int x=1,y=0,a=0,b=0; switch(x) { case 1: switch(y) { case 0: a++; break; case 1: b++; break; } case 2: a++; b++; break; case 3: a++; b++;

《牙齿痕迹实验》实验报告(参考模型)(学校教学)

页脚* 1 《牙齿痕迹实验》实验报告 指导教师:王纬东 实验时间: 2015-06-06 制作人: 天气情况:晴 温度: 26摄氏度 湿度:18 实验器材与样品:红白大样膏,蜡纸,光学显微镜,纸杯,热水 实验名称 实验一、牙齿痕迹实验 实 验 目的 了解人牙排列规律,掌握牙齿宽度、牙弓形态与牙位的分析方法;掌握牙齿宽度、牙弓宽度、 牙弓深度及牙齿之间相对夹角的测量方法;掌握利用牙科打样膏制作牙齿痕迹样本的操作方法。 实 验 原理 恒牙列形成后,能在相当长的时期内保持稳定,这是牙齿痕迹检验、鉴定的基本条件;医用打样膏能够在加热的条件下被塑造成需要的形态,冷却即可定型,能够如实的反映牙齿的结构特征。 教 学方法 制作牙齿痕迹,观察和认识特征。 方 案 设 计 及 教 学 过 程 实验内容 (一) 制做牙齿痕迹样本 取出一块牙科打样膏,浸泡在装有70℃~80℃的热水的一次性纸杯中,待打样膏软化后立即取出,手动塑成与牙弓大小相近的形状,然后将打样膏置于口腔中,上、下颌正常咬合,待打样膏硬化后取出,置于装有冷水的一次性纸杯中冷却,待完全硬化定型后,即制备成了牙齿痕迹样本。 (二)牙齿痕迹测量 1.测量牙冠宽度 2.测量牙弓宽度与牙弓深度 3.描绘牙列曲线 (三)观察痕迹确定特征 观察牙齿痕迹样本,确定牙齿的排列规律;确定畸形、病变牙的数量、部位和种类;分析正常牙列或由畸形牙和病变牙构成的牙列特征的各自特点,分析特征的特定意义。分析牙齿痕迹的特征反映及特征的特定性,分析前牙痕迹在检验中的作用与意义。 (四)根据牙齿痕迹样本的测量数据、观察结果、分析意见写出实验报告。 注意事项 使用牙科打样膏制作牙模时,要控制咬合的力度,不可反复咬合,否则会破坏牙齿痕迹 实验作业 (一)要求每位学员个人独立操作,制做牙齿痕迹样本。 (二)保存好实验模型。 实验现象、数据与分析:牙冠宽度、单牙尺寸、牙弓宽度、牙弓深度、牙齿相对夹角等数据的分析,自己依据上面实验自我分析。

计算机系统结构实验报告

计算机系统结构实验报告 一.流水线中的相关 实验目的: 1. 熟练掌握WinDLX模拟器的操作和使用,熟悉DLX指令集结构及其特点; 2. 加深对计算机流水线基本概念的理解; 3. 进一步了解DLX基本流水线各段的功能以及基本操作; 4. 加深对数据相关、结构相关的理解,了解这两类相关对CPU性能的影响; 5. 了解解决数据相关的方法,掌握如何使用定向技术来减少数据相关带来的暂停。 实验平台: WinDLX模拟器 实验内容和步骤: 1.用WinDLX模拟器执行下列三个程序: 求阶乘程序fact.s 求最大公倍数程序gcm.s 求素数程序prim.s 分别以步进、连续、设置断点的方式运行程序,观察程序在流水线中的执行情况,观察 CPU中寄存器和存储器的内容。熟练掌握WinDLX的操作和使用。 2. 用WinDLX运行程序structure_d.s,通过模拟找出存在资源相关的指令对以及导致资源相 关的部件;记录由资源相关引起的暂停时钟周期数,计算暂停时钟周期数占总执行周期数的 百分比;论述资源相关对CPU性能的影响,讨论解决资源相关的方法。 3. 在不采用定向技术的情况下(去掉Configuration菜单中Enable Forwarding选项前的勾选符),用WinDLX运行程序data_d.s。记录数据相关引起的暂停时钟周期数以及程序执行的 总时钟周期数,计算暂停时钟周期数占总执行周期数的百分比。 在采用定向技术的情况下(勾选Enable Forwarding),用WinDLX再次运行程序data_d.s。重复上述3中的工作,并计算采用定向技术后性能提高的倍数。 1. 求阶乘程序 用WinDLX模拟器执行求阶乘程序fact.s。这个程序说明浮点指令的使用。该程序从标准 输入读入一个整数,求其阶乘,然后将结果输出。 该程序中调用了input.s中的输入子程序,这个子程序用于读入正整数。 实验结果: 在载入fact.s和input.s之后,不设置任何断点运行。 a.不采用重新定向技术,我们得到的结果

C语言选择结构程序设计编程题.doc

实验2 选择结构程序设计 一.实验目的: 1.掌握选择控制语句的使用方法; 2.了解C程序语句的执行过程。 二.实验内容: 1.编写程序:输入一个整数,判断该数的奇偶性。(输出相应的标志even-偶数odd-奇数,请记住这两个单词)。 2.从键盘输入的正整数,判断是否能被5和7同时整除,若是,则输出Yes;否则输出No。 3.输入一个字符,如果是大写字母改变为小写字母;如果是小写字母,则把它变为大写字母;若是其它字符则不变。 4.编写程序,对于给定的一个百分比制成绩,输出相应的五分制成绩。设:90分以上为‘A’,80~89分为‘B’,70~79分为‘C’,60~69分为‘D’,60分以下为’E’(用if…else…与switch 语句两种方法实现)。 5. 企业发放的奖金根据利润提成。利润(i)低于或等于10万元时,奖金可提成10%;利润高于10万元,低于20万元时,低于10万元的部分按10%提成,高于10万元的部分,可提成7.5%;20万元到40万元之间时,高于20万元的部分,可提5%;40万元到60万元之间时,高于40万元的部分,可提成3%;60万元到100万元之间时,高于60万元的部分,可提成1.5%;高于100万元时,超过100万元的部分按1%提成,从键盘输入当月利润i,求发放奖金总数。 6. 输入某年某月某日,判断这一天是这一年的第几天。 7. 输入一个字符,请判断是字母、数字还是特殊字符。 8. 身高预测: 男性成人身高=(父亲身高+母亲身高)*0.54cm 女性成人身高=(父亲身高*0.923+母亲身高)/2cm 如果喜爱体育锻炼,那么身高可增加2%;如果有良好的饮食习惯,可增加身高1.5%。键盘输入性别、父母身高、是否爱好体育锻炼、是否有良好的饮食习惯,利用给定身高预测方法对你的身高进行预测。 9. 要求用switch语句编程设计一个简单的计算器程序。要求根据用户从键盘输入的表达式。 操作数1 运算符op 操作数2 计算表达式的值。指定的算术运算符为加(+)、减(-)、乘(*)、除(/)。 在此基础上,增加如下要求: (1)如果要求程序能进行浮点数运算,程序应该如何修改?如何比较实型变量和常数0是否相等? (2)如果要求输入的算术表达式中的操作数和运算符之间可以加入任意多个空格符,那么程序如何修改? (3)如果要求连续多次算术运算,每次运算结束后,程序都给出提示: Do you want to continue(Y/N y/n)? 如果用户输入Y或y时,程序继续进行其它算术运算,否则程序才退出运行状态。那么程序如何进行修改?

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

实验二结构相关 一、实验目的: 通过本实验,加深对结构相关的理解,了解结构相关对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.逻辑运算符两侧运算对象的数据类型( ) A.只能是0和1 B.只能是0或非0正数 C.只能是整型或字符型数据 D.可以是任何类型的数据 2.下列运算符中优先级最高的是( ) A.< B.+ C.&& D.!= 3.能正确表示“当x的取值在[1,10]和[200,210]范围内为真,否则为假"的表达式是( ) A.(x>=1)&&(x<=10)&&(x>=200)&&(x<=210) B.(x>=1)||(x<=10)||(x>=200)||(x<=210) C.(x>=1)&&(x<=10)||(x>=200)&&(x<=210) D.(x>=1)||(x<=10)&&(x>=200)||(x<=210)

4.表示图中坐标轴上阴影部分的正确表达式是( ) A.(x<=a)&&(x>=b)&&(x<=c) B.(x<=a)||(b<=x<=c) C.(x<=a)||(x>=b)&&(x<=c) D.(x<=a)&&(b<=x<=c 5.判断char型量ch是否为大写字母的正确表达式是() A.‘A’<=ch<=‘Z’ B.(ch>=‘A’)&(ch<=‘Z’) C.(ch>=‘A’)&&(ch<=‘Z’) D.(‘A’<=ch)AND(‘Z’>=ch) 6.设x,y,z都是int型变量,且x=3,y=4,z=5,则下面表达式中值为0的是 () A.‘x’&&‘y’ B.x<=y C.x||y+z&&!y D.!(x

7.已知x=43,ch=‘A’,y=0;则表达式(x>=y&&ch<‘B’&&!y)的值是() A.0 B.语法错误 C.1 D.“假” 8.若希望当A的值为奇数时,表达式的值为“真”,A的值为偶数时,表达式的值为“假”,则以下不能满足要求的表达式是() A.A%2==1 B.!(A%2==0) C.!(A%2) D.A%2 9.设有:int a=1,b=2,c=3,d=4,m=2,n=2;执行(m=a>b)&&(n=c>d)后的值为() A.1 B.2 C.3 D.4 10.下列运算符中优先级最低的是( )优先级最高的是( ) A.? B.&& C.+ D.!=

CPU与简单模型机设计实验实验报告

实验报告 实验名称:CPU 与简单模型机设计实验日期:2015.11班级:学号:姓名: 一、实验目的: (1) 掌握一个简单CPU 的组成原理。 (2) 在掌握部件单元电路的基础上,进一步将其构造一台基本模型计算机。 (3) 为其定义五条机器指令,编写相应的微程序,并上机调试掌握整机概念。 二、实验内容: 本实验要实现一个简单的CPU,并且在此CPU 的基础上,继续构建一个简单的模型计算机。CPU 由运算器(ALU)、微程序控制器(MC)、通用寄存器(R0),指令寄存器(IR)、程序计数器(PC)和地址寄存器(AR)组成,如图2-1-1 所示。这个CPU 在写入相应的微指令后,就具备了执行机器指令的功能,但是机器指令一般存放在主存当中,CPU 必须和主存挂接后,才有实际的意义,所以还需要在该CPU 的基础上增加一个主存和基本的输入输出部件,以构成一个简单的模型计算机。

图1-4-1 基本CPU 构成原理图 除了程序计数器(PC),其余部件在前面的实验中都已用到,在此不再讨论。系统的程序计数器(PC)由两片74LS161 和一片74LS245 构成,其原理如图1-4-2 所示。PC_B 为三态门的输出使能端,CLR 连接至CON 单元的总清端CLR,按下CLR 按钮,将使PC 清零,LDPC 和T2 相与后作为计数器的计数时钟,当LOAD 为低时,计数时钟到来后将CPU 内总线上的数据打入PC。 图1-4-2 程序计数器(PC)原理图 本模型机和前面微程序控制器实验相比,新增加一条跳转指令JMP,共有五条指令:IN(输入)、ADD(二进制加法)、OUT(输出)、

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

福建农林大学计算机与信息学院 实验报告 课程名称:软件设计与体系结构 姓名:陈宇翔 系:软件工程系 专业:软件工程 年级: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] 产生的图形如下图:

产品的模型制作实验报告

模型制作 课程考核报告书题目:产品的模型制作

目录 实验一泥模型制作技法 一、泥模塑造目的及要求 (6) 二、泥模塑造步骤及过程 (6) 三、制作所需工具 (6) 四、泥模塑造过程中注意的问题及制作体会 (6) 五、思考题 (7) 六、三视图、效果图 (8) 实验二石膏模型制作技法 石膏模型的翻制练习 一、石膏模具的设计与翻制的目的 (11) 二、石膏模型翻制的步骤及过程 (11) 三、制作所需工具 (11) 四、石膏模型翻制过程中注意的问题及制作体会 (11) 五、照片 (13) 石膏模型制作练习 一、制作所需工具 (14) 二、石膏模型制作的步骤及过程 (14) 三、石膏模型制作过程中注意的问题及制作体会 (14) 四、思考题 (14) 五、三视图、效果图、照片 (16) 实验三泡沫模型制作技法 一、泡沫塑料模型的特点 (19) 二、泡沫塑料模型制作的步骤及过程 (19) 三、制作所需工具 (19) 四、泡沫塑料模型制作过程中注意的问题及制作体会 (19) 五、思考题 (20) 六、三视图、效果图、照片 (21) 实验四塑料模型制作技法 一、塑料模型的特点 (25) 二、塑料模型制作的步骤及过程 (25) 三、制作所需工具 (25) 四、塑料模型制作过程中注意的问题及制作体会 (25) 五、思考题 (26) 六、三视图、效果图、照片 (27)

模型制作报告要求 一、泥模型制作技法 1.任选一产品设计方案,用泥作为材料,选用适当的比例进行制作模型1件,要求造型完整,工艺合理,尺寸精细,强调能据此翻制模具(为练习二做准备)。 2.将所制作的产品方案用三视和立体效果图表达出来。 幅面的设计说明(至少3—4页)。 设计说明内容要点包括以下方面: ⑴泥模塑造目的及要求; ⑵泥模塑造步骤及过程; ⑶制作所需工具等; ⑷泥模塑造过程中注意的问题及制作体会等。 ⑸思考题 ①塑造用的泥土的干湿软硬程度是如何判断的 ②用油泥作为塑造材料时,在冬季和夏季使用时应注意哪些问题

计算机体系结构 实验报告2 华东理工大学

实验名称多通路运算器和寄存器堆实验地点信息楼420 实验日期2012-12-7 一、实验目的 1.了解多通路的运算器与寄存器堆的组成结构。 2.掌握多通路的运算器与寄存器堆的工作原理及设计方法。 二、实验设备 PC 机一台, TD-CMX 实验系统一套。 三、实验原理 1.ALU® 单元的结构 ALU®单元由运算器和双端口寄存器堆构成,通过不同的控制信号SEL1、SEL0 产生不同结构的运算器。运算器内部含有三个独立运算部件,分别为算术、逻辑和移位运算部件,要处理的数据存于暂存器A 和暂存器B。 SEL0 和SEL1 用于选择运算器和寄存器堆的通路: (1)当SEL1=0、SEL0=0,ALU 的输出D7…D0、REG(右口)的输出OUT7…OUT0 和ALU与REG 的输入IN7…IN0 接到CPU 内总线上时,如图1-2-1 所示,寄存器堆只能从右口进行操作,相当于只有一组控制线的单端口寄存器堆,一般计算机组成原理实验涉及到的运算器和寄存器就是采用这种结构。 (2)当SEL1=1、SEL0=0,REG(右口)的输出OUT7…OUT0 和ALU 与REG(右口)的输入IN7…IN0 接到CPU 内总线上时,运算器和双端口寄存器堆的结构如图1-2-2 所示,寄存器堆由两组控制信号来分别进行控制,每组控制信号都可以相对独立的对寄存器堆进行读写操作,同时增加了执行专用通道A 总线,以利于提高指令执行的效率。

(3)当SEL1=1、SEL0=1,REG(右口)的输出OUT7…OUT0 和ALU 与REG(右口)的输入IN7…IN0 接到CPU 内总线上时,运算器和双端口寄存器堆的结构如图1-2-3 所示,在双通道双端口运算器和寄存器堆的基础上增加了暂存器旁路,把运算结果写回到寄存器堆的同时也可以写到暂存器A、暂存器B 中。由于在运算型指令中把运算的结果写到通用寄存器中的指令很多,占运算型指令的大多数,发生通用寄存器数据相关的概率相当高,因此,可以用硬件设置专用路径来解决这种通用寄存器数据相关问题。 上面介绍了运算器和寄存器堆的三种典型的数据通路图,在计算机组成原理这门课程中我们已经对运算器有了初步的了解,明白运算器的主要功能是完成算术和逻辑类运算。在系统结构这门课程中经过进一步的研究,还会了解到运算器与寄存器堆的结构对于计算机系统的设计有着重要的作用,对于计算机性能的优劣有着很大的影响。 2.ALU® 单元的应用 在了解运算器与寄存器堆结构的基础上,基于如图1-2-3 所示的双通道双端口运算器和双端口寄存器堆的结构可以设计一段程序:从IN 单元读入一个数据,存入R0;从IN 单元读入另一个数据,存于R1;将R0 和R1 相加,结果存于R0;将R0 和R1 相加,结果存于R3,同时打入暂存器A 中;再将R0 的值送OUT 单元显示。

系统结构实验报告一

《计算机系统结构课内实验》 实验报告 班级:计算机01 姓名:陈世阳 学号:10055008 日期:2013.5.10

一、实验目的及要求 1. 熟练掌握WinDLX模拟器的操作和使用,熟悉DLX指令集结构及其特点; 2. 加深对计算机流水线基本概念的理解; 3. 进一步了解DLX基本流水线各段的功能以及基本操作; 4. 加深对数据相关、结构相关的理解,了解这两类相关对CPU性能的影响; 5. 了解解决数据相关的方法,掌握如何使用定向技术来减少数据相关带来的暂停。 二、实验环境 WinDLX模拟器 三、实验内容 1.用WinDLX模拟器执行下列三个程序(任选一个): ●求阶乘程序fact.s ●求最大公倍数程序gcm.s ●求素数程序prim.s 分别以步进、连续、设置断点的方式运行程序,观察程序在流水线中的执行情况,观察CPU中寄存器和存储器的内容。熟练掌握WinDLX的操作和使用。 注意:fact.s中调用了input.s中的输入子程序。load程序时,要两个程序一起装入(都select后再点击load)。gcm.s也是如此。 2.用WinDLX运行程序structure_d.s,通过模拟: ●找出存在结构相关的指令对以及导致结构相关的部件; ●记录由结构相关引起的暂停时钟周期数,计算暂停时钟周期数占总执行周期 数的百分比; ●论述结构相关对CPU性能的影响,讨论解决结构相关的方法。 3.在不采用定向技术的情况下(去掉Configuration菜单中Enable Forwarding选项 前的勾选符),用WinDLX运行程序data_d.s。记录数据相关引起的暂停时钟周期数以及程序执行的总时钟周期数,计算暂停时钟周期数占总执行周期数的百分比。 4.在采用定向技术的情况下(勾选Enable Forwarding),用WinDLX再次运行程序 data_d.s。重复上述3中的工作,并计算采用定向技术后性能提高的倍数。 四、实验步骤及结果 1.(1)用winDLX执行求最大公倍数程序gcm.s: File->load code or data->分别选中gcm.s和input.s->select. (2)首先直接运行整个程序(enable forwarding),execute->run(或按F 5) 例如,输入如下:

石膏模型制作实验报告

石膏模型制作的实验报告 实践项目:电话机的石膏模型制作 一、材料特性 石膏加工工艺简单,能耗低,具有轻质、胶凝性好,隔声、隔热、防火,阻燃性能好等许多优良特性。 生石膏CaSO4·2H2O,熟石膏2CaSO4·H2O。化学性质稳定,一般所称石膏可泛指石膏和硬石膏两种矿物。石膏为二水硫酸钙(Ca〔SO4〕?2H2O),又称二水石膏、水石膏或软石膏,理论成分CaO32.6%,SO346.5%,H2O+20.9%,单斜晶系,晶体为板状,通常呈致密块状或纤维状,白色或灰、红、褐色,玻璃或丝绢光泽,摩氏硬度为2,解理平行{010}完全,密度2.3g/cm3;硬石膏为无水硫酸钙(Ca〔SO4〕),理论成分CaO41.2%,SO358.8%,斜方晶系,晶体为板状,通常呈致密块状或粒状,白、灰白色,玻璃光泽,摩氏硬度为3~3.5,解理平行{010}完全,密度2.8~3.0g/cm3。两种石膏常伴生产出,在一定的地质作用下又可互相转化。特征:(1)凝结硬化快。(2)硬化时体积微膨胀。石灰和水泥等胶凝材料硬化时往往产生收缩,而建筑石膏却略有膨胀(膨胀率约为1%),这能使石膏制品表面光滑饱满,棱角清晰,干燥时不开裂。(3)硬化后孔隙率较大,表观密度和强度较低。(4)隔热吸声性能良好。(5)防火性能良好。遇火石,石膏硬化后的主要成分二水石膏中的结晶水蒸发并吸收热量,制品表面形成蒸汽幕,能有效阻止火的蔓延。(6)具有一定的调温调湿性(7)耐水性和抗冻性差。(8)加工性能好。石膏制品可锯,可刨,可钉,可打眼。 二、制作过程 1、效果图绘制 对照网上的电话机产品图,用软件绘制出电话机的大体轮廓; 进行比对,修改模型形体不准确的部分; 修改并设计出模型。 2、尺寸图绘制 在已绘制好的效果图电子档文件导入CAD制图软件中进行绘制。 3、石膏的混制 制作石膏模型首先要掌握水和石膏粉的调配比例即:1:1 ;应先加入水再放入石膏粉; 在搅拌过程中要慢慢赶出气泡,并把大的石膏块捏碎; 将均匀搅拌的石膏浆倒入预先准备的挡板里; 待一段时间后即可取出模型。 4、雕刻阶段 根据绘制的效果图用刻刀对模型进行雕刻,出大型; 大型雕刻过程中要留有余地,以便于修改; 进行下一步得雕刻工作,弧面及圆角得雕刻; 用布打磨石膏,使其表面更为光滑,结构线条过渡更均匀; 用小刀对细节进行再雕刻; 然后开始雕刻细节部分,例如电话机的按键等; 最后对石膏精细打磨; 上色,用喷漆喷绘出预设的颜色,使模型更逼真;

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