欢迎来到天天文库
浏览记录
ID:48166706
大小:295.00 KB
页数:51页
时间:2020-01-17
《C++编程例题.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、例题例1:创建一个employee类,该类中有字符数组,表示姓名、街道地址、市、省和邮政编码。把构造函数、changname()、display()的函数的原型放在类定义中,构造函数初始化每个成员,display()函数把完整的对象数据打印出来。其中的数据成员是保护的,函数是公共的。解:#include#includeclassemployee{protected:charname[10];//姓名charstreet[20];//街道地址charcity[10];//市charprov[10];//省ch
2、arpost[7];//邮政编码intno;//记录序号public:employee(char[],char[],char[],char[],char[],int);voidchangename(charstr[]);voiddisplay();};employee::employee(charn[],chars[],charc[],charp1[],charp2[],intnum){strcpy(name,n);strcpy(street,s);strcpy(city,c);strcpy(prov,p1);strcpy(post,p2);
3、no=num;}voidemployee::changename(charn[]){strcpy(name,n);}voidemployee::display(){cout<<"输出记录"<4、,"武汉市","湖北省","430070",1);employeeobj2("杨丽","天津路30号","南京市","江苏市","210020",2);obj1.display();obj2.display();}本程序的执行结果如下:输出记录1姓名:王华街道地址:中华路15号市:武汉市省:湖北省邮政编码:430070输出记录2姓名:杨丽街道地址:天津路30号市:南京市省:江苏省邮政编码:210020例2:分数相加,两个分数分别是1/5和7/20,它们相加后得11/20。要求最后的结果为最简分数形式。试建立一个分数类Fract,完成两个5、分数相加的功能。具体要求如下:(1)私有数据成员intnum,den;//num为分子,den为分母(2)公有成员函数Fract(inta=0,intb=1):构造函数,用a和b分别初始化分子num、分母den;intged(intm,intn):求m、n的最大公约数。此函数供成员函数add()调用;Fractadd(Fractf):将参数分数f与对象自身相加,返回约简后的分数对象;voidshow():按照num/den的形式在屏幕上显示分数。(3)在主程序中定义两个分数对象f1和f2,其初值分别是1/5和7/20,通过f1调用成员函数add完成f1和f2的6、相加,将得到的分数赋给对象f3,显示分数对象f3。解:#includeclassFract{intnum,den;public:Fract(inta=0,intb=1);intged(int,int);Fractadd(Fract);voidshow();};Fract::Fract(inta,intb){num=a;den=b;}intFract::ged(intm,intn){intk;if(m>n)k=n;elsek=m;for(;k>0;k--)if(m%k==0&&n%k==0)returnk;}FractFract::add7、(Fractf){Fractff;intv;v=ged(den,f.den);v=den*f.den/v;num=v/den*num;f.num=v/f.den*f.num;ff.num=num+f.num;ff.den=v;v=ged(ff.num,ff.den);ff.num/=v;ff.den/=v;returnff;}voidFract::show(){cout<8、生出另一个一维数组的派生规则如下:新数
4、,"武汉市","湖北省","430070",1);employeeobj2("杨丽","天津路30号","南京市","江苏市","210020",2);obj1.display();obj2.display();}本程序的执行结果如下:输出记录1姓名:王华街道地址:中华路15号市:武汉市省:湖北省邮政编码:430070输出记录2姓名:杨丽街道地址:天津路30号市:南京市省:江苏省邮政编码:210020例2:分数相加,两个分数分别是1/5和7/20,它们相加后得11/20。要求最后的结果为最简分数形式。试建立一个分数类Fract,完成两个
5、分数相加的功能。具体要求如下:(1)私有数据成员intnum,den;//num为分子,den为分母(2)公有成员函数Fract(inta=0,intb=1):构造函数,用a和b分别初始化分子num、分母den;intged(intm,intn):求m、n的最大公约数。此函数供成员函数add()调用;Fractadd(Fractf):将参数分数f与对象自身相加,返回约简后的分数对象;voidshow():按照num/den的形式在屏幕上显示分数。(3)在主程序中定义两个分数对象f1和f2,其初值分别是1/5和7/20,通过f1调用成员函数add完成f1和f2的
6、相加,将得到的分数赋给对象f3,显示分数对象f3。解:#includeclassFract{intnum,den;public:Fract(inta=0,intb=1);intged(int,int);Fractadd(Fract);voidshow();};Fract::Fract(inta,intb){num=a;den=b;}intFract::ged(intm,intn){intk;if(m>n)k=n;elsek=m;for(;k>0;k--)if(m%k==0&&n%k==0)returnk;}FractFract::add
7、(Fractf){Fractff;intv;v=ged(den,f.den);v=den*f.den/v;num=v/den*num;f.num=v/f.den*f.num;ff.num=num+f.num;ff.den=v;v=ged(ff.num,ff.den);ff.num/=v;ff.den/=v;returnff;}voidFract::show(){cout<8、生出另一个一维数组的派生规则如下:新数
8、生出另一个一维数组的派生规则如下:新数
此文档下载收益归作者所有