ImageVerifierCode 换一换
格式:DOCX , 页数:26 ,大小:465.42KB ,
资源ID:7612297      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/7612297.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(西安交大C++程序设计第十章作业.docx)为本站会员(b****5)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

西安交大C++程序设计第十章作业.docx

1、西安交大C+程序设计第十章作业西安交通大学实验报告课程_计算机程序设计_实验名称_多态性_第 1 页 共 44 页系 别_ _ 实 验 日 期 2014 年 5 月 31 日专业班级_ _组别_ 实 验 报 告 日 期 2014 年 5 月 31 日姓 名_ _学号_ _ 报 告 退 发 ( 订正 、 重做 )同 组 人_ 教 师 审 批 签 字 一、实验目的理解掌握多态的使用方法,学会用虚函数。二、实验内容 (一)第一题:定义一个类Base,该类含有虚函数display,然后定义它的两个派生类FirstB和SecondB,这两个派生类均含有公有成员函数display,在主程序中,定义指向基类

2、Base的指针变量ptr,并分别定义Base、FirstB、Second的对象b1、f1、s1,让ptr分别指向b1、f1、s1的起始地址,然后指向执行这些对象的成员函数display。1.源程序代码:#includeusing namespace std;class Base public: virtual void display() coutsound!sound!sound!; ;class FirstB:public Basepublic: void virtual display() coutmiao!miao!miao!; ;class SecondB:public Basepu

3、blic: void virtual display() coutwang!wang!wang!; ;int main() Base *ptr; Base b1; FirstB f1; SecondB s1; coutdisplay(); coutdisplay(); coutdisplay(); coutendl; return 0; 2.实验结果:(二)第二题: 扩充例10-5,从中派生一个正方形类和圆柱体类,写一个测试程序,输出正方形的面积和圆柱体的体积。1.源程序代码: 验结果: (三)第三题: 扩充实例编程中的日期类,为Date增加一个成员函数,可以判断日期是否为系统当前日期。从键盘

4、输入你的生日,如果今天是你的生日则显示:“Harry Birthday!”否则显示“还有*天是你的生日”或者“你的生日已经过去了* 天,距离明年生日还有*天”。1.源程序代码: endl; coutab; Date birthday(a,b); (birthday); cout 重载函数、输出生日祝词与蛋糕形状函数。并编写主函数测试各成员函数。继承方式如下:首先定义圆柱体形状蛋糕类,只有 3 个数据成员,半径、高、生日祝词。然后派生出圆柱体 _ 方柱体蛋糕类,即在圆柱体形状上增加方柱体形状。假定方柱体的正方形面积小于圆柱体的圆形面积,注意方柱体的高与正方形的边长不一定相等。再用圆柱体 _ 方柱

5、体蛋糕类派生出圆柱体 _ 方柱体 _ 菱形体蛋糕类,即在方柱体形状上增加菱形柱体形状。假定菱形柱体的菱形面积小于方柱体的正方形面积。提示: ?运算符 重载指两个蛋糕对象的体积大小。?基类和派生类数据成员不能定义为 public 。 设置数据成员函数、求蛋糕体积、求蛋糕表面积函数、输出生日祝词与蛋糕形状函数均为同名重载函数,例如分别采用函数名为 init() 、 volume() 、 area() 、 output() 。程序运行参考图如下:(红颜色的功能下一章实验完成)1.源程序代码:验结果:五、第五题:(必做题) 定义一个一元二次方程类,通过继承方式定义一元三次方程类,再继承定义一元四次方程

6、类。类中至少包含构造函数、求根函数、运算符 + 重载函数、运算符 - 重载函数、运算符=重载函数、输出方程的函数等6 个函数,并编写主函数测试各成员函数。提示: 两个一元三次方程对应相加仍然是一个一元三次方程; 求根方法采用迭代方法,迭代公式为: Xn+1=Xn F(Xn)/F (Xn) ,结束迭代的条件 |F(Xn+1)|10-7 与 |Xn+1-Xn|10-7 同时成立; 一元三次方程的一般形式如下: F(X)=AX3+BX2+CX+D=0 。输出方程格式为: A*X3+B*X2+C*X+D=0 ;两个一元三次方程对应相加和对应相减仍然是一元三次方程。假定类中的方程系数能求解出实根。不考虑

7、方程存在虚根和无根的情况。求根函数应该有一个参数,该参数指明迭代初值。例如方程 2X3-4X2+3x-6 0 在 附近的根。又例如方程 X3+12X2+48X+64=0 在 附近的根。例如方程X4-10X3+35X2-50x+240在附近的根。又例如方程X4+12X3+54X2+108X+81=0在附近的根。因此类中数据成员除了系数外,还应考虑迭代初值作为数据成员。 1.源程序代码:#include#includeusing namespace std;class Equation2protected: double A,B,C; double X0;public: Equation2(dou

8、ble a=1,double b=1,double c=1,double x0= Set(a,b,c,x0); void Set(double a,double b,double c,double x0) A=a; B=b; C=c; X0=x0; double root() double X=X0; double temp; do temp=X; X=X-(A*X*X+B*X+C)/(2*A*X+B); while(fabs(X)=10e-7|fabs(temp-X)=10e-7); return X; Equation2 operator +(Equation2 eq2) A=A+; B=

9、B+; C=C+; return *this; Equation2 operator -(Equation2 eq2) A=; B=; C=; return *this; Equation2 operator =(Equation2 eq2) if(A/=B/&B/=C/ coutYES!; else coutNO!; return *this; void Print() coutAX2+BX+C=10e-7|fabs(temp-X)=10e-7); return X; Equation3 operator +(Equation3 eq3) A=A+; B=B+; C=C+; D=D+; re

10、turn *this; Equation3 operator -(Equation3 eq3) A=; B=; C=; D=; return *this; Equation3 operator =(Equation3 eq3) if(A/=B/&B/=C/&C/=D/ coutYES!; else coutNO!; return *this; void Print() coutAX3+BX2+CX+D=10e-7|fabs(temp-X)=10e-7); return X; Equation4 operator +(Equation4 eq4) A=A+; B=B+; C=C+; D=D+;

11、E=E+; return *this; Equation4 operator -(Equation4 eq4) A=; B=; C=; D=; E=; return *this; Equation4 operator =(Equation4 eq4) if(A/=B/&B/=C/&C/=D/&D/=E/ coutYES!; else coutNO!; return *this; void Print() coutAX4+BX3+CX2+DX+E=0; ;int main() Equation2 equation2(2,3,4,equation21; Equation3 equation3(2,

12、3,4,5,equation31; Equation4 equation4(2,3,4,5,6,equation41; cout方程为:n; (); coutendl; (); coutendl; (); coutendl; cout测试根:n二次:; cout(); coutn三次:; cout(); coutn四次:; cout(); cout测试加法:n二次:; equation2+equation21; (); coutn三次:; equation3+equation31; (); coutn四次:; equation4+equation41; (); coutn测试减法:n二次:;

13、equation2-equation21; (); coutn三次:; equation3-equation31; (); coutn四次:; equation4-equation41; (); return 0;2.实验结果:六、第六题:给自定义虚数类增加运算符*、/、+、-、=重载,注意+和-分前置和后置两种情况,编写主函数加以测试。1.源程序代码:验结果:3.问题分析:(七)第七题:完善上一章定义大整数类的题目,成员函数包括加、减以及判大小,注意用运算符重载,编写主函数加以测试。1.源程序代码:#include#include#include #include using namespa

14、ce std;class czs int num100; int len; char sign;public: czs() for(int i=0;i100;i+) numi=0; len=0; sign= ; void set(char *str) if(str0=-) str+; sign=-; else if(str0=+) str+; sign= ; len=strlen(str); for(int i=100-len;i100;i+) numi=stri+len-100-0; void print() cout=100) cout0; for(;i100;i+) coutnumi;

15、cout100-b;i-) numi=numi+i; numi-1=numi-1+numi/10; numi=numi%10; num100-b=num100-b+100-b; else if(len for(int i=99;i=len;i-) numi=numii; if(numi0) numi=numi+10; numi-1-; else if(len=len;i-) numi=i-numi; if(numi0) numi=numi+10; i-1-; else int b=0; for(int i=100-len;i100;i+) if(numi!=i) if(numi=len;i-)

16、 numi=i-numi; if(numi=len;i-) numi=numii; if(numi100-b;i-) numi=numi+i; numi-1=numi-1+numi/10; numi=numi%10; num100-b=num100-b+100-b; else if(len for(int i=99;i=len;i-) numi=numii; if(numi0) numi=numi+10; numi-1-; else if(len=len;i-) numi=i-numi; if(numi0) numi=numi+10; i-1-; else int b=0; for(int i

17、=100-len;i100;i+) if(numi!=i) if(numi=len;i-) numi=i-numi; if(numi=len;i-) numi=numii; if(numi(czs &a) czs:operator -(a); if(sign=-) cout; else int i=100-len; while(numi=0&i100) i+; if(i=100) cout=; else cout; return *this; ;void main() char a100,c100,b100; czs d,e,f; cout请输入三个数:abc; (a); (b); (c); cout前两个数的和为:endl; d+e; (); cout前两个数的和减去第三个数为:endl; d-f; (); coutf; cout第三个数; coutendl;2.实验结果:

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1