欢迎来到天天文库
浏览记录
ID:5850966
大小:42.00 KB
页数:4页
时间:2017-12-26
《清华大学课程讲义-数据结构答案1》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、1-4.什么是抽象数据类型?试用C++的类声明定义“复数”的抽象数据类型。要求(1)在复数内部用浮点数定义它的实部和虚部。(2)实现3个构造函数:缺省的构造函数没有参数;第二个构造函数将双精度浮点数赋给复数的实部,虚部置为0;第三个构造函数将两个双精度浮点数分别赋给复数的实部和虚部。(3)定义获取和修改复数的实部和虚部,以及+、-、*、/等运算的成员函数。(4)定义重载的流函数来输出一个复数。【解答】抽象数据类型通常是指由用户定义,用以表示应用问题的数据模型。抽象数据类型由基本的数据类型构成,并包括一组相关的服务。//在头文件complex.h中定义的复
2、数类#ifndef_complex_h_#define_complex_h_#includeclasscomlex{public:complex(){Re=Im=0;}//不带参数的构造函数complex(doubler){Re=r;Im=0;}//只置实部的构造函数complex(doubler,doublei){Re=r;Im=i;}//分别置实部、虚部的构造函数doublegetReal(){returnRe;}//取复数实部doublegetImag(){returnIm;}//取复数虚部voidsetReal(doubl
3、er){Re=r;}//修改复数实部voidsetImag(doublei){Im=i;}//修改复数虚部complex&operator=(complex&ob){Re=ob.Re;Im=ob.Im;}//复数赋值complex&operator+(complex&ob);//重载函数:复数四则运算complex&operator–(complex&ob);complex&operator*(complex&ob);complex&operator/(complex&ob);friendostream&operator<<(ostream&os,com
4、plex&c);//友元函数:重载<#include#include“complex.h”complex&complex::operator+(complex&ob){//重载函数:复数加法运算。complex*result=newcomplex(Re+ob.Re,Im+ob.Im);return*result;}complex&complex
5、::operator–(complex&ob){//重载函数:复数减法运算complex*result=newcomplex(Re–ob.Re,Im–ob.Im);return*result;}complex&complex::operator*(complex&ob){//重载函数:复数乘法运算complex*result=newcomplex(Re*ob.Re–Im*ob.Im,Im*ob.Re+Re*ob.Im);return*result;}complex&complex::operator/(complex&){//重载函数:复数除法运算dou
6、bled=ob.Re*ob.Re+ob.Im*ob.Im;complex*result=newcomplex((Re*ob.Re+Im*ob.Im)/d,(Im*ob.Re–Re*ob.Im)/d);return*result;}friendostream&operator<<(ostream&os,complex&ob){//友元函数:重载<<,将复数ob输出到输出流对象os中。returnos<=0.0)?“+”:“-”<7、raySize]的第n个数组元素中,0£n£arraySize。若设计算机中允许的整数的最大值为maxInt,则当n>arraySize或者对于某一个k(0£k£n),使得k!*2k>maxInt时,应按出错处理。可有如下三种不同的出错处理方式:(1)用cerr<<及exit(1)语句来终止执行并报告错误;(2)用返回整数函数值0,1来实现算法,以区别是正常返回还是错误返回;(3)在函数的参数表设置一个引用型的整型变量来区别是正常返回还是某种错误返回。试讨论这三种方法各自的优缺点,并以你认为是最好的方式实现它。【解答】#include"iostream.8、h" #definearraySize100 #defineMaxInt0x7f
7、raySize]的第n个数组元素中,0£n£arraySize。若设计算机中允许的整数的最大值为maxInt,则当n>arraySize或者对于某一个k(0£k£n),使得k!*2k>maxInt时,应按出错处理。可有如下三种不同的出错处理方式:(1)用cerr<<及exit(1)语句来终止执行并报告错误;(2)用返回整数函数值0,1来实现算法,以区别是正常返回还是错误返回;(3)在函数的参数表设置一个引用型的整型变量来区别是正常返回还是某种错误返回。试讨论这三种方法各自的优缺点,并以你认为是最好的方式实现它。【解答】#include"iostream.
8、h" #definearraySize100 #defineMaxInt0x7f
此文档下载收益归作者所有