C++项目分块示例.docx

上传人:b****7 文档编号:10304771 上传时间:2023-02-10 格式:DOCX 页数:11 大小:104.52KB
下载 相关 举报
C++项目分块示例.docx_第1页
第1页 / 共11页
C++项目分块示例.docx_第2页
第2页 / 共11页
C++项目分块示例.docx_第3页
第3页 / 共11页
C++项目分块示例.docx_第4页
第4页 / 共11页
C++项目分块示例.docx_第5页
第5页 / 共11页
点击查看更多>>
下载资源
资源描述

C++项目分块示例.docx

《C++项目分块示例.docx》由会员分享,可在线阅读,更多相关《C++项目分块示例.docx(11页珍藏版)》请在冰豆网上搜索。

C++项目分块示例.docx

C++项目分块示例

C++项目分块示例

第一部分:

实验分析与设计(可加页)

一、实验内容描述(问题域描述)

1.下面的程序在编译时会出错,请修改程序,使之能正确运行。

然后得到的正确程序分成3个文件。

文件MyClass.h包括类的定义,文件MyClass.cpp包括类成员函数的实现,文件App.cpp包括类的使用。

调试、运行该程序,使之获得正确结果。

2.已知两个矩形的长和宽,用面向对象的概念编程求它们的面积和周长。

假设矩形1的长和宽分别为20和50;矩形2的长和宽分别为3.6和4.5。

(先定义矩形类再实例化两个对象)

3.

(1)为IntArray加上析构函数并编译运行程序,体会类的构造函数和析构函数的作用。

(2)程序中,类IntArray的三个构造函数都是以相似的方式来实现的。

一般来说,当两个或多个函数重复相同的代码时,可将这部分代码抽取出来,形成独立的函数,以便共享。

以后如果需要改变这些实现,则只需改变一次,而且这种实现的共享本质更容易为大家所理解。

怎样把构造函数中的代码抽取出来形成独立的共享函数呢?

请给出一种可能的实现。

按你给出的实现方法修改程序并重新编译运行。

4.试定义一个三角形Triangle类,在Triangle类中以点myPoint类的3个对象p1、p2、p3作为数据成员,表示三角形的三个顶点。

Triangle类具有计算三角形的周长和面积的功能。

请编写程序上机调试并运行。

二、实验基本原理与设计(流程图与程序)

1.

//MyClass.h

classMyClass

{

public:

MyClass(){x=0;y=0;}

MyClass(inta,intb);

Print();

private:

intx,y;

};

//MyClass.cpp

#include"MyClass.h"

#include

MyClass:

:

MyClass(inta,intb)

{

x=a;

y=b;

}

MyClass:

:

Print()

{

std:

:

cout<<"x="<

:

endl;

std:

:

cout<<"y="<

:

endl;

}

//main.cpp

#include

#include"MyClass.cpp"

usingnamespacestd;

intmain()

{

MyClassobj1(1,3),obj2(5,8);

obj1.Print();

obj2.Print();

return0;

}

2.

//Triangle.h

classTrangle

{

private:

intx,y;

public:

Trangle();

Trangle(inta,intb);

area();

length();

};

//Triangle.cpp

#include"Trangle.h"

#include

Trangle:

:

Trangle()

{

x=0;

y=0;

}

Trangle:

:

Trangle(inta,intb)

{

x=a;

y=b;

}

Trangle:

:

area()

{

returnx*y;

}

Trangle:

:

length()

{

return2*(x+y);

}

//main.cpp

#include

#include"Trangle.cpp"

intmain(intargc,char**argv){

TrangleA(20,50);

TrangleB(3.6,4.5);

std:

:

cout<<"A的面积:

"<

"<

:

endl;

std:

:

cout<<"B的面积:

"<

"<

:

endl;

return0;

}

3.

#include

#include

usingnamespacestd;

classIntArray{

public:

IntArray(intsz);//数组初始化为sz个元素,初值全为0

IntArray(int*array,intsz);//用静态数组array的前sz个元素初始化新数组

IntArray(constIntArray&rhs);//拷贝构造函数

~IntArray()

{

cout<<"析构函数被调用"<

}

InitIa(int*a,intsz);

voidprintAll();

private:

int*ia;

intsize;

};

IntArray:

:

InitIa(int*a,intsz)

{

size=sz;

ia=newint[sz];

if(NULL==a)memset(ia,0,sizeof(int)*sz);

else

{

for(inti=0;i

ia[i]=a[i];

}

}

IntArray:

:

IntArray(intsz){

InitIa(NULL,sz);

}

IntArray:

:

IntArray(int*array,intsz){

InitIa(array,sz);

}

IntArray:

:

IntArray(constIntArray&rhs)

{

InitIa(rhs.ia,rhs.size);

}

voidIntArray:

:

printAll()

{

for(intix=0;ix

cout<

cout<

}

intmain()

{

inta[10]={1,2,3,4,5,6,7,8,9,10};

IntArrayarr1(10),arr2(a,5),arr3(arr2);

arr1.printAll();

arr2.printAll();

arr3.printAll();

return0;

}

4.

#include

#include

classmyPoint{

public:

myPoint(doublex0=0.0,doubley0=0.0):

x(x0),y(y0){}

myPoint(myPoint&np):

x(np.x),y(np.y){}

doubleGetX(){returnx;}

doubleGetY(){returny;}

voidSetX(doublex0){x=x0;}

voidSetY(doubley0){x=y0;}

voidSetPoint(doublex0,doubley0){x=x0;y=y0;}

voidSetPoint(myPoint&np){x=np.x;y=np.y;}

doubleGetLength(myPointp){

returnsqrt((x-p.x)*(x-p.x)+(y-p.y)*(y-p.y));

}

voidPrintit(){std:

:

cout<<"("<

private:

doublex,y;

};

classTriangle{

public:

doubleGetLength(myPointp1,myPointp2,myPointp3)

{

return(p1.GetLength(p2)+p2.GetLength(p3)+p3.GetLength(p1));

}

doubleGetArea(myPointp1,myPointp2,myPointp3)

{

doublea,b,c,s,area;

a=p1.GetLength(p2);

b=p2.GetLength(p3);

c=p3.GetLength(p1);

s=0.5*(a+b+c);

area=sqrt(s*(s-a)*(s-b)*(s-c));

returnarea;

}

};

intmain(intargc,char**argv){

myPointa(0,0),b(3,0),c(0,4);

Trianglet;

std:

:

cout<<"area="<

:

endl;

std:

:

cout<<"length="<

:

endl;

return0;

}

三、主要仪器设备及耗材

1.PC机

2.开发环境(比如:

VC,Eclipse)

第二部分:

实验调试与结果分析(可加页)

一、调试过程(包括调试方法描述、实验数据记录,实验现象记录,实验过程发现的问题等)

实验一:

只需要稍微修改一点程序。

实验二:

写出来的程序没有错误就可以了。

实验三:

了解构造函数还有析构函数。

实验四:

通过类的定义,函数的运用,试调过后,就可以运行。

二、实验结果及分析(包括结果描述、实验现象分析、影响因素讨论、综合分析和结论等)

1.结果描述

实验一:

如图为实验输出。

实验二:

如图

实验三:

如图

实验四:

如图

2.实验现象分析

实验现象如上面图片所示。

实验能够正确的运行,并且可以得到自己所想要的结果。

3.影响因素讨论

我认为影响的只是数据不同可能会得出不同的结果,还有就是可能有些地方函数调用有错误,从而引起实验的错误,或者开发环境有问题。

4.算法分析(包括时间和空间)

实验一:

简单的实验,只要把已经给出的代码放到不同的头文件就可以了。

实验二:

求矩形的面积和周长,直接可以用简单的数学思维想就可以了,周长等于:

2(a+b)面积等于a·b。

实验三:

主要是要了解构造函数和析构函数的作用,只要了解了,函数很简单。

实验四:

周长和面积的算法如上图所示,主要算法,重要知道在坐标上知道三个顶点如何求三角形的面积和周长就可以。

5.结论

了解了项目工程中分文件编程和构造函数和析构函数的使用

以及初步了解了面相对象程序设计的基本

掌握了静态成员和常成员的使用。

三、实验小结、建议及体会

熟悉了C++开发环境。

掌握了多文件结构程序项目的建立过程。

初步掌握了面向对象程序的多文件结构项目的开发运行步骤。

掌握了类的定义和使用以及类对象的声明和使用方法,理解具有不同访问属性的成员的访问方式。

掌握了构造函数和析构函数的作用和编写方法。

了解并掌握了静态成员、常成员的使用。

 

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 自然科学 > 数学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1