配色: 字号:
C++实验报告
2013-06-16 | 阅:  转:  |  分享 
  
南阳理工学院

C++上机实验指导书

(2013版)

软件学院·软件工程教研室

2013.1

目录

实验1C++编程环境实践 1

实验2基本数据类型、运算符和表达式 1

实验3选择和循环结构 2

实验4数组、指针、引用 4

实验5函数与重载 5

实验6类与对象(一) 6

实验7类与对象(二) 8

实验8运算符重载 10

实验9继承 11

实验10多继承 13

实验11多态与虚函数(一) 14

实验12多态与虚函数(二) 15



实验1C++编程环境实践

一、实验目的

1.熟悉VS2010编程环境;

2.编制简单C++程序并运行;

3.熟悉C++的编辑、编译、连接和运行过程。

二、实验内容及步骤

1.使用VS2010建立一个标准C++程序,编译、运行以下程序:



求两个整数的最大值。

通过cin输入变量值

用if-else语句比较,求出最大值

用cout显示计算结果



调试步骤和运行过程:

一:与c语言的编译环境相同,只是在命名文件时加上后缀.cpp.

二;用if-else语句,判断x,y的大小关系,将两者中大的复制给变量t.

三:在输入数据时注意在两数据间打上空格。



实验结果:

58

themaxoftwonumbersis8.



疑难小结:

一:关于代码的第一行:一般都是这样写:#includeusingnamespacestd;

而我习惯了c的编译风格,误写为:#include

结果,在组建时无误,无警告,而且运行的结果一样。

二:在输出时,由于习惯用printf函数输出:printf(“themaxoftwonumbersis%d\n",t);

与我上传的:cout<<"themaxoftwonumbersis"<
两者效果一样。

主要算法和程序清单:

#include

usingnamespacestd;

intmain()

{

intx,y,t;

cin>>x>>y;

if(x>y)

t=x;

elset=y;

cout<<"themaxoftwonumbersis"<
return0;

}

实验2基本数据类型、运算符和表达式

一、实验目的

1.熟练掌握基本的数据类型、基本的算术运算符和表达式。

2.掌握键盘输入和屏幕输出方式。

3.能够运用基本的编程知识编写简单的程序。



二、实验内容及步骤

1、三个简单的求值计算

分别输入圆柱体的半径和高,求体积;输入球半径,求其表面积;输入长方体的长、宽、高、求其体积。



2、编写一个程序,完成以下内容:

(1)累计和显示整1~5的和。

(2)计算1~5相加的平均值

3.设有变量定义如下:

inti=8,j=12;

doublex=3.14,y=90

希望得到如下的输出结果:

i=10j=c

x=6.28000y=90

请编程实现。

4.设有如下语句:

floatx=100,y=3.14;

chara=’\t’,b=’s’;

cout<<”xis”<
cout<
cout<
则最终的输出结果是什么?

5、请编程提示并接收用户输入的三角形的三条边长,然后用三边面积公式计算三角形的面积,最后输出求的的面积值。

计算方法:设a、b、c为三条边长



调试步骤和运行过程:

实验一:1.输入圆柱的高和底面半径,以及长方体的长,宽,高,

2.利用数学公式,求出表面积,体积。

实验二;1.用while控制循环,

2.求出和(sum),

3.用sum除以5,得出aver。

实验三:1.对于变量i,加2,

2.对照aiisc码,找出c的编码99,故变量j加87,

3.对x乘以2,在保留小数点后五位,

4.y原样输出。

实验四:1.此题关于输出流的控制,要把#include添上

2.其余按正常情况下输入。

实验五:1.为了保证能够成三角形,要对输入的数据进行判断,

2.利用数学知识对三角形三边进行判断,

3.利用数学上的海伦-秦韶九公式计算三角形面积。



实验结果:

实验一:222222

v1=25.12s=50.24v2=8

实验二;1+2+3+4+5=15aver=3

实验三:i=10j=c

x=6.28000y=90

实验四:Xis1003.14

s

实验五:333

s=3.89711



疑难小结:



一:关于数据的输出精度,以及小数点后保留几位小数

二;对于输出数据的处理,在C++中与C语言不一样,在C++还要写上#include

三:字符所对应的aiisc码,可以看做是一种整型数据

四:输入的数据不一定都是符合要求的,在特定的情况下,要进行判断

五:可以尝试把所学的数学知识运用到C++中

主要算法和程序清单:

实验一:#include

#definepi3.14

voidmain()

{

floatr1,h,v1,s,r2,v2,a,b,c;

cin>>r1>>h>>r2>>a>>b>>c;

v1=pir1r1h;

s=4pir2r2;

v2=abc;

cout<<"v1="<
}

实验二:#include

voidmain()

{

inti(1),sum(0);

floataver;

while(i<=5)

{

sum=sum+i;

i++;



}

aver=sum/5;

cout<<"1+2+3+4+5="<
}

实验三:#include

#include

usingnamespacestd;

voidmain()

{

inti(8),j(12);

doublex(3.14),y(90);

i=i+2;

j=99;

x=2x;

cout<<"i="<
cout<
}

实验四:#include

#include

usingnamespacestd;

voidmain()

{

floatx=100,y=3.14;

chara=''\t'',b=''s'';

cout<<"xis"<
cout<
cout<
}

实验五:#include

#include

usingnamespacestd;

intmain()

{

doublea,b,c,s,p;

intflag;

cout<<"pleaseinputthreenumbers:"<
cin>>a>>b>>c;

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

flag=1;

else

flag=0;

if(flag==1)

{

p=(a+b+c)/2;

s=sqrt(p(p-a)(p-b)(p-c));

cout<<"s="<
}

else

cout<<"youinputerrornumbers"<
return0;

}



实验3选择和循环结构



一、实验目的

1、熟练掌握if语句、switch语句、while语句、dowhile语句和for语句。

2、掌握选择结构和循环结构程序设计。

二、实验内容及步骤

求三个整数的最大值和最小值。

1)定义三个整形变量x1、x2、x3,并通过cin输入变量值

2)用if-else语句对三个整数进行比较,求出最大值和最小值

3)用cout显示计算结果



下面程序统计字符数组c中0、1、2及其他字符出现的次数,分别存放在变量i0、i1、i2中,统计结束后输出它们的值。要求:分析出现结果的原因,如何修改使结果正确。







判断用户输入的正整数n是否为素数,直到用户输入1为止。

用while循环读入正整数n

对于每个正整数n,采用for循环判断是否为素数。

打印输出判断结果



编写一个程序实现两个数之间简单的四则运算。在程序中,提示用户按表达式顺序输入操作数与运算符。

5.求!(即求1!+2!+…+10!)。



调试步骤和运行过程:



实验一:1.使用三个if-else语句分别判断x1与x2,x1与x3,x2与x3的大小关系。

实验二:1.题意是统计字符数组中0,1,2以及其他数字的个数

2.用for循环对数组处理,在for循环中设置switch语句

3.当遇到字符0时,则执行,io++,然后终止本次循环,同理对字符1.2,其他数字放在default语句中,

实验三:1.使用while(n!=1)控制循环输入

2.在while语句中使用bool判断条件是否满足,以便于在后面的if判断语句中控制输出结果

3.在while循环中,对输入数据从2到sqrt(n)判断,是否能被整除

实验四:1.这是一个求两个数的四则运算,但是除法中规定:除数不可为0

2.键盘输入三项:左边的数,运算符,右边的数,

3.使用if判断输入的运算符,以便于进行相应的操作

4.在进行除法运算时一定要满足两个条件:一:运算符为/,二:除数不为0;否则的话,就输出错误提示语句。

实验五:1.这是求1到10的阶乘和的问题,

2.使用for循环控制变量i,每一项的值设为j;

3.考虑到上一个阶乘项的值乘以i就是下一个阶乘的值,可设j=ji

4.然后执行:sum=sum+j



实验结果:



实验一:452

themaxofthreenumbersis5.

theminofthreenumbersis2

实验二:io=3

i1=4

i2=5

i3=7

实验三:输入一个正整数:2

2是素数!



4

4不是素数!



1

实验四:pleaseentertheleftnumder:operator:therightnumber

25

25=10

实验四(为了验证程序对输入数据的限制条件):pleaseenertheleftnumber:operator:therightnumber

5/0

youentererror.pleasehaveacheck!

实验五:sum=4037913



疑难小结:

一:三个数之间的大小比较,对于单独求最小值,或者求最小值来说比较容易,但将其全部输出则比较难

二;对于字符串中数字的处理中的switch语句的default语句,它包括了没有罗列出来的内容,但是如果没有default语句会怎样呢?

三;在写代码时,不一定会考虑到所有的情况,但是输入的内容是各种各样的,要对输入的内容有一定的限制或者处理,或者显示一些提示性语句

四:对于所求的问题,尤其是数学问题,可以尽量简化代码

主要算法和程序清单:



实验一:#include

usingnamespacestd;

intmain()

{

intx1,x2,x3,t,k;

cin>>x1>>x2>>x3;

if(x1>x2)

t=x1,k=x2;

elset=x2,k=x1;

if(x1>x3)

t=x1,k=x3;

elset=x3,k=x1;

if(x2>x3)

t=x2,k=x3;

elset=x3,k=x2;

cout<<"themaxofthreenumbersis"<
cout<<"theminofthreenumbersis"<
return0;

}

实验二:#include

usingnamespacestd;

intmain()

{

charc[]="0123456789001112222";

inti0=0,i1=0,i2=0,i3=0;

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



switch(c[i])

{

case''0'':i0++;continue;

case''1'':i1++;continue;

case''2'':i2++;continue;

default:i3++;

}



cout<<"i0="<
cout<<"i1="<
cout<<"i2="<
cout<<"i3="<
return0;

}

实验三:#include

#include

usingnamespacestd;

intmain()

{

intn,i;

boolflag=false;

cout<<"输入一正整数:";

cin>>n;

while(n!=1)

{

flag=true;

for(i=2;i<=sqrt(n);i++)

{

if((n%i==0)&&(n>=2))

flag=false;

break;

}



if(flag)

{

cout<
}

else

{

cout<
}

cin>>n;

}

return0;

}

实验四:#include

usingnamespacestd;

intmain()

{

doublea,b;

charoper;

cout<<"pleaseentertheleftnumber:operator:therightnumber"<
cin>>a>>oper>>b;

if(oper==''+'')cout<
elseif(oper==''-'')cout<
elseif(oper=='''')cout<
elseif(oper==''/''&&b!=0)cout<
elsecout<<"youentererror,pleasehaveacheck!"<
return0;

}

实验五:#include

usingnamespacestd;

intmain()

{

inti,j=1,sum=0;

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

{

j=ji;

sum=sum+j;

}

cout<<"sum="<
return0;

}

实验4数组、指针、引用

一、实验目的

掌握指针的声明、使用和运算;

学会数组与指针、函数与指针的使用方法。

掌握c++string的声明和使用方法。

熟悉引用的声明与特点。

实验内容及步骤

在主函数中输入一个字符串str1,调用函数将str1中的小标为奇数的字符取出构成一个新的字符串放入字符串str2中,(要求被调函数参数为str1和str2),在主函数中输出字符串str2.



编写程序:任意输入10个整数放于数组中,利用指针访问数组,求出该数组中的最大数max以及最小数min。



编写程序:输入一个字符串,将其中所有数字删除,并输出改动后的字符串及其长度,例如输入ab123df354adfx,输出abdfadfx.

4.输入一个字符串,将将它们按照字母由小到大地顺序排列并输出。(用string方法)。

5.编写程序:定义一个变量,一个指针,建立该变量的引用。对变量进行初始化,并将指针指向该变量,分别通过指针和引用改变该变量的值,并输出结果进行比较分析。

6.输入一个字符串,把其中的字符按照逆序输出。如输入LIGHT,则输出THGIL。(用string方法)。



调试步骤和运行过程:

一:此处用到调用函数,在主函数(main)中调用fun函数,在fun函数中有两个形参。用strlen函数测字符串str1的长度,并以他的长度值减去一,作为循环的条件。实现把str1下标的奇数赋值给str2,并在主函数(main)中输出。(使用正规版)

二:关于指针与数组的应用。键盘输入一维数组10个数字,指针指向数组,从而建立了指针与数组的关系,用起泡的方法(冒泡排序)从小到大排序。用指针指向数组的两端的数,自然就是最小与最大的数了。

三:键盘输入一串数字与字母并存的字符,在主函数(main)中调用delet函数,实现删除字符串中数字的目的。在delet函数中用strlen函数测字符串的长度,并以其值为循环的条件之一;使用逻辑运算符&&和||判断字符串中的字母;若是则累加计数,并输出。

四:键盘输入一字符串,在主函数中调用fan函数。在fan函数中测字符串的长度,并以其值减一作为循环条件(同上),使用if语句判断str[j]与str[j+1]的大小,并交换,从而得到已排好的新数组。

五:指针指向变量,通过改变变量的值,达到改变指针指向的值发生改变。

六:字符串的逆序排列:首先测键盘输入字符串的长度,由逆序排列好的字符串可知,可以把输入的字符串从中间分开,将两端的字符相互交换,就可以达到逆序排列的要求。



实验结果:



一:Inputastring:asdfghjklz

Theresult:sfhkz

二:Input10number:

-141214067825791

Thesortednumber:

-140167912142578

最小:最大;

-1478

三:Inputthestring:asd123fgh456jkl

Theresult:asdfghjkl

Thelength:9

四:Inputastring:asdfghjkl

Theresult:adfghjkls

五:1

2

六:pleaseenterastring:asdfghjkl

Lkjhgfdsa

疑难小结:

一:调用字符数组调用总是出错,或者在调用时没有起到调用效果;

二:数组的排序方法有好几种,在选择使用冒泡排序的时候控制循环的次数很关键;

三:在使用逻辑运算符时,一定要丢掉数学中的关系运算符,例如:’a’<=str<=’z’,在c++中不可以这么写,是比较容易忽略的错误。

四:关于一维数组中元素逆序排列,可以有两种方法:一,通过冒泡排序,交换下标,来达到逆序排列的效果;二,把数组从中间分开,由两端向中间,进行两元素交换,从而达到逆序排列。



主要算法和程序清单:

4.1:#include

#include

usingnamespacestd;

voidfun(charstr1[],charstr2[5])

{

inti;



for(i=0;i<=strlen(str1)-1;i++)

str2[i]=str1[2i+1];

puts(str2);

}

voidmain()

{

voidfun(charstr1[10],charstr2[5]);



charstr1[10],str2[5];

cout<<"Inputastring:\t";

gets(str1);

cout<<"Theresult:\t";

fun(str1,str2);



}

4.2:#include

usingnamespacestd;

intmain()

{

inta[10];

inti,j,t;

intp=a;

cout<<"input10numbers:"<
for(i=0;i<10;i++)//输入数字

scanf("%d",&a[i]);

cout<
for(j=0;j<9;j++)//进行9次循环,实现9趟比较

for(i=0;i<9-j;i++)//在每一趟中进行9-j次比较

if(a[i]>a[i+1])//相邻两个数比较

{t=a[i];a[i]=a[i+1];a[i+1]=t;}

cout<<"thesortednumbers:";

cout<
for(i=0;i<10;i++)



cout<


cout<<"最小:最大:"<
cout<<(p+0)<<''\t''<<(p+9)<
return0;

}

4.3:#include

#include

usingnamespacestd;

voiddelet(charstr[],intn)

{

inti;

cout<<"Theresult:";

for(i=0;i
{

if(str[i]>=''A''&&str[i]<=''Z''||str[i]>=''a''&&str[i]<=''z'')

{

cout<
n++;

}

}

cout<
cout<<"Thelength:"<
}

intmain()

{

charstring[100];

intn=0;

cout<<"Inputthestring:";

gets(string);

delet(string,n);

cout<
return0;



}

4.4:#include

#include

usingnamespacestd;

voidfun(charstr[])

{

inti,j;

chartemp;

for(i=0;i<=strlen(str)-1;i++)

{

for(j=0;j
if(str[j]>str[j+1])

{

temp=str[j];

str[j]=str[j+1];

str[j+1]=temp;

}

}

puts(str);

}

voidmain()

{

voidfun(charstr[]);



charstr[100];

cout<<"Inputastring:\t";

gets(str);

cout<<"Theresult:\t";

fun(str);



}

4.5:#include

usingnamespacestd;

voidmain()

{

inti=1;

intp=&i;

cout<
i=i+1;

cout<
}

4.6:#include

#include

usingnamespacestd;

intmain()

{

stringa;

inti,j;

chart;

cout<<"pleaseenterastring:";

cin>>a;

j=a.size();

for(i=0;i
{

t=a[i];

a[i]=a[j-i-1];

a[j-i-1]=t;

}

cout<
return0;

}

实验5函数与重载

一、实验目的

掌握函数的声明、调用、实参与形参的值传递关系、返回值;

理解函数重载,掌握函数重载的方法;

理解递归的概念,掌握递归函数的定义与使用;



实验内容及步骤

1.求三个数中最大的数(分别考虑整数、双精度数、长整数的情况)。

2.定义一个函数,判断三个整形边长能否构成三角形,如果是三角形,则判断它是否是直角三角形。

声明函数judge;

实现函数judge,根据输入的三个边长判断是否可以构成一个三角形;

在main中调用judge;

在main中根据judge的返回值判断是否是三角形,如果构成三角形则判断是否为直角三角形,并给出结论。



3.用重载函数实现两个整数和三个整数的排序,按照从小到大的顺序将排序结果输出。

声明函数sort为重载函数,并根据参数个数的不同分别进行定义;

在main中用cin分别输入两个整数和三个整数;

根据参数个数的不同,调用不同的函数,从而实现重载。



4.用递归法将一个整数n转换成字符串。例如,输入483,应输出字符串“483”。n的位数不确定,可以是任意位数的整数。

5.在主函数中输入一个字符串str,调用函数统计字符串中出现的字母,(含大小写)、数字、空格以及其他字符出现的次数,在主函数中输出统计结果。要求写两个版本的程序:(1)用指针作参数带回统计结果。(2)用引用作参数带回统计结果。

调试步骤和运行过程:

一:在功能函数中返回经过排序后的最大数,即三个数中的最后一个,其值返回主函数;

二:有数学知识知三角形的三边关系,在judge函数中用来判断能否构成三角形,返回的flag值若为真用来作为分辨是否为直角三角形,若假,则输出不能构成三角形。

三:使用交换两个数的方法来达到排序,在功能函数sort的类型定为void型则编译不能通过,改为int型后,能够输出,但是出现返回值0.

四:用fun函数专门用来将数字转化成字符,因为要一个一个的转化,所以要用到递归调用,递归调用的条件是此数字是否为个位数字,若是,直接转化为字符,不是的话,就把它除以10,再调用,直到为个位数。

五(一):刚开始时,没有“gets(s);”这句,在运行时没有输入,就直接出现了奇怪的结果”inputastring:letter:0letter:0digit:0space:0other:41”,还有实在for语句中的循环控制,原来写的是:“P!=’\n’,编译时总是出错,后来,经过改正,达到了实验要求。

五(二):引用与指针的关系是什么样子的,起初在上个实验的上略微改动一下,可是根本就运行不了,经过查阅资料书,得知声明引用时必须对齐初始化,而且两者的数据类型必须一致。知道了这些,还是忽略了对变量i赋初值0,忽略的结果是虽然输入了字符串,但是停止了运行。经改正后,可以达到实验要求。

实验结果:

一:915

9.62.31.1

654654632145654321

Intmax=9

Doublemax=9.6

Longmax=654654

二:pleaseinputabc

51213

Zhijiaosanjiaoxing

三:pleaseenter3numbers:

915

159

0

Pleaseenter2numbers:

42

24

0

四:inputnumbers:

456

Outputchar:

456

五(一):inputastring:todayis2013/05/07

Letter:7

Digit:8

Space:2

Other:2

五(二):inputastring:todayis2013/05/07

Letter:7

Digit:8

Space:2

Other:2

疑难小结:

一:在求数的大小时,原来编写的好像只能对后两个数进行比较大小,

二:在一个程序中有可能不止一个函数,多的函数的放置位置也重要,不然编译就不能通过,可是怎样才能够只通过改变函数的放置位置,就能让编译通过;

三:怎样消除输出结果的第四行与第八行的0,是输出的界面更美观;

四:递归调用函数不了解是怎么调用它本身,又是何时结束调用。调用的流程不清楚。

五(一):关于字符串的处理,而且用指针处理字符串,难度较大。输入的字符串可以像数组一样处理?可很多例题没有按照数组中的按数组下标处理。

五(二):引用既然相当于一个隐形指针,但是又与指针有区别,指针可以一针么多用,而引用只针对一个,在功能上它相当给变量起了一个别名而已。

主要算法和程序清单:

一:#include

usingnamespacestd;

intmax(inta,intb,intc)

{

intmax;

if(a>b){max=b;b=a;a=max;}



if(a>c){max=c;c=a;a=max;}



if(b>c){max=c;c=b;b=max;}



returnc;

}



doublemax(floata,doubleb,doublec)

{

doublemax;

if(a>b){max=b;b=a;a=max;}



if(a>c){max=c;c=a;a=max;}



if(b>c){max=c;c=b;b=max;}



returnc;

}



longmax(longa,longb,longc)

{

longmax;

if(a>b){max=b;b=a;a=max;}



if(a>c){max=c;c=a;a=max;}



if(b>c){max=c;c=b;b=max;}



returnc;

}

voidmain()

{

intai,bi,ci,i;

cin>>ai>>bi>>ci;

i=max(ai,bi,ci);

doublead,bd,cd,d;

cin>>ad>>bd>>cd;

d=max(ad,bd,cd);

longal,bl,cl,l;

cin>>al>>bl>>cl;

l=max(al,bl,cl);



cout<<"intmax="<
cout<<"doublemax="<
cout<<"longmax="<


}

二:

#include

usingnamespacestd;

intjudge(intx,inty,intz)

{

intflag;

if((x+y>z)&&(x+z>y)&&(y+z>x))

flag=1;

else

flag=0;

returnflag;

}

voidmain()

{

intjudge(intx,inty,intz);

floata,b,c,cosA,cosB,cosC;

intflag;

cout<<"pleaseinputabc"<
cin>>a>>b>>c;

flag=judge(a,b,c);

cosA=(bb+cc-aa)/(2bc);

cosB=(aa+cc-bb)/(2ac);

cosC=(aa+bb-cc)/(2ab);

if(flag==1)

{

if(cosA==0||cosB==0||cosC==0)

cout<<"zhijiaosanjiaoxing"<
Else cout<<"feizhijiaosanjaioxing"<
}

else

cout<<"bunenggouchengsanjiaoxing"<
}

三:#include

usingnamespacestd;

intsort(intm1,intm2,intm3)

{

intt;

if(m1>m2)

{t=m1;m1=m2;m2=t;}

if(m1>m3)

{t=m1;m1=m3;m3=t;}

if(m2>m3)

{t=m2;m2=m3;m3=t;}

cout<
return0;

}



intsort(intn1,intn2)

{

intp;

if(n1>n2)

{p=n1;n1=n2;n2=p;}

cout<
return0;

}

intmain()

{

inta,b,c;

intx,y;

cout<<"pleaseenter3numbers:"<
cin>>a>>b>>c;

cout<
cout<<"pleaseenter2numbers:"<
cin>>x>>y;

cout<
return0;

}

四:

#include

usingnamespacestd;

intmain()

{

voidfun(intn);

intnumbers;

cout<<"inputnumbers:"<
cin>>numbers;

cout<<"outputchar:"<
fun(numbers);

cout<
return0;

}

voidfun(intn)

{

inti;

charc;

if((i=n/10)!=0)

fun(i);

c=n%10+''0'';

cout<<""<
}



五(一):#include

#include

usingnamespacestd;

intmain()

{

intletter=0,digit=0,space=0,other=0;

chars[37];

charp;

cout<<"inputastring:";

gets(s);

for(p=s;p!=''\0'';p++)

if(''a''<=p&&p<=''z'')

++letter;

elseif(p>=''0''&&p<=''9'')

++digit;

elseif(p=='''')

++space;

else++other;

cout<<"letter:"<
cout<<"digit:"<
cout<<"space:"<
cout<<"other:"<
return0;

}

五(二):#include

#include

usingnamespacestd;

intmain()

{

intletter=0,digit=0,space=0,other=0,i=0;

int&le=letter;

int&di=digit;

int&sp=space;

int&ot=other;

chars[37];

cout<<"inputastring:";

gets(s);

for(s[0];s[i]!=''\0'';i++)

if(''a''<=s[i]&&s[i]<=''z'')

++letter;

elseif(s[i]>=''0''&&s[i]<=''9'')

++digit;

elseif(s[i]=='''')

++space;

else++other;

cout<<"letter:"<
cout<<"digit:"<
cout<<"space:"<
cout<<"other:"<
return0;

}

实验6类与对象(一)



一、实验目的

掌握类的声明和使用.

掌握对象的声明

掌握具有不同访问属性的成员的访问方式

二、实验内容及步骤

声明一个Circle类,有

数据成员Radius(半径)

成员函数GetValue()用来给半径赋值

成员函数GetArea()计算圆的面积

在主函数中创建一个Circle类的对象进行测试,显示出面积。



声明一个tree类,有

数据成员ages(树龄)

成员函数grow(intyears)对ages加上years

成员函数age()显示对象的数据成员ages的值

构造函数tree(intn=0)进行初始化

在主函数中创建一个tree类的对象进行测试(创建一个树龄为18的对象,调用age()显示树龄,之后调用grow(4),生长4年,再显示树龄)。



3.改正以下程序中的错误,并分析错误原因。提示:该程序中point类的构造函数定义不正确,在main()中对数据成员的访问不正确。要求修改程序后,在主函数中创建一个对象并初始化为坐标(5,5),然后输出这个点的X,Y坐标。

#include

usingnamespacestd;

classpoint

{intx1,x2;

public:

point(intx,inty);

//…

};

voidmain()

{pointdata(5,5);

cout<
cout<
}



献花(0)
+1
(本文系越思源首藏)