面向对象程序设计实验报告1.docx

上传人:b****5 文档编号:7484804 上传时间:2023-05-11 格式:DOCX 页数:36 大小:174.81KB
下载 相关 举报
面向对象程序设计实验报告1.docx_第1页
第1页 / 共36页
面向对象程序设计实验报告1.docx_第2页
第2页 / 共36页
面向对象程序设计实验报告1.docx_第3页
第3页 / 共36页
面向对象程序设计实验报告1.docx_第4页
第4页 / 共36页
面向对象程序设计实验报告1.docx_第5页
第5页 / 共36页
面向对象程序设计实验报告1.docx_第6页
第6页 / 共36页
面向对象程序设计实验报告1.docx_第7页
第7页 / 共36页
面向对象程序设计实验报告1.docx_第8页
第8页 / 共36页
面向对象程序设计实验报告1.docx_第9页
第9页 / 共36页
面向对象程序设计实验报告1.docx_第10页
第10页 / 共36页
面向对象程序设计实验报告1.docx_第11页
第11页 / 共36页
面向对象程序设计实验报告1.docx_第12页
第12页 / 共36页
面向对象程序设计实验报告1.docx_第13页
第13页 / 共36页
面向对象程序设计实验报告1.docx_第14页
第14页 / 共36页
面向对象程序设计实验报告1.docx_第15页
第15页 / 共36页
面向对象程序设计实验报告1.docx_第16页
第16页 / 共36页
面向对象程序设计实验报告1.docx_第17页
第17页 / 共36页
面向对象程序设计实验报告1.docx_第18页
第18页 / 共36页
面向对象程序设计实验报告1.docx_第19页
第19页 / 共36页
面向对象程序设计实验报告1.docx_第20页
第20页 / 共36页
亲,该文档总共36页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

面向对象程序设计实验报告1.docx

《面向对象程序设计实验报告1.docx》由会员分享,可在线阅读,更多相关《面向对象程序设计实验报告1.docx(36页珍藏版)》请在冰点文库上搜索。

面向对象程序设计实验报告1.docx

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

实验一VisualC++环境

实验名称:

实验一VisualC++环境

实验目的:

⒈熟悉VC++的集成开发环境,学习运行一个C++程序的步骤。

⒉了解几种运算符的使用规则。

⒊掌握变量命名规则,学会变量的定义和使用。

 

实验原理:

利用VC++编辑环境的便利以及C++运算符及变量的特点来编写程序。

实验设备:

电脑,VISUALC++6.0

实验内容:

⒈通过一个最简单的程序熟悉用VC++来调试Dos程序的步骤:

⑴使用VisualC++6.0对一个C++程序进行编辑、编译、连接和运行。

#include

voidmain()

{cout<<”Iamastudent”<

实验代码:

#include

voidmain()

{cout<<”Iamastudent”<

实验结果

 

实验心得:

通过本实验熟悉了VC++的集成开发环境,学习运行一个C++程序的步骤。

了解几种运算符的使用规则,掌握变量命名规则,学会变量的定义和使用。

 

实验二结构化程序设计

实验名称:

实验二结构化程序设计

实验目的:

⒈熟悉和理解C++语言中的类型简单数据(整型、实型、字符型)、运算、表达式;

⒉掌握常见格式控制字符对输出结果的控制作用;

⒊能利用学习的数据类型,编制简单的C++程序;

⒋初步学习调试方法。

实验原理:

利用对条件、循环语句、数组的掌握进行编程。

实验设备:

电脑,VISUALC++6.0

实验内容:

1.写出一个程序测试整型、字符型数据表示,并输出以验证是否正确。

#include

main()

{

intx=010,y=10,z=0x10;/*整型数据表示*/

charc1='M',c2='\x4d',c3='\115',c4=77,c;/*字符型数据表示*/

 

/*整型数据的输出*/

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

/*数据以原进制输出,注意是否有前导0或0x*/

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

/*数据以10进制输出,换算到10进制,结果对吗?

*/

/*字符型数据的输出*/

printf("c1=%c,c2=%x,c3=%o,c4=%d\n",c1,c2,c3,c4);

/*数据以原进制输出,注意是否有前导0或0x*/

printf("c1=%c,c2=%c,c3=%c,c4=%c\n",c1,c2,c3,c4);

/*结果都是什么字符?

,也就是说字符可以自由的表示成几种形式?

*/

printf("c1=%d,c2=%d,c3=%d,c4=%d\n",c1,c2,c3,c4);

/*看看这些字符的10进制ASCII码,哦,ASCII码一样,同一种字符*/

 

/*字符型数据参与算术运算*/

c=c1+32;/*字符怎么参加了数学运算,哦,是字符对应的ASCII码-整数

/*参与数学运算;结果还是一个整数-另外一个字符的ASCII码*/

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

/*看看这个字符是什么?

哇,'M'+32='m'了,看看ASCII码表,原来如此!

*/

}

2.编写程序任意输入一个三位,将其反向输出。

如输入123,输出321。

3.编程按分段统计学生成绩,输入为负数时结束。

要求按90-100、80-89、70-79、60-69、60以下五档分别统计各分数段人数(用if语句和switch语句编写程序)。

 

4.用do…while,while,for三种循环语句求出1+3+5+….+101的和,输出结果。

5.先定义一个含有30个整型元素的数组,依次赋予从2开始的偶数,然后按顺序每五个数的平均值放在另一个数组中,并要求按每行6个数输出结果。

实验代码:

2。

#include

usingnamespacestd;

intmain()

{

intnum,a[3];

cout<<"pleaseentertheinteger\n";

cin>>num;

for(inti=0;i<3;i++)

{

a[i]=num%10;

num/=10;

}

for(i=0;i<2;i++)

for(intj=0;j<(2-i);j++)

if(a[j]

{

inttmp=a[j];

a[j]=a[j+1];

a[j+1]=tmp;

}

intresult=0;

intcou=100;

for(i=0;i<3;i++)

{

result+=a[i]*cou;

cou/=10;

}

cout<<"theresultis:

"<

return0;

3.#include

voidmain()

{inta,b,c,d,e;

doublescore;

a=b=c=d=0;

cin>>score;

while(score>=0)

{

if(score>=90)

a++;

else

if(score>=80)

b++;

else

if(score>=70)

c++;

else

if(score>=60)

d++;

elsee++;

cin>>score;

}

count<

 

}

 

4.#include

usingnamespacestd;

 

voidmain()

{

inti=1,j=1;//初始化,进入循环

longsum1=0,sum2=0,sum3=0;//记录和初值为0

longk;//过渡值

 

for(i=1;i<=10;i++)

{

k=1;

for(j=1;j<=i;j++)k=k*j;//求j的阶

sum1=sum1+k;

}

cout<<"usefor,theansweris"<

 

i=1,j=1;//初始化,进入循环

while(i<=10)

{

k=1;j=1;

while(j<=i)

{

k=k*j;//求j的阶

j++;

}

sum2=sum2+k;

i++;

}

cout<<"usewhile,theansweris"<

 

i=1,j=1;//初始化,进入循环

do{

k=1;j=1;

do{

k=k*j;//求j的阶

j++;

}while(j<=i);

sum3=sum3+k;

i++;

}while(i<=10);

 

cout<<"usedowhile,theansweris"<

}

5#include

voidmain()

{

inta[30],i,j=0,b[6][5],p,k;

intc[6];

for(i=0;i<30;i++)

a[i]=2*(i+1);

for(i=0;i<30;i++)

 

{

printf("%3d",a[i]);

j++;

if(j%5==0)printf("\n");}

for(p=0;p<5;p++)

for(k=0;k<6;k++)

b[k][p]=a[5*k+p];

for(k=0;k<6;k++)

c[k]=(b[k][0]+b[k][1]+b[k][2]+b[k][3]+b[k][4])/5;

for(k=0;k<6;k++)

{printf("%3d",c[k]);}

printf("\n");

}

 

实验结果:

2

}

5

 

实验心得:

通过本次实验熟悉和理解C++语言中的类型简单数据(整型、实型、字符型)、运算、表达式;掌握常见格式控制字符对输出结果的控制作用;能利用学习的数据类型,编制简单的C++程序;初步学习调试方法。

 

实验三函数的应用

实验名称:

实验三函数与作用域

实验目的:

1.掌握函数声明、定义和使用的方法;

2.掌握形式参数与实在参数之间的对应关系;

3.掌握函数调用时,形参、实参之间的“值传递”和“地址传递”的区别;

4.掌握全局变量、局部变量、静态变量的使用方法。

实验原理:

利用函数的知识编程。

实验设备:

电脑,VISUALC++6.0

实验内容:

1.编写一个函数,用来计算从键盘上输入的整数的阶乘。

2.编写函数判断一个数是否是素数,在主程序中实现输入、输出。

3.编写一个程序,设计一个函数可以计算并返回输入的4个数的平均值。

实验代码:

1.#include

voidmain()

{

intm,i,sum=1;

 

cin>>m;

for(i=m;i>0;i--)

{

sum*=i;

}

cout<<"sum="<

}

2.

#include

#include

intfun(intnum)

{

intflag,k,i;

flag=0;

k=int(sqrt(num));

for(i=2;i<=k;i++)

{

if(num%i==0)

{

flag=1;

break;

}

}

returnflag;

}

voidmain()

{

intx,y;

cin>>x;

y=fun(x);

if(y==0)

cout<<"theyinputnumissushu"<

else

cout<<"theyinputnumisnotsushu"<

}

3.

#include

#include

floatfun(floata,floatb,floatc,floatd)

{

floatsum=0.0;

floatx=a+b+c+d;

sum=x/4;

returnsum;

}

voidmain()

{

floata,b,c,d;

floatm;

cin>>a;

cin>>b;

cin>>c;

cin>>d;

m=fun(a,b,c,d);

cout<<"average="<

}

 

实验结果:

1

2

3

 

实验心得:

通过本次实验掌握了函数声明、定义和使用的方法;掌握了形式参数与实在参数之间的对应关系;掌握函数调用时,形参、实参之间的“值传递”和“地址传递”的区别;掌握了全局变量、局部变量、静态变量的使用方法。

 

实验四指针和引用

实验名称:

实验四指针和引用

实验目的:

1.熟练掌握指针、地址、指针类型、void指针、空指针、引用等概念;

2.熟练掌握指针变量的定义和初始化、指针的间接访问、指针的加减运算和指针表达式;

3.学会使用数组的指针和指向数组的指针变量;

4.学会使用字符串的指针和指向字符串的指针变量;

5.学习用指针和引用给函数传递参数的方法。

实验原理:

利用C++指针技术编程。

实验设备:

电脑,VISUALC++6.0

实验内容:

1.用户输入任意一个字符串和字符c,寻找输入串中第一个c字符出现的位置(若有的话),并输出从c字符开始的子串以及c字符在输入串中的下标号;若输入串中不出现c字符的话,输出“nomatchfound”。

实验代码:

1#include

usingnamespacestd;

 

char*insert(char*s,charc,intn)

{

intlen=strlen(s);

if(n<=0){

char*p=s;

p=p+len+1;

do{

*p=*(--p);

}while(p>s);

(*p)=c;

}elseif(n>=len){

*(s+len)=c;

*(s+len+1)='\0';

}else{

char*p=s+len+1;

do{

*p=*(--p);

}while(p>s+n);

(*p)=c;

}

returns;

}

 

intmain()

{

charas[20]="thisisanExample.";

charc;

c=getchar();

cout<

cout<

insert(as,c,17);

cout<<"insert(as,c,17):

"<

cout<

insert(as,c,6);

cout<<"insert(as,c,6):

"<

cout<

insert(as,c,0);

cout<<"insert(as,c,0):

"<

cout<

}

 

实验结果:

 

实验心得:

通过本次实验熟练掌握了指针、地址、指针类型、void指针、空指针、引用等概念;熟练掌握了指针变量的定义和初始化、指针的间接访问、指针的加减运算和指针表达式;学会使用数组的指针和指向数组的指针变量;学会使用字符串的指针和指向字符串的指针变量;学习用指针和引用给函数传递参数的方法

实验五类与对象I

实验名称:

实验五类和对象Ⅰ

实验目的:

1.理解类的成员的访问控制的含义,公有、私有和保护成员的区别;

2.掌握构造函数和析构函数的含义与作用、定义方式和执行过程,能够根据要求正确定义和重载构造函数;

3.学习静态数据成员和静态成员函数的使用。

实验原理:

利用类的成员、构造函数、析构函数、类的封装等特性进行编程。

实验设备:

电脑,VISUALC++6.0

实验内容:

 1.定义一个长方形类, 并且在程序中创建一个该类的对象, 体现出构造函数、析构函数的调用、执行过程和重载构造函数的使用。

2.设计一个矩阵类matrix(矩阵用二维数组实现), 有分配空间和对矩阵附值的功能。

要求:

(1)类外定义一个函数mul(), 实现两矩阵的相乘,要求分别用传值调用、引用调用和传址调用三种方式实现。

(2)在matrix类中定义一个静态数据成员, 记录当前的所有matrix对象的数量。

(3)定义一个友元函数实现矩阵转置功能。

实验代码:

#include

usingnamespacestd;

classcmatrix23

{

private:

inta[2][3];

public:

cmatrix23operator+(constcmatrix23&mat);

friendostream&operator<<(ostream&os,constcmatrix23&mat);

friendistr

eam&operator>>(istream&is,cmatrix23&mat);

};

cmatrix23cmatrix23:

:

operator+(constcmatrix23&mat)

{

cmatrix23tmp;

for(inti=0;i<2;++i)

{

for(

intj=0;j<3;++j)

{

tmp.a[i][j]

=this->a[i][j]+mat.a[i][j];

}

}

returntmp;

}

ostream&operator<<(ostream&os,constcmatrix23&mat)

{

for(inti=0;i<2;++i)

{

for(

intj=0;j<3;++j)

{

os<

}

os<

}

returnos;

}

istream&operator>>(istream&is,cmatrix23&mat)

{

for(inti=0;i<2;++i)

{

for(

intj=0;j<3;++j)

{

cout<<"请输入第"<

";

is>>mat.a[i][j];

}

}

returnis;

}

intmain()

{

cmatrix23mat1;

cin>>mat1;

cout<

cmatrix23mat2;

cin>>mat2;

cout<

cout<

return0;

}

(2)#include

usingnamespacestd;

classcomplex{

public:

doublereal;

doubleimage;

complex(){real=0,image=0;};

complex(doublek,doublex);

voiddisplay();

complexoperator+(complex&p);

complexoperator-(complex&y);

complexoperator*(complex&p);

complexoperator/(complex&p);

};

complex:

:

complex(doublek,doublex):

real(k),image(x){}

complexcomplex:

:

operator+(complex&p)

{

complexc;

c.real=real+p.real;

c.image=image+p.image;

returnc;

}

complexcomplex:

:

operator-(complex&y)

{

complexc;

c.real=real-y.real;

c.image=image-y.image;

returnc;

}

complexcomplex:

:

operator*(complex&p)

{

complexc;

c.real=real*p.real;

c.image=image*p.image;

returnc;

}

complexcomplex:

:

operator/(complex&p)

{

complexc;

c.real=real/p.real;

c.image=image/p.image;

returnc;

}

voidcomplex:

:

display()

{cout<<"("<

intmain()

{

complexc1(7,8),c2(2,9),c3;

c3=c1+c2;

cout<<"c1+c2";

c3.display();

c3=c1-c2;

cout<<"c1-c2";

c3.display();

c3=c1*c2;

cout<<"c1*c2";

c3.display();

c3=c1/c2;

cout<<"c1/c2";

c3.display();

return0;

}

(3)#include

usingnamespacestd;

classM

{public:

M();

friendMoperator+(M&,M&);

voidinput();

voiddisplay();

private:

intmat[2][3];

};

 

Ma:

:

M()

{for(inti=0;i<2;i++)

for(intj=0;j<3;j++)

mat[i][j]=0;

}

 

Moperator+(M&a,M&b)

{Mc;

for(inti=0;i<2;i++)

for(intj=0;j<3;j++)

{c.mat[i][j]=a.mat[i][j]+b.mat[i][j];}

returnc;

}

voidM:

:

input()

{cout<<"inputvalueofm:

"<

for(inti=0;i<2;i++)

for(intj=0;j<3;j++)

cin>>mat[i][j];

}

 

voidM:

:

display()

{for(inti=0;i<2;i++)

{for(intj=0;j<3;j++)

{cout<

cout<

}

 

intmain()

{Ma,b,c;

a.input();

b.input();

cout<

"<

a.display();

cout<

"<

b.display();

c=a+b;

cout<

"<

c.display();

return0;

}

 

实验结果:

 

实验心得:

通过本实验理解了类的成员的访问控制的含义,公有、私有和保护成员的区别;.掌握构造函数和析构函数的含义与作用、定义方式和执行过程,能够根据要求正确定义和重载构造函数;学习静态数据成员和静态成员函数的使用。

 

实验六继承与派生

实验名称:

实验六继承与派生

实验目的:

1.理解派生类与基类的关系

2.理解派生类继承方式

3.掌握单继承和多继承使用方法

4.理解虚基类概念

实验原理:

利用继承与派生的原理进行编程。

实验设备:

电脑,VISUALC++6.0

实验内容:

1.编一个使用派生类的程序,设计一个包含圆和圆柱的几何尺寸的类,它用内部数据建立几何形状并显示它们的尺寸、面积和体积。

2.设计一个圆类和桌子类,再设计一个圆桌类,它是从前两个类派生出来的。

要求输出圆桌的高度、面积、颜色等数据。

实验代码:

1#include

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

当前位置:首页 > 党团工作 > 党团建设

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2