1、 C class P D. class P int f; public: int a; f=25; void Seta (int x) a=x;分析:在类体内不可对数据成员进行初始化;类定义结束时需用分号;只有类中的成员函数才能存取类中的私有数据。二.改错题1.#include class Pointpublic: void Set(double ix,double iy) /设置坐标 x=ix; y=iy;double xOffset() /取x轴坐标分量 return x;double yOffset() /取y轴坐标分量 return y;double angle() /取点的极坐标 r
2、eturn (180/3.14159)*atan2(y,x);double radius() /取点的极坐标半径 return sqrt(x*x+y*y);protected: double x; /x轴分量 double y; /y轴分量 /error: 缺少分号void main()Point p; double x,y; cout x y;p.Set(x,y); p.x+=5; /error: 私有成员不能在类外被访问 p.y+=6; 同上angle= p.angle(),radius=p.radius(),x offset=p.xOffset(),y offset=p.yOffset(
3、) endl;2.分析找出以下程序中的错误,说明错误原因,给出修改方案使之能正确运行。#includeclass one int a1,a2; public:one(int x1=0, x2=0);one data(2,3); coutdata.a1data.a2出错原因:构造函数参数表语法错;构造函数没有函数体;类的对象不能直接访问类的私有成员变量。改正后的程序如下: #include class one int a1, a2; one(int x1=0, int x2=0) a1=x1;a2=x2; int geta1() return a1; int geta2() return a2;
4、data.geta1()data.geta2()3. 分析以下程序的错误原因,给出修改方案使之能正确运行。#include gain()成员函数在类体外定义格式是:函数返回类型 类名:成员函数名(参数表);成员函数调用格式是:对象名.成员函数名(参数表)。class Amplifier float invol,outvol; Amplifier(float vin,float vout) invol=vin;float Amplifier:gain() return outvol/invol;amp.gain()三.编程题(1)定义盒子Box类,要求具有以下成员:可设置盒子形状;可计算盒子体积
5、;可计算盒子的表面积。class Box int x,y,z; int v,s; void init(int x1,int y1,int z1) x=x1;y=y1;z=z1; void volue() v=x*y*z; void area() s=2*(x*y+x*z+y*z); void show() coutx= x y= y z=z couts= s v= v Box a;a.init(2,3,4);a.volue();a.area();a.show();(2 )定义计数器类Counter。要求具有以下成员:计数器值;可进行增值和减值记数;可提供记数值。class Counter in
6、t n; void init_Counter(int m) n=m; void in_Counter() n+; void de_Counter() n-; void show() coutn Counter a; a.init_Counter(10); a.show(); a.de_Counter();a.show()(3)定义一个时间类Time,能提供和设置由时、分、秒组成的时间,并编出应用程序,定义时间对象,设置时间,输出该对象提供的时间。/time.h#include time.hclass Time void Set(int h,int m,int s); void Display(
7、);protected(private): int hour; int minute; int second;/time.cppvoid Time:Set(int h, int m, int s) h%=24; m%=60; s%=60; /简单正确性处理 hour=h; minute=m; second=s;Display()cout hour minute second /主程序 Time a; a.Set(3,32,48); a.Display(); (4) 编写一个程序,设计一个Tdate类,它应该满足下面的条件:1)用这样的格式输出日期:日-月-年;2)判断该年是否为闰年;3)设置日
8、期。/tdate.hclass Tdate pubilc: void set(int m,int d,int y); int Isleapyear(); void print(); private: int month,day,year; /tdate.cpp #include #include “tdate.h” void Tdate:set(int m,int d,int y) month=m; day=d; year=y; int Tdate:Isleapyear() return(year%4=0&year%100!=0)|(year%400=0);print() coutmonth“
9、-”dayyear void main( ) Tdate s; s.set(2,15,1998); s.print( ); if(s.Isleapyear() cout今年为闰年 elsecout今年不是闰年 (5)定义一个满足如下要求的 类 Date用下面的格式输出日期 日/月/年在运行的日期上加一天设置日期class Date void AddOneDay(); void SetDay(int y,int m,int d);bool Legal(int y, int m, int d); bool IsLeapYear(int y); int year,month,day;void Date:day /month year endl;AddOneDay()if(Legal(year,month,day+1) day+; else if(Legal(year,month+1,1) month+,day=1; else if(Legal(year+1,1,1) day=1,mo
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1