文档库 最新最全的文档下载
当前位置:文档库 › 面向对象程序设计实验报告一

面向对象程序设计实验报告一

面向对象程序设计实验报告一
面向对象程序设计实验报告一

课程实验报告

课程名称:面向对象程序设计

实验名称:面向过程的整型栈编程

院系:计算机科学与技术

专业班级:CS1203

学号:U201214884

姓名:肖双

指导教师:马光志

2015 年 1 月 6 日

一、需求分析

1.题目要求

整型栈是一种先进后出的存储结构,对其进行的操作通常包括判断栈是否为空、向栈顶添加一个整型元素、出栈等。整型栈类型及其操作函数采用非面向对象的纯C语言定义,请将完成上述操作的所有函数采用纯C语言编程,然后写一个main函数对栈的所有操作函数进行测试。

struct STACK{

int *elems; //申请内存用于存放栈的元素

int max; //栈能存放的最大元素个数

int pos; //栈实际已有元素个数,栈空时pos=0;

};

void initSTACK(STACK *const p, int m); //初始化p指向的栈:最多m个元素

void initSTACK(STACK *const p, const STACK&s); //用栈s初始化p指向的栈

int howMany (const STACK *const p); //返回p指向的栈的实际元素个数pos

STACK *const push(STACK *const p, int e); //将e入栈,并返回p

STACK *const pop(STACK *const p, int &e); //出栈到e,并返回p

STACK *const assign(STACK*const p, const STACK&s); //赋s给p指的栈,并返回p void print(const STACK*const p); //打印p指向的栈

void destroySTACK(STACK*const p); //销毁p指向的栈

2.需求分析

按题目要求定义一个栈,并完成对栈的各种操作。

二、系统设计

1.概要设计

1)定义一个整型栈

2)完成下列函数:

void initSTACK(STACK *const p, int m); //初始化p指向的栈:最多m个元素

void initSTACK(STACK *const p, const STACK&s); //用栈s初始化p指向的栈

int howMany (const STACK *const p); //返回p指向的栈的实际元素个数pos

STACK *const push(STACK *const p, int e); //将e入栈,并返回p

STACK *const pop(STACK *const p, int &e); //出栈到e,并返回p

STACK *const assign(STACK*const p, const STACK&s); //赋s给p指的栈,并返回p void print(const STACK*const p); //打印p指向的栈

void destroySTACK(STACK*const p); //销毁p指向的栈

3)创建主函数,测试上述函数。

2.详细设计

2.1初始化模块:

1)void initSTACK(STACK *const p, int m);

功能:初始化p指向的栈:最多m个元素

流程:创建一个内存为m的栈,定义一个指向栈m的指针p.

入口参数:p,m

出口参数:空

2) void initSTACK(STACK *const p, const STACK&s);

功能:用栈s初始化p指向的栈

流程:开辟内存,分别将栈s栈能存放的最大元素个数和栈中元素赋给p指向的栈入口参数:p,s

出口参数:空

3)STACK *const assign(STACK*const p, const STACK&s);

功能:赋s给p指的栈,并返回p

流程:分别将栈s栈能存放的最大元素个数和栈中元素赋给p指向的栈,返回p 入口参数:p,s

出口参数:p

2.2调用栈的成员模块:

1)int howMany (const STACK *const p);

功能:返回p指向的栈的实际元素个数pos

流程:调用栈的实际元素个数pos

入口参数:p

出口参数:pos

2.3入栈、出栈模块:

1)STACK *const push(STACK *const p, int e);

功能:将e入栈,并返回p

流程:栈中元素加1,栈的实际元素个数加1,返回p.

入口参数:p,e

出口参数:p

2) STACK *const pop(STACK *const p, int e);

功能:出栈到e,并返回p

流程:栈中元素减1,栈的实际元素个数减1,返回p

入口参数:p,e

出口参数:p

2.4打印、销毁模块:

1)void print(const STACK*const p);

功能:打印p指向的栈

流程:按后进先出顺序输出.栈中的元素

入口参数:p

出口参数:空

2) void destroySTACK(STACK*const p);

功能:销毁p指向的栈

流程:销毁内存,栈的成员max、pos赋0.

入口参数:p

出口参数:空

三、软件开发

使用的软件为codebrocks.

四、软件测试

测试栈的初始化、入栈、出栈、打印栈等函数

1、初始化p和s指向的最大元素为10的栈;

2、将1、2、

3、

4、5按先后顺序入s指向的栈,并打印s指向的栈。

3、对s指向的栈执行2次出栈操作,输出出栈的元素,并打印s指向的栈

4、输出s指向的栈的实际元素个数

5、赋s指向的栈给p指向的栈

6、打印p指向的栈

7、销毁p和s指向的栈

五、特点与不足

1.技术特点

程序比较简洁易懂,一目了然。

2.不足和改进的建议

测试时需要修改main程序,没有人机交互界面,测试不方便。改进的建议是设计一个

人机交互界面,使用户操作起来更方便。

六、过程和体会

1.遇到的主要问题和解决方法

主要问题:遗忘了关于栈的操作的具体内容,写起来比较生涩

解决方法:认真复习了一下栈的操作。

2.课程设计的体会

学过的知识要时常拿出来复习,才能真正掌握它们。做实验时要认真思考,学会灵活运用已掌握的知识,争取举一反三。

七、源码和说明

1.文件清单及其功能说明

实验1的工程、源文件main.c、可执行程序.exe文件。

2.用户使用说明书

打开实验1中的c工程,运行就可看到结果。

3.源代码

#include

#include

#include

#include

#define INIT_SIZE 5 //初始大小

#define INCREASE_SIZE 5 //每次增加大小

using namespace std;

typedef struct STACK{

int *elems;//申请内存用于存放栈的元素

int max; //栈能存放的最大元素个数

int pos; //栈实际已有元素个数,栈空时pos=0;

} STACK;

void initSTACK(STACK *const p, int m); //初始化p指向的栈:最多m个元素void initSTACK(STACK *const p, const STACK&s); //用栈s初始化p指向的栈

int howMany (const STACK *const p); //返回p指向的栈的实际元素个数pos STACK *const push(STACK *const p, int e); //将e入栈,并返回p

STACK *const pop(STACK *const p, int &e); //出栈到e,并返回p

STACK *const assign(STACK*const p, const STACK&s); //赋s给p指的栈,并返回p void print(const STACK*const p); //打印p指向的栈

void destroySTACK(STACK*const p); //销毁p指向的栈

int main()

{

int e;

STACK p,s;

initSTACK(&p,10);//初始化最大元素个数为10的栈

initSTACK(&s,10);

push(&s,1); //将1入栈s

push(&s,2);

push(&s,3);

push(&s,4);

push(&s,5);

print(&s); //打印栈s

pop(&s,e); //出栈

pop(&s,e);

print(&s);

//assign(&p,s);

//print(&p);

return 0;

}

void initSTACK( STACK *const p, int m)

{

STACK s={(int*)malloc(m*sizeof(int)),m,0};

*p=s;

}

void initSTACK(STACK *const p, const STACK&s) {

p->elems=(int*)malloc(INIT_SIZE*sizeof(int));

p->max=s.max;

for(int i=0; i

p->elems[i] = s.elems[i];

}

}

int howMany (const STACK *const p)

{

if(p->elems!=NULL)//若栈存在

return p->pos;

else return 0;

}

STACK *const push(STACK *const p, int e)

{

if(p->elems!=NULL)

{

int i=p->pos;

p->elems[i]=e;

p->pos++;

return p;

}

}

STACK *const pop(STACK *const p, int &e)

{

if(p->elems!=NULL)

{

e=*(p->elems+p->pos-1);

printf("%d\n",e);

p->pos--;

return p;

}

}

STACK *const assign(STACK*const p, const STACK&s) {

if(p->elems!=NULL)

{

p->max=s.max;

for(int i=0; i

p->elems[i] = s.elems[i];

printf("%d\n",p->elems[i]);

p->pos++;

}

}

}

void print(const STACK*const p)

{

if(p->elems!=NULL)

{

for(int i=0; ipos; i++)

cout<elems[i]<<" ";

cout<<"\n";

}

}

void destroySTACK(STACK*const p)

{

if(p->elems!=NULL)

{

p->max=p->pos=0;

delete p->elems;

}

}

打印源码清单。源码关键位置要有注释。

电工电子学实验报告

3 电工电子学实验报告机电工程学院 《电工电子学(一)》实验报告 学 院 班级姓名学号 温州大学机电工程学院制 实验一基尔霍夫定律的验证和电源的等效变换 1 2 温州大学

学生原始记录表(硬件) 课程名称: ______________________________ 实验室名称: 实验名称:实验时间:班级:学生姓名:同组人员: 原始记录内容 4 实验报告 课程名称:电工电子学实验指导老师:实验名称:常用电子仪器的使用 一、实验目的 1. 了解常用电子仪器的主要技术指标、主要性能以及面板上各种旋钮的功能。 2. 掌握实验室常用电子仪器的使用方法。 二、主要仪器设备 1. XJ4318 型双踪示波器。 2.DF2172B 型交流电压表。 3.XJ1631 数字函数信号发生器。

4.HY3003D-3型可调式直流稳压稳流电源。 5.10k Q电阻和0.01 卩F电容各一个。 三、实验内容 1. 用示波器检测机内“校正信号”波形 首先将示波器的“显示方式开关(VERTCAMODE”置于单踪显示,即 Y1(CH1咸Y2(CH2), “触发方式开关(TRIGGER”置于“自动(AUTO)” 即自激状态。开启电源开关后,调节“辉度(INTEN)”、“聚焦(FOCUS) “辅助聚焦” 等旋钮,使荧光屏上显示一条细而且亮度适中的扫描基线。将示波器的“校正信号”引入上面选定的丫通道(CH1或CH2), 将丫轴“输入耦合方式开关”置于“ AC或“ DC,调节X轴“扫描速率选择开关” (t/div 或t/cm)和丫轴“轴入灵敏度开关(V/div或V/cm)” ,并且将各自的“微调”旋钮置于校正位置,使示波器显示屏上显示出约两个周期,垂直方向约4~8div(cm) 的校正信号波形。 从示波器显示屏的坐标刻度上读得X轴(水平)方向和丫轴(与X轴垂直)方向的原始数据(即从示波器刻度上读取的刻度数值和所选的刻度单位值),填入表4-1 ,并计算出对应的实测值。 表4-1

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

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

程序设计实验报告

学生实验报告 院系:测绘学院 专业班级:测绘13级3班 学号:2013305517 学生姓名:王泽 指导教师:郭辉老师 2016年05月20日

安徽理工大学实验报告 实验课程名称:数据结构与软件开发上机实验 开课院系及实验室:测绘学院红楼二楼机房 实验1 编程基本知识练习 实验目的: 通过该实验课内容的练习,学生应掌握VB 编程的基本语法、变量的定义、数组(动态数组)的定义、VB 语言中子过程与函数的定义以及文本文件的读写等知识。 实验内容: 1)变量的定义动态数组的定义与应用; 2)矩阵的加、减、乘运算(定义Sub()子过程或Function()来实现); 3)数据文件的建立、数据的读取与写入。 实验步骤: 1.编辑界面 1.1 打开VB 编程工具,进入编程主界面。

1.2 在窗体上新建“读入数据”和“输出数据”两个按钮。 1.3 双击“窗体”进入代码输入界面,进行代码编辑。 2.用VB 编写的源代码 2.1 矩阵基本运算源码详见附录一。 (1)两矩阵相加 (2)两矩阵相减 (3)矩阵转置 (4)两矩阵相乘 (5)矩阵求逆 2.2 文本文件(本实验中data.txt)的读取源代码 (1)建立文本文件并输入数据 在桌面上新建一“data.txt” ( 文本文件路径为C:\Users\ WH\Desktop\练习\data.txt”)。输入以下内容: 6,7,4,0.005 A,35.418 B,45.712 C,25.270

D,24.678 在桌面上新建一“result.txt” ( 文本文件路径为C:\Users\ WH\Desktop\练习\result.txt”)。(2)从文本文件中读数据 Dim linedata as string, m_GaochaN as integer,m_Pnumber as integer,m_knPnumber as integer,M as Double,k1 as integer 'linedata 为存储文本文件一行信息的字符串变量 Dim a() as String,H() as Double 'a()为存储点名,H()存储高程 Open“C:\Users\ WH\Desktop\练习\data.txt”For Input As #1 Line Input #1, linedata k = Split(linedata, ",") m_GaochaN = Val(k(0)) m_Pnumber = Val(k(1)) m_knPnumber = Val(k(2)) M = CDbl(k(3)) For k1 = 1 To m_knPnumber Line Input #1, linedata k = Split(linedata, ",") a(k1)= k(0) GetstationNumber (a) H(k1) = CDbl(k(1)) Next Close #1 (3)将读入点名存储到点名数组中,且返回该点名所对应编号 Function GetstationNumber(name As String) Dim i As Integer For i = 1 To m_Pnumber If P_Name(i) <> "" Then '将待查点名与已经存入点名数组的点比较 If P_Name(i) = name Then GetstationNumber = i Exit For End If Else '待查点是新的点名,将新点名放到P_Name 数组中 P_Name(i) = name GetstationNumber = i Exit For End If Next i End Function (4)从文本文件中写数据(将从data.txt 读入的数据,写入到result.txt 文件中) Open“C:\Users\ WH\Desktop\ 练习\result.txt” For Output As #1 outstring = outstring + str(m_GaochaN) +","

程序设计基础实验报告

《程序设计基础》 实验报告 专业班级: 姓名: 学号:

实验一 面向过程的简单程序设计 1.实验目的要求 (1) 使用C++语言编写简单的计算机程序,掌握C++程序从编辑、编译到运行的全过程, 初步了解C++程序的特点。 (2) 掌握C++语言的数据类型(包括对各种数据类型变量的定义、初始化、赋值等)、运 算符和表达式的使用。 (3) 掌握赋值语句的使用。 (4) 掌握数据的输入输出方法。 2.实验内容 (1)设计简单程序,分别计算下列表达式,式中变量由键盘输入,输出表达式的值。 <1> d c b a x -++ <2> 11 11+++x x <3> sinX+cosX+tan -1 X <4> e x+y +e x-y <5> log 10(1+21x +) <6> 22b a -+??b a - (其中??a 表示取不大于a 的最大整数)。 <1> #include using namespace std; int main() { float x,a,b,c,d,e; cin>>x>>a>>b>>c>>d; e=x+(a+b)/(c-d); cout< #include #include using namespace std; int main() { double x,y; cin>>x; y=sqrt(1+1/(x+1/(x+1)));

cout< #include #include using namespace std; int main() { double x,y; cin>>x; y=sin(x)+cos(x)+1/tan(x); cout< #include #include using namespace std; int main() { double x,y,z; cin>>x>>y; z=exp(x+y)+exp(x-y); cout< #include #include using namespace std; int main() { double x,y; cin>>x; y=log(1+sqrt(1+x*x)); cout< #include #include using namespace std; int main()

《电工电子学》实验报告

中国石油大学(华东)现代远程教育 实验报告 课程名称:电工电子学 实验名称:三相交流电路 实验形式:在线模拟+现场实践 提交形式:在线提交实验报告 学生姓名:王武明学号: 16457730003 学习中心:安徽宣城教学服务站 提交时间: 2017年 5 月6日

?当三相电路对称时,线、相电压与线、相电流都对称,中线电流等于零,而线、相电压满足:? (2)三角形连接的负载如图2所示: 其特点是相电压等于线电压:?线电流与相电流之间的关系如下: ?当三相电路对称时,线、相电压与线、相电流都对称,此时线、相电流满足: ?2、不对称三相电路?在三相三线制星形连接的电路中,若负载不对称,电源中点与负载中点的电位不再相等,称为中点位移,此时负载端各相电压将不对称,电流与线电压也不对称。 在三相四线制星形连接的电路中,假如中线的阻抗足够小,那么负载端各相电压基本对称,线电压也基本对称,从而可看出中线在负载不对称时起到了特不重要的作用。但由于负载不对称,因此电流是不对称的三相电流,这时的中线电流将不再为零、 在三角形连接的电路中,假如负载不对称,负载的线、相电压仍然对称,但线、相电流不再对称。?假如三相电路其中一相或两相开路也属于不对称情况。 3、三相负载接线原则?连接后加在每相负载上的电压应等于其额定值。 三、实验设备 1、灯箱一个(灯泡,220V,25W)(DG04—S) 2、交流电压表一个(300V,600V)(DG053) 3、交流电流表一个(5A、10A)(DG053) 四、实验内容及步骤 1、本实验采纳线电压为220V的三相交流电源。测量该电源的线电压(U AB、UBC、U CA)与相电压(UAO、U BO、U CO),并记录之。 2、星形对称有中线:按图1接线,每相开3盏灯。测各线电压、各相电压、各相电流、两中点间电压UOO',记录于表1中。 图1 Y接电路 3、星形不对称有中线:各相灯数分不为1、2、3盏。重复步骤2,观察灯泡亮度有无变化。

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

实验二结构相关 一、实验目得: 通过本实验,加深对结构相关得理解,了解结构相关对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发生结构相关,导致相关得部件:译码部件。

C语言程序设计实验报告(实验大纲+过程)

《C程序设计》实验教学大纲 一、适用范围 大纲适用信息管理专业本科教学使用。 二、课程名称 C程序设计 三、学时数与学分 总学时:90 总学分:4 实验学时:28 实验学分:1 四、教学目的和基本要求 目的:通过C程序设计实验,培养学生对学习程序设计的兴趣,加深对讲授内容的理解,尤其是通过上机来掌握语法规则,使学生全面了解 C 语言的特点,熟练掌握 C 语言程序设计的基本方法和编程技巧。 基本要求:了解和熟悉C语言程序开发的环境;学会上机调试程序,善于发现程序中的错误,并且能很快地排除这些错误,使程序能正确运行,达到实验知识和理论知识的融会贯通。上机实验前,学生必须事先根据题目的内容编好程序,然后在实验时输入程序、调试程序、直至运行结果正确为止,上机结束后,应整理出实验报告。 注:带*的实验项目为选做实验项目 六、教材、讲义及参考书 《C程序设计题解与上机指导》谭浩强主编清华大学出版社 七、实验成绩评定办法 实验成绩=平时实验表现+实验报告。实验成绩占总成绩的20%。 实验成绩以等级形式给出,评定等级分优、良、中、及格、不及格五类。 1、平时考核:上机实验前,学生必须事先根据题目的内容编好程序,然后在实验时输入程序、调试程序、直至运行结果正确为止。在实验中,教师可根据学生编程操作能力、观察和分析及运用知识能力、程序编制正确性以及学生的课堂纪律、实验态度、保持实验室卫生等方面的表现进行综合考核。

2、实验报告:学生实验后应按时完成实验报告。 八、实验教学大纲说明 本大纲共安排28学时的实验,其中带*号实验项目为选做实验项目,实际课时为18学时。实验项目多为设计性实验项目,每个设计性实验项目中都包含数个小的设计性题目,其中带*号的题目为选做题目,有时间和有能力的同学可以选做。 九、实验项目 实验一C程序的运行环境和运行一个C程序的方法 一、实验目的 1.了解Visual C++6.0编译系统的基本操作方法,学会独立使用该系统。 2.了解在该系统上如何编辑、编译、连接和运行一个C程序。 3.通过运行简单的C程序,初步了解C源程序的特点。 二、实验内容 1.用编辑程序,输入教材第一章例1.1程序,并进行编译和运行。应了解所用的系统是用什么命令进行编译和连接运行的。编译和连接后所得到的目标程序的后缀是什么形式的? 2.编写一个C程序,输出以下信息: **************************** very good! **************************** 3.输入并运行教材第一章中例1.3,了解如何在运行时向程序变量输入数据。 实验二数据类型、运算符和表达式 一、实验目的 1.掌握C语言数据类型,熟悉如何定义一个整型、字符型、实型变量,以及对它们赋值的方法,了解以上类型数据输出时所用格式转换符。 2.学会使用C的有关算术运算符,以及包含这些运算符的表达式,特别是自加(++)和自减(--)运算符的使用。 二、实验内容 1.输入并运行以下程序: main( ) { char c1,c2; c1=97;c2=98; pr intf(“%c %c\n”,c1,c2); printf(“%d %d\n”,c1,c2); } 在此基础上 ①将第三行、第四行改为: c1=321;c2=353; 再使之运行,分析其运行结果。 ②将第二行改为: int c1,c2; 再使之运行,分析其运行结果。。 2.输入并运行以下程序:

大学程序设计基础实验报告 (2)

**大学程序设计基础实验报告 实验名称:实验三分支结构 实验目的: 1、掌握IF-ELSE语句使用。 2、掌握ELSE-IF语句使用。 3、熟悉SWITCH语句使用。 实验内容: 在本地电脑中新建一个文件夹,用于存放C程序,文件夹的名字要求是“学号姓名-实验序号”,如E:\ 1920115555张三-03。启动C-Free,完成如下各题。 1、编程题:输入参数a,b,c,求一元二次方程ax2+bx+c=0的根(①a、b、c都为0,②a 和b为0,c不为0,③a为0,b不为0,c任意,④a不为0,且a、b、c满足b2-4ac ≥0,⑤a不为0,且a、b、c满足b2-4ac<0)。 2、编程题:输入职工的月薪salary,计算并输出应缴纳的个人所得税tax。tax=rate * (salary –850),rate的计算方式如下: 当salary <= 850,则rate = 0; 当850 < salary <= 1350,则rate = 5%; 当1350 < salary <= 2850,则rate = 10%; 当2850 < salary <= 5850,则rate = 15%; 当salary > 5850,则rate = 20%;。 3、编程题:根据输入的3个边长a、b、c,判断它们是否能构成三角形,若能构成三 角形,则进一步判断此三角形是哪种类型的三角形(等边三角形、等腰三角形、直角三角形和一般三角形。等腰直角算作等腰)。 4、编程题:输入一个形式如“操作数运算符操作数”的表达式,对2个整数进行乘、 除或求余运算。【请分别用if语句和switch语句实现此题功能】 上交作业的方法: 1.将程序代码及注释和运行程序的窗口复制到实验结果下方对应的题号上,并把这 次实验上机操作中遇到的问题及解决方法、心得等填好完成实验报告。 2.保存以上所有按要求已调试通过,并形成.c(或.cpp)和.exe文件到以自己的“学 号姓名-03”命名的文件夹中,并将以自己的“学号姓名”命名的文件夹压缩后上 交到ftp://10.172.250.252:1161中的“作业上传”文件夹下的“报告上交02”文件 夹下的子文件夹“源文件压缩上交”中,同时把以“学号姓名-03”命名的word 文档上交到“报告上交03”文件夹下的另一子文件夹“word文件上交”中。 特别提醒:每次上传的文件名一定要是“学号姓名-实验序号. doc”(如1720115555张

《电工电子学》实验报告三相交流电路实验报告

中国石油大学(华东)现代远程教育 实验报告 课程名称:电工电子学 实验名称:三相交流电路 实验形式:在线模拟+现场实践 提交形式:在线提交实验报告 学生姓名:任永胜学号:1995738000111年级专业层次:年级:1903 层次:高起专专业:机电一体化技术 学习中心:府谷奥鹏学习中心 提交时间:2019年11月1日

二、实验原理 答: 1. 对称三相电路中线、相电压和线、相电流的关系,三相电路中,负载的连接分为星形连接和三角形连接两种。一般认为电源提供的是对称三相电压。 (1)星形连接的负载如图1所示: 图1 星形连接的三相电路 A、B、C表示电源端,N为电源的中性点(简称中点),N' 为负载的中性点。无论是三线制或四线制,流过每一相负载的相电流恒等于与之相连的端线中的线电流: (下标I表示线的变量,下标p表示相的变量) 在四线制情况下,中线电流等于三个线电流的相量之和,即 端线之间的电位差(即线电压)和每一相负载的相电压之间有下列关系:

当三相电路对称时,线、相电压和线、相电流都对称,中线电流等于零,而线、相电压满足: (2)三角形连接的负载如图2所示: 其特点是相电压等于线电压: 线电流和相电流之间的关系如下: 当三相电路对称时,线、相电压和线、相电流都对称,此时线、相电流满足: 2.不对称三相电路 在三相三线制星形连接的电路中,若负载不对称,电源中点和负载中点的电位不再相等,称为中点位移,此时负载端各相电压将不对称,电流和线电压也不对称。 在三相四线制星形连接的电路中,如果中线的阻抗足够小,那么负载端各相电压基本对称,线电压也基本对称,从而可看出中线在负载不对称时起到了很重要的作用。但由于负载不对称,因此电流是不对称的三相电流,这时的中线电流将不再为零。 在三角形连接的电路中,如果负载不对称,负载的线、相电压仍然对称,但线、相电流不再对称。 如果三相电路其中一相或两相开路也属于不对称情况。 3.三相负载接线原则

C语言程序设计实验报告(数组)

C语言程序设计实验报告(数组) 1实验目的 (1)熟练掌握一维数组,二维数组的定义,初始化和输入、输出方法; (2)熟练掌握字符数组和字符串函数的使用; (3)掌握与数组有关的常用算法(查找、排序等)。 2实验内容 编写函数catStr(char str1[],char str2[])用于进行两个字符串的连接,编写函数lenStr(char str[])用于统计一个字符串的长度,并在主函数中调用。 要求: 1、不允许用strcat()和strlen()字符处理库函数; 2、在主函数以直接初始化的方式输入两个字符串str1和str2.调用函数 strlen()计算并返回两个字符串的长度; 3、调用函数catstr()连接两个字符串(将str2连接在str1后面); 4、调用函数lenstr()计算并返回连接后字符串的长度; 5、在主函数中输入两个原始的字符串及几个字符串的长度,以及处理后字 符串及其长度。

3算法描述流程图

4源程序 #include #include void catStr(char str1[],char str2[]) { int i,j; for (i=0;str1[i]!='\0';i++); for(j=0;str2[j]!='\0';j++) str1[i+j]=str2[j]; str1[i+j]='\0'; } lenStr(char m[] ) {int i;

for (i=0;m[i]!='\0';i++); printf("%d",i); } void main() {char s1[50]="forever",s2[50]="more"; printf("s1=%s,s2=%s",s1,s2); printf("\ns1的长度:"); lenStr(s1); printf("\ns2的长度:"); lenStr(s2); catStr(s1,s2); printf("\n连接后的字符:"); printf("%s\n",s1); printf("连接后字符的长度:"); lenStr(s1); printf("\n"); } 5测试数据 s1=forever, s2=more 6运行结果 7出现问题及解决方法 在输入程序时,少写了半边引号,调试时发现存在错误,找到了错误并加以改正。无论什么事,细心都是必不可少的,认真是解决问题的关键。 8实验心得 通过本次实验,对于函数的定义和声明,数组以及循环语句有了进一步的认识,掌握了字符数组和字符串函数的使用,以及与数组有关的常用算法。此次实验不是调用strlen()和strcat()函数,而是通过自己设计程序来进行字符串的连接以及计量字符串的长度,由此我学会了如何去理清自己的思路来设计程序。

浙大电工电子学实验报告实验二单向交流电路

实验报告 课程名称: 电工电子学实验 指导老师: 实验名称: 单向交流电路 一、实验目的 1.学会使用交流仪表(电压表、电流表、功率表)。 2.掌握用交流仪表测量交流电路电压、电流和功率的方法。 3.了解电感性电路提高功率因数的方法和意义。 二、主要仪器设备 1.实验电路板 2.单相交流电源(220V) 3.交流电压表或万用表 4.交流电流表 5.功率表 6.电流插头、插座 三、实验内容 1.交流功率测量及功率因素提高 按图2-6接好实验电路。 图2-6 (1)测量不接电容时日光灯支路的电流I RL 和电源实际电压U 、镇流器两端电压U L 、日光灯管两端电压U R 及电路功率P ,记入表2-2。 计算:cos φRL = P/ (U·I RL )= 0.46 测量值 计算值 U/V U L /V U R /V I RL /A P/W cos φRL 219 172 112 0.380 38.37 0.46 表2-2 (2)测量并联不同电容量时的总电流I 和各支路电流I RL 、I C 及电路功率,记入表2-3。 并联电容C/μF 测量值 计算值 判断电路性质 (由后文求得) I/A I C /A I RL /A P/W cos φ 0.47 0.354 0.040 0.385 39.18 0.51 电感性 1 0.322 0.080 0.384 39.66 0.56 电感性 1.47 0.293 0.115 0.383 39.63 0.62 电感性 2.2 0.257 0.170 0.387 40.52 0.72 电感性 3.2 0.219 0.246 0.387 40.77 0.85 电感性 4.4 0.199 0.329 0.389 41.37 0.95 电感性 表2-3 注:上表中的计算公式为cos φ= P/( I ·U),其中U 为表2-2中的U=219V 。 姓名: 学号:__ _ 日期: 地点:

体系结构实验报告

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

C语言程序设计基础实验报告6【VIP专享】

实验6 数组 一、实验目的 1、掌握一维数组和二维数组的定义、赋值和输入输出的方法; 2、掌握字符数组和字符串函数的使用; 3、掌握与数组有关的算法(特别是排序算法)。 二、实验内容和步骤 编程序并上机调试运行。 1、以下给定程序MODI1.C的功能是: 求一维数组a中所有元素的平均值, 结果保留两位小数。例如,当一维数组a中的元素为:10, 4, 2, 7, 3, 12, 5, 34, 5, 9时,程序的输出应为:The aver is: 9.10 程序中有两处错误,错误都在提示行:/***********found***********/的下面一行。请改正程序中的错误, 使它能得出正确的结果。 注意:程序中的其它地方请不要随意改动,不得增行或删行,也不得更改程序的结构! #include #include void main() { int a[10]={10,4,2,7,3,12,5,34,5,9}, i; /************found************/ /************found************/ s = a[0]; for ( i=1; i<10; i++) s += a[i]; aver = s / i; printf("The aver is: %.2f\n", aver); } 2、以下给定程序MODI1.C的功能是:求二维数组a中的最小值。 例如,当二维数组a中的元素为: 4 2 34 7 3 12 5 6 5 程序的输出应为:The min is: 2 。 程序中有两处错误,错误都在提示行:/***********found***********/的下面一行。请改正程序中的错误, 使它能得出正确的结果。 注意:程序中的其它地方请不要随意改动,不得增行或删行,也不得更改程序的结构! #include #include void main() { int a[3][3]={4,2,34,7,3,12,5,6,5}, i, j, min; clrscr();

电工电子学实验报告_实验三_三相交流电路.doc

一、实验目的 1.学习三相交流电路中三相负载的连接。 2.了解三相四线制中线的作用。 3.掌握三相电路功率的测量方法。 二、主要仪器设备 1.实验电路板 2.三相交流电源 3.交流电压表或万用表 4.交流电流表 5.功率表 6.单掷刀开关 7.电流插头、插座 三、实验内容 1.三相负载星形联结 按图 3-2 接线,图中每相负载采用三只白炽灯,电源线电压为220V。 图3-2 三相负载星形联结 (1) 测量三相四线制电源的线电压和相电压,记入表3-1( 注意线电压和相电压的关系) 。 U UV/V U VW/V U WU/V U UN/V U VN/V U WN/V 219218 220127 127127 表 3-1 (2)按表 3-2 内容完成各项测量,并观察实验中各白炽灯的亮度。表中对称负载时为每相开亮三 只灯;不对称负载时为 U相开亮一只灯, V 相开亮两只灯, W相开亮三只灯。 测量值相电压相电流中线电流中点电压负载情况U UN’ /V U VN’ /V U WN’ /VI U/AI V/AI W/A I N/A U N’N/V 对称有中线124 124 124 0 负载无中线125 125 123 1 不对称有中线126 125 124

负载 无中线 167 143 78 50 表 3-2 2. 三相负载三角形联结 按图 3-3 连线。测量功率时可用一只功率表借助电流插头和插座实现一表两用, 具体接法见图 3-4 所示。接好实验电路后,按表 3-3 内容完成各项测量,并观察实验中白炽灯的亮度。表中对称负载和不 对称负载的开灯要求与表 3-2 中相同。 图 3-3 三相负载三角形联结 图 3-4 两瓦特表法测功率 测量值 线电流 (A) 相电流 (A) 负载电压 (V) 功率 (W) 负载情况 I U I V I W I UV I VW I WU UV VW WU 1 2 U U U P P 对称负载 213 212 215 -111 -109 不对称负载 220 217 216 表 3-3

C+程序设计实验报告-2013

C++程序设计 实验报告 专业计算机科学与技术班级 ____________ 学号 ____________ 姓名 ____________ 指导教师 __许加兵_ 信息与电子工程学院2013年9月-12月

C++程序设计实验报告 专业__________班级__________学号__________姓名__________ 成绩____________ 指导教师____________ 日期____________ 实验1 C++集成开发环境与C++函数程序设计 一、实验目的 1、了解和使用Visual Studio 2010的C++集成开发环境; 2、熟悉Visual Studio 2010环境的基本命令、功能键和常用的菜单命令; 3、学会完整的C++程序开发过程; 4、学习并掌握C++函数程序设计; 二、实验内容 1、安装、了解和使用Visual Studio 2010的C++集成开发环境; 2、通过以下的C++函数程序设计,熟悉Visual Studio 2010环境的基本命令、功能键和常用的菜单命令; 3、通过以下的C++函数程序设计,学会完整的C++程序开发过程; 4、完成以下的C++函数程序设计和调试: 1)编写一个函数print(),将一个整型向量输出到cout。此函数接受两个参数:一个字符串(用于“标记”输出)和一个向量。 2) 编写一个函数,接受一个vector 参数,返回一个vector ,其每个元素值是对应字符串的长度。此函数还找出最长和最短的字符串,以及字典序第一个和最后一个字符串。 三、简要说明C++开发环境安装和配置的过程

C++程序设计实验报告5

《程序设计基础》 实验报告 学号:2016211990 姓名:王贯东 班级:16-计算机科学与技术-1班

学院:计算机与信息学院 实验五指针 1.实验目的要求 (1)掌握指针的概念,学会定义和使用指针变量。 (2)学会使用数组指针和指向数组的指针变量。 (3)学会使用字符串指针和指向字符串的指针变量。 (4)了解指向指针的指针的概念以及其使用方法。 (5)掌握指针、引用、数组做函数参数的传递机制。 (6)*学会使用指向函数的指针变量。 2.实验设备 Visual C++ 6.0 3.实验内容 (1)阅读下面程序,写出其运行结果。

<1> #include sub ( int x , int y , int *z ) { *z = y – x ; } void main( ) { int a,b,c; sub( 10 , 5 , &a ) ; sub( 7, a, &b ) ; sub( a, b, &c ) ; cout << a <<‘,’<< b <<‘,’<< c << endl ; } 解:输出-5,-12,-7 <2> #include #include void main()

{ int stre ( char[ ] ) ; char str [ 10 ] , *p = str ; gets ( p ) ; cout << stre ( p ) << endl ; } int stre ( char str[ ] ) { int num = 0 ; while( * ( str + num ) != ’\0’ ) num ++ ; return ( num ) ; } 解:题目库函数少了 。该正后,输入1234,输出4 (2)编写程序实现下列问题的求解。 (1)输入三个整数,按由小到大的顺序输出,然后将程序改为:输入三个字符串,按由小到大的顺序输出。 #include using namespace std; int turn (int *p1,int *p2)

电工电子学实验报告常用电子仪器的使用

电工电子学实验报告04常用电子仪器的使用 实验报告课程名称:电工电子学实验指导老师:实验名称:常用电子仪器的使用一、实验目的1.了解常用电子仪器的主要技术指标、主要性能以及面板上各种旋钮的功能。2.掌握实验室常用电子仪器的使用方法。二、主要仪器设备1.XJ4318 型双踪示波器。2.DF2172B 型交流电压表。3.XJ1631 数字函数信号发生器。 4.HY3003D-3 型可调式直流稳压稳流电源。5.10kΩ 电阻和0.01μ F 电容各一个。三、实验内容1.用示波器检测机内“校正信号”波形首先将示波器的“显示方式开关(VERTCAL MODE)”置于单踪显示,即Y 1 (CH1)或Y 2 (CH2),“触发方式开关(TRIGGER)”置于“自动(AUTO)”即自激状态。开启电源开关后,调节“辉度(INTEN)”、“聚焦(FOCUS)”“辅助聚焦”等旋钮,使荧光屏上显示一条细而且亮度适中的扫描基线。将示波器的“校正信号”引入上面选定的Y 通道(CH1 或CH2),将Y 轴“输入耦合方式开关” 置于“AC”或“DC”,调节X 轴“扫描速率选择开关”(t/div 或t/cm)和Y 轴“轴入灵敏度开关(V/div 或 V/cm)”,并且将各自的“微调”旋钮置于校正位置,使示波器显示屏上显示出约两个周期,垂直方向约4~8div(cm)的校正信号波形。从示波器显示屏的坐标刻度上读得X 轴(水平)方向和Y 轴(与X 轴垂直)方向的原始数据(即从示波器刻度上读取的刻度数值和所选的刻度单位值),填入表4-1,并计算出对应的实测值。校正信号标称值示波器测得的原始数据测量值幅度U P-P 0.2V 4div 0.05V/div 0.2V 频率f 1000Hz 5div 0.2ms/div 1000Hz 表4-1 观察“Y 轴输入灵敏度微调开关”和“X 轴扫描速率微调开

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

实验二结构相关 一、实验目的: 通过本实验,加深对结构相关的理解,了解结构相关对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阶段,所以导致下一条指令发生结构相关。

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