当前位置:文档之家› 实验五 实验报告

实验五 实验报告

实验五  实验报告
实验五  实验报告

实验五类和对象(二)

一、实验目的:

1.进一步理解类和对象的概念;

2.进一步理解类的成员的访问控制的含义,公有和私有成员的区别;

3.掌握构造函数和析构函数的含义与作用、定义方式和实现;

4.能够根据给定的要求定义类并实现类的成员函数;

5.了解C++面向对象程序设计的基本思想、基本方法和基本步骤;

6.掌握MS Visual C++6.0调试C++程序的基本方法、基本步骤。

二、实验内容:

1、输入下列程序,按要求进行实验,并记录实验的结果。

#include

using namespace std;

class Coordinate

{

public:

Coordinate(int x1, int y1){x=x1; y=y1;}

Coordinate(Coordinate &p);

~Coordinate(){cout<<"Destructor is called."<

int getx(){return x;}

int gety(){return y;}

private:

int x, y;

};

Coordinate::Coordinate(Coordinate &p){

x=p.x; y=p.y;

cout<<"Copy initianization constructor is called."<

}

int main(){

Coordinate p1(3,4);

Coordinate p2(p1);

Coordinate p3=p2;

cout<<"p3=("<

return 0;

}

(1)记录程序的运行结果

(2)将Coordinate类中带有两个参数的构造函数进行修改,在函数体内增加如下语句:cout<<”Constructor is called.”<

重新记录程序的运行结果,并解释输出结果。

(3)按下列要求进行测试。

在主函数体内,添加如下语句:

Coordinate p4;

Coordinate p5(2);

测试程序会出现什么错误?为什么?如何对已有的构造函数进行适当的修改?

(4)结合第(2)和第(3)步的修改和运行结果:分析创建不同的对象时如何调用适当构造函数?

2、根据注释语句的提示实现类Date的成员函数,并将完整的程序编译、连接成功以保证程序能够正确运行。

#include

class Date{

public:

void printDate(); //显示日期

void setDay(int); //设置日的值

void setMonth(int); //设置月的值

void setYear(int); //设置年的值

private:

int day, month, year;

};

int main(){

Date testDay;

testDay.setDay(24);

testDay.setMonth(10);

testDay.setYear(2012);

testDay.printDate();

return 0;

};

3、下面是一个计算器类的定义,请完成该类的成员函数的实现,并设计一个主函数使用该类和相关成员函数以测试该类设计的正确性。

#include

using namespace std;

class coutner

{

public:

counter(int number); //构造函数

void increment(); //给value原值加2

void decrement(); //给value原值减2

void setvalue(int); //设置计数器值

int getvalue(); //取得计数器值

void print(); //显示计数

private:

int value; //数据成员

};

int main(){

... //定义counter类的几个对象并调用有关成员函数

return 0;

}

4、定义一个类ClsName,要求该类设计如下:

(1)该类有两个整型数据成员x和y;

(2)为该类重载三个不同的构造函数:分别为无参数、带一个参数和带两个参数的构造函数,要求在构造函数中输出必要的信息以示区别;

(3)设计2个成员函数用来读取数据成员x和y;

(4)设计2个成员函数用来设置数据成员x和y;

(5)设计1个成员函数用来在屏幕上打印输出数据成员x和y;

(6)在main()函数中用三个不同的构造函数创建3个对象,并使用所有的成员函数对这些对象进行必要的操作。

三、实验设计

1、(2)程序:

#include

using namespace std;

class Coordinate

{

public:

Coordinate(int x1, int y1){x=x1;

y=y1;

cout<<"Constructor is called."<

Coordinate(Coordinate &p);

~Coordinate(){cout<<"Destructor is called."<

int getx(){return x;}

int gety(){return y;}

private:

int x, y;

};

Coordinate::Coordinate(Coordinate &p){

x=p.x; y=p.y;

cout<<"Copy initianization constructor is called."<

int main(){

Coordinate p1(3,4);

Coordinate p2(p1);

Coordinate p3=p2;

cout<<"p3=("<

return 0;

}

2.

#include

class Date{

public:

void printDate() //显示日期

{

cout<

cout<

cout<

}

void setDay(int) //设置日的值

{

int d;

d=day=24;

}

void setMonth(int) //设置月的值{

int m;

m=month=10;

}

void setYear(int) //设置年的值{

int y;

y=year=2012;

}

private:

int day, month, year;

};

int main(){

Date testDay;

testDay.setDay(24);

testDay.setMonth(10);

testDay.setYear(2012);

testDay.printDate();

return 0;

};

3.

#include

using namespace std;

class Coutner

{

public:

coutner(int number) //构造函数

{value=number;}

void increment(int in) //给value原值加2

{value=in+2;}

void decrement(int de) //给value原值减2

{value=de-2;}

void setvalue(int a) //设置计数器值

{value=a;}

int getvalue() //取得计数器值

{return value;}

void print() //显示计数

{

cout<

}

private:

int value; //数据成员

};

int main()

{

Coutner testcoutner; //定义coutner

类的几个对象并调用有关成员函数testcoutner.setvalue(4);

testcoutner.print();

testcoutner.getvalue();

testcoutner.print();

testcoutner.increment(4);

testcoutner.print();

testcoutner.decrement(4);

testcoutner.print();

return 0;

}

4.

#include

using namespace std;

class Clsname

{

public:

void setx(int a)

{

x=a;

}

void sety(int b)

{

y=b;

}

int getx()

{ return x;}

int gety()

{return y;}

Clsname();

Clsname(int a);

Clsname(int a, int b);

void showClsname(); private:

int x;

int y;

};

Clsname::Clsname() {

x=1;

y=1;

}

Clsname::Clsname(int a) {

x=a;

}

Clsname::Clsname(int a, int b)

{

x=a;

y=b;

}

inline void Clsname::showClsname()

{ cout<

}

void main()

{

int a,b,i,j;

cout<<"please enter the number a and b:"<

cin>>a>>b;

Clsname op1(1,1);

op1.setx(1);

op1.sety(1);

i=op1.getx();

j=op1.gety();

op1.showClsname();

cout<<"x="<>G.vexnum>>G.arcnum; cout<<"请输入顶点值:"<>t; G.vertices[i].data=t; G.vertices[i].firstarc=NULL; } int m,n; for(int k=1;k<=G.arcnum;k++){ cout<<"请输入第"<

材料力学实验报告标准答案

力学实验报告 标准答案 长安大学力学实验教学中心 目录 一、拉伸实验 (2) 二、压缩实验 (4)

三、拉压弹性模量E测定实验 (6) 四、低碳钢剪切弹性模量G测定实验 (8) 五、扭转破坏实验 (10) 六、纯弯曲梁正应力实验 (12) 七、弯扭组合变形时的主应力测定实验 (15) 八、压杆稳定实验 (18) 一、拉伸实验报告标准答案 问题讨论: 1、为何在拉伸试验中必须采用标准试件或比例试件,材料相同而长短不同的试 件延伸率是否相同? 答:拉伸实验中延伸率的大小与材料有关,同时与试件的标距长度有关.试件局部变形较大的断口部分,在不同长度的标距中所占比例也不同.因此拉伸试验中必须采用标准试件或比例试件,这样其有关性质才具可比性. 材料相同而长短不同的试件通常情况下延伸率是不同的(横截面面积与长度存在某种特殊比例关系除外). 2、分析比较两种材料在拉伸时的力学性能及断口特征. 答:试件在拉伸时铸铁延伸率小表现为脆性,低碳钢延伸率大表现为塑性;低碳钢具有屈服现象,铸铁无.低碳钢断口为直径缩小的杯锥状,且有450的剪切唇,

断口组织为暗灰色纤维状组织。铸铁断口为横断面,为闪光的结晶状组织。. 二、压缩实验报告标准答案 问题讨论: 1、分析铸铁试件压缩破坏的原因. 答:铸铁试件压缩破坏,其断口与轴线成45°~50°夹角,在断口位置剪应力已达到其抵抗的最大极限值,抗剪先于抗压达到极限,因而发生斜面剪切破坏。 2、低碳钢与铸铁在压缩时力学性质有何不同? 结构工程中怎样合理使用这 两类不同性质的材料? 答:低碳钢为塑性材料,抗压屈服极限与抗拉屈服极限相近,此时试件不会发生断裂,随荷载增加发生塑性形变;铸铁为脆性材料,抗压强度远大于抗拉强度,无屈服现象。压缩试验时,铸铁因达到剪切极限而被剪切破坏。 通过试验可以发现低碳钢材料塑性好,其抗剪能力弱于抗拉;抗拉与抗压相近。铸铁材料塑性差,其抗拉远小于抗压强度,抗剪优于抗拉低于抗压。 故在工程结构中塑性材料应用范围广,脆性材料最好处于受压状态,比如车床机座。 三、拉压弹性模量E测定试验报告 问题讨论: 1、试件的尺寸和形状对测定弹性模量有无影响?为什么? 答: 弹性模量是材料的固有性质,与试件的尺寸和形状无关。 2、逐级加载方法所求出的弹性模量与一次加载到最终值所求出的弹性模量是 否相同?为什么必须用逐级加载的方法测弹性模量? 答: 逐级加载方法所求出的弹性模量与一次加载到最终值所求出的弹性模量不相同,采用逐级加载方法所求出的弹性模量可降低误差,同时可以验证材料此时是否处于弹性状态,以保证实验结果的可靠性。 四、低碳钢剪切弹性模量G测定实验报告标准答案 问题讨论: 1、试验过程中,有时候在加砝码时,百分表指针不动,这是为什么?应采取什么 措施? 答:检查百分表是否接触测臂或超出百分表测量上限,应调整百分表位置。

标准实验报告(5)-防火墙设计实验

电子科技大学计算机科学与工程学院标准实验报告 (实验)课程名称计算机系统与网络安全技术 电子科技大学教务处制表

电子科技大学 实验报告 学生姓名:学号:指导教师: 实验地点:计算机学院大楼东307 实验时间: 一、实验室名称:安全实验室 二、实验项目名称:防火墙设计实验 三、实验学时:4学时 四、实验原理: 路由器对数据流的控制主要是通过设置Access list来实现(允许或拒绝通过)的。它是路由器中定义的一系列规则和策略的集合。路由器正是通过这些路由策略来限制数据包在网络中的流向和流量,从而起到“防火墙”的目的。 本实验在使用访问列表时定义了以下两个内容: a.通过指定访问列表名和访问条件,建立访问列表。 b.将访问列表应用到端口。 五、实验目的: 了解防火墙安全技术原理与应用,掌握防火墙配置方案的制定与具体配置方法。在路由器上配置防火墙,以阻止某些地址的报文或某些协议的报文通过。 六、实验内容: 1、配置包裹滤防火墙,将硬件路由器配置成如下功能:内部网络通过Serial0访问Internet,局域网对外提供www、ftp和MS SQL数据库服务。 2、用扫描软件进行扫描测试,根据测试结果调整规则设置。 3、利用攻击软件在模拟广域网环境中进行测试,并能根据测试结果调整规则设置。 七、实验器材(设备、元器件): 1、天工R1750路由器2台 2、交换机2台

3、PC机4台 4、背对背V3.5连线(DTE)1根 5、背对背V3.5连线(DCE)1根 6、直连网线6根 八、实验步骤: 1、按图9-1建立配置环境。 路由器 Console口 COM1口 PC机 图9-1 路由器配置线连接图 2、参照实验2的步骤,使用超级终端软件进行连接,按照以下顺序进行参数配置 每秒位数:9600 数据位:8 奇偶校验:无 停止位:1 数据流控制:无 3、在实验2的基础上进行防火墙配置 创建访问列表 用以下命令创建:ip access-list standard/extended name deny/permit {source[mask]|any} 将访问列表应用到端口 在接口配置模式下使用以下命令完成:ip access-group name in|out 扩展访问列表配置: 本次实验扩展访问列表配置为:允许任何新到的TCP与大于1023的目标端口连接;允许任何新来的TCP与主机192.168.1.1的SMTP连接。 ip access-list extended aaa permit tcp any 192.168.1.1 255.255.255.0 gt 1023 permit tcp any 192.168.1.1 255.255.255.0 eq 25 interface fastethernet 1/0 ip access-group aaa in 注:小于指定的服务端口用关键字lt,大于服务端口gt,等于服务端口用关键字eq,不等于服务端口用关键字neq;协议号也可以任意指定。 九、实验数据及结果分析: 实验测试1: 配置防火墙之前,WEB服务器没有受到网络攻击时,一切正常。

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