您好,欢迎来到伴沃教育。
搜索
您的当前位置:首页c++类和对象实验报告哦

c++类和对象实验报告哦

来源:伴沃教育
实验2 类和对象(1)

班 级

学号(最后两位)

姓 名

成 绩

一、实验目的

1. 掌握类的概念、类的定义格式、类与结构的关系、类的成员属性和类的封装性; 2. 掌握类对象的定义,对象的初始化;

3. 理解类的成员的访问控制的含义,公有、私有和保护成员的区别; 4. 掌握构造函数和析构函数的含义与作用、定义方式和实现,能够根据要求正确定义和

重载构造函数。能够根据给定的要求定义类并实现类的成员函数; 二、实验内容

1.分析找出以下程序中的错误,说明错误原因,给出修改方案使之能正确运行。

#include class one

{ int a1,a2; public:

one(int x1=0, x2=0); };

void main() {one data(2,3);

cout<2.分析以下程序的错误原因,给出修改方案使之能正确运行。

#include class Amplifier{

float invol,outvol; public:

Amplifier(float vin,float vout) {invol=vin;outvol=vout;} float gain(); };

Amplifier::float gain() { return outvol/invol; } void main()

{ Amplifier amp(5.0,10.0);

cout<<\"\\n\\nThe gain is =>\"<4.定义计数器类Counter。要求具有以下成员:计数器值;可进行增值和减值计数;可提供计数值。

5.编写一个程序计算两个给定的长方形的周长和面积。 6.编写一个程序,采用一个类求n!,并输出10!的值。

7.编写一个程序,设计一个Cdate类,它应该满足下面的条件: 1)用这样的格式输出日期:日-月-年; 2)输出在当前日期上加两天后的日期; 3)设置日期。 三、实验源程序、测试与结论

1.分析:出错原因:

在构造函数参数表的时候语法用错了,定义的时候语句不需用分号,并且构造函数没有函数体,同时类的对象不能访问类的私有成员变量. 修改方案:

one(int x1=0, int x2=0) {a1=x1;a2=x2;}

int geta1() { return a1; } int geta2() { return a2; } cout<2.分析:出错原因:

成员函数在类体外定义格式是:函数返回类型类名::成员函数名(参数表),这个程序没有给出函数返回的类型;成员函数调用格式是:对象名.成员函数名(参数表)这个程序中调用的方法不对. 修改方案:

float Amplifier::gain(){ return outvol/invol;} cout<<\"\\n\\nThe gain is =>\"<3.#include using namespace std; class box { double x,y,z; public :

box():x(0),y(0),z(0) {} box(int a,int b,int c):x(a),y(b),z(c){} void setx(int a) {x=a;} void sety(int a) {y=a;} void setz(int a) {z=a;} double acea(); double volume (); };

double box::acea() { return 2*(x*y+y*z+z*x); }

double box::volume() { return x*y*z; }

void main() { box box_1(6,8,10); cout<<\"acea=\"<4 #include using namespace std; class Counter { int n; public : Counter (int i=0) {n=i;} void init_Counter(int m) {n=m;} void in_Counter() {n++;}

void de_Counter() {n--;} int get_Counter () {return n;} void show() {cout<void main() { Counter a; a.in_Counter(); a.show(); a.init_Counter(20); a.show(); a.de_Counter(); cout<

5 #include using namespace std; class oblong {

private: float wides,lengths; public : oblong(float wide,float length) { wides=wide; lengths=length; } ~oblong() { cout<<\"长方形的周长:\"<<2*(wides+lengths)<void main () { float a,b; int i=0; system(\"title 长方形计算\"); while(i<2) { cout<<\"请输入第\"<}

cin>>a>>b; oblong::oblong(a,b); i++; cout<system(\"pause\");

6.#include #include using namespace std; class fact { }; void main() {

long double facts; int numbers; fact(int number) { } ~fact() {

cout<for(int i=1;i<=number;i++)

facts=facts*i;

public:

}

int a; cin>>a; fact::fact(a);

cout<<\"请输入阶乘的级数:\";

7.#include using namespace std ; class Cdate {

public: Cdate ( int year1 ,int month1 ,int date1); Cdate (); void Getnumber(int date2); void Show (); private: int year , month , date ; };

Cdate::Cdate (int year1 ,int month1 ,int date1) {year = year1 ; month = month1 ; date = date1 ;} void Cdate::Getnumber(int date2) { if(month!=2&&month!=4&&month!=6&&month!=9&&month!=11&&month!=12) { if(date+date2>31) { month+=1; date=date+2-31; } else date+=date2; return; } if(month==2) { if(year/4!=0) { if(date+date2>28) { month+=1;

date=date+date2-28; } else date+=date2; } else { if(date+date2>29) { month+=1; date=date+date2-29; } else date+=date2; return; } } if(month==12) { if(date+date2>31) { year+=1; month=1; date=date+date2-31; } else date+=date2; return; } else { if(date+date2>30) { month+=1; date=date+date2-30; } else date+=date2; return; } } void Cdate::Show()

{ cout<void main() { int a,b,c; cout<<\"输入年:\"<<\"\\n\"; cin>>a; cout<<\"输入月:\"<<\"\\n\"; cin>>b; cout<<\"输入日:\"<<\"\\n\"; cin>>c;

Cdate DATE(a,b,c); DATE.Getnumber(2); cout<<\"两日后的日期为:\"<<\"\\n\"; DATE.Show(); system(\"pause\"); }

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- bangwoyixia.com 版权所有 湘ICP备2023022004号-2

违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务