77范文网 - 专业文章范例文档资料分享平台

C++改错和填空题题库(8)

来源:网络收集 时间:2018-12-27 下载这篇文档 手机版
说明:文章内容仅供预览,部分内容可能不全,需要完整文档或者需要复制内容,请下载word后使用。下载word有问题请添加微信号:或QQ: 处理(尽可能给您提供完整文档),感谢您的支持与谅解。点击这里给我发消息

Complex(float r=0,float i=0){Real=r;Image=i;}// 2分 void Show()

{cout<<\ friend Complex operator *(Complex &,Complex &);// +(对象) void operator += (Complex &); // +=

Complex operator ++( ); //前置++ };

// 1分

Complex operator *(Complex &c1,Complex &c2) // 3分 { Complex t;

t.Real=c1.Real *c2.Real- c1.Image *c2.Image; t.Image= c1.Real *c2.Image+ c1.Image*c2.Real; return t; }

void Complex::operator +=(Complex &c) // 3分 {

Real=Real +c.Real;

Image=Image +c.Image; }

Complex Complex::operator ++( ) // 3分 {

Real++; Image++; return *this; }

void main(void) {

Complex c1(2,5),c2(1,2),c,c4(2,4); // 1分 c1.Show();

c=c1*c2; // 1分 c.Show(); // 1分 c+=c1; // 1分 c.Show(); ++c4; // 1分 c4.Show(); }

第22题

/*------------------------------------------------ 【程序设计】

--------------------------------------------------

题目:建立一个复数类Complex,要求如下: (1)私有数据成员

float Real,Image; 表示一个复数的实部和虚部 (2)公有成员函数

Complex(float,float); 构造函数,实现对复数的初始化 void operator=(Complex &); 实现复数的=运算 void show(); 输出复数 (3)友元函数

Complex operator+(Complex &,Complex &); 重载运算符+的函数

Complex operator+(Complex,float); 重载运算符+的函数,只有实部 Complex operator-(Complex); 重载运算符-的函数,求复数的负数(实部和虚部分别乘以-1)。

(4)编写一个程序测试该类,测试数据及要求如下: 复数:c1(25,50),c3(100,200),c4(200,400),c2,c5,c 完成的运算有: c2=c1,c=c1+c3,c4=c4+200,c5=-c4 每完成一次运算,要将结果进行输出。 ------------------------------------------------*/ /**********Program**********/

/********** End **********/

答案:---------------------- #include class Complex{ float Real,Image; //实部和虚部 public: Complex(float r=0,float i=0) {Real=r;Image=i;} void Show(){cout<<\

friend Complex operator+(Complex &,Complex &);

//重载运算符+的函数原型说明

friend Complex operator+(Complex,float); //重载运算符+的函数,只有实部 friend Complex operator-(Complex); //重载运算符-的函数原型说明 };

Complex operator+(Complex &c1,Complex &c2) //重载运算符+的函数定义,有实部和虚部 { Complex t; t.Real=c1.Real+c2.Real; t.Image=c1.Image+c2.Image; return t; }

Complex operator+(Complex c1,float s) { Complex t; t.Real=c1.Real+s; t.Image=c1.Image; return t; }

Complex operator-(Complex c) {

//重载运算符+的函数,只有实部

//重载运算符-函数定义,有实部和虚部

return Complex(-c.Real,-c.Image); }

void main(void) { Complex c1(25,50),c2,c3(100,200); Complex c,c4(200,400),c5; c1.Show(); c2=c1; c2.Show();

c=c1+c3; c.Show(); c4=c4+200; c4.Show();

//产生一个临时对象并返回其值

//定义对象并调用构造函数初始化 //定义对象并调用构造函数初始化

//相同类型对象赋值

//加法重载

//加一实数的重载

c5=-c4; //取负运算符重载 c5.Show(); }

----------------------

第23题

/*------------------------------------------------------- 【程序设计】

---------------------------------------------------------

题目:设计一个程序,计算组合数C(m,r)=m!/(r!×(m-r)!), 其中m、r为正整数,且m>r。分别求出C(4,2), C(6,4), C(8,7)的组合数。求阶乘和组合数须用函数来实现。 ------------------------------------------------*/

/**********Program**********/

/********** End **********/

第24题

/*------------------------------------------------ 【程序设计】

--------------------------------------------------

题目:把定义直角坐标系上的一个点的类point作为基类,派生出描述一条直线的类line,再由直线类派生出三角形类triangle。

求出两点间的距离、三角形的周长。 具体要求如下: (1)类point

保护数据成员: float x1,y1; 点的坐标 公有构造函数: point(float,float); 初始化x1、y1 (2)类line

保护数据成员: float x2,y2; 为直线的另一个点的坐标 公有构造函数: line(float,float,float,float);

前两个参数为第一个点(x1,y1)初始化; 后两个参数为第二个点(x1,y1)初始化

公有成员函数: float dis(); 求点(x1,y1)到点(x1,y1)之间的距离

计算公式:距离的平方=(x1-x2)的平方+(y1-y2)的平方 (3)类triangle

保护数据成员: float x3,y3; 为直线外的点的坐标 公有构造函数: triangle(float,float,float,float,float,float);

前两个参数为直线端点1(x1,y1)初始化,中间两个参数为直线端点2(x1,y1)初始化,

最后两个参数为直线外的点(x3,y3)初始化

公有成员函数: float tri_girth(); 求三角形的周长(三边长之和)

(4)在主程序中对该类进行测试,测试数据可以从键盘输入,也可以自行在初始化时确定。

--------------------------------------------------

注意:程序编写在下面的Program和End区域。 ------------------------------------------------*/ /**********Program**********/

/********** End **********/

答案:#include #include // 1' class point{ protected: float x1,y1; // 1' public: point(float a=0,float b=0) // 1' {x1=a;y1=b; }

};

class line:public point{ protected: float x2,y2; // 1' public: line(float a=0,float b=0,float c=0,float d=0):point(a,b) // 1' {x2=c;y2=d; } float dis() // 2' {float lin; lin=sqrt((x2-x1)*(x2-x1)+(y2-y1)*(y2-y1)); return lin; } };

class triangle:public line{ float x3,y3; // 1' public: triangle(float a=0,float b=0,float c=0, float d=0, float t e=0, float f=0):line(a,b,c,d) // 1' {x3=e;y3=f; } float tri_girth() // 3' { line li1(x3,y3,x2,y2),li2(x3,y3,x1,y1); float m=li1.dis(); float n=li2.dis(); float k=dis(); float L=m+n+k; return L; } };

void main(){ float x1,y1,x2,y2,x3,y3; // 1' cout<<\输入直线上点的坐标(x1,y1):\ cin>>x1>>y1; cout<<\输入直线上点的坐标(x2,y2):\ cin>>x2>>y2; line lin(x1,y1,x2,y2); // 1' cout<<\与(x2,y2)的距离为: \ // 1' cout<<\输入三角形的第三个点:\ cin>>x3>>y3; triangle tri(x1,y1,x2,y2,x3,y3); // 1' cout<<\、(x2,y2)及(x3,y3)组成的三角形的周长为: \ // 1' }

百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说综合文库C++改错和填空题题库(8)在线全文阅读。

C++改错和填空题题库(8).doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印 下载失败或者文档不完整,请联系客服人员解决!
本文链接:https://www.77cn.com.cn/wenku/zonghe/392754.html(转载请注明文章来源)
Copyright © 2008-2022 免费范文网 版权所有
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ: 邮箱:tiandhx2@hotmail.com
苏ICP备16052595号-18
× 注册会员免费下载(下载后可以自由复制和排版)
注册会员下载
全站内容免费自由复制
注册会员下载
全站内容免费自由复制
注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: