欢迎来到天天文库
浏览记录
ID:7271710
大小:44.50 KB
页数:4页
时间:2018-02-10
《数据结构课程第一章部分习题解答》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、中央电大开放教育(http://www.open.edu.cn)数据结构课程第一章部分习题解答第一章绪论1-4.什么是抽象数据类型?试用C++的类声明定义“复数”的抽象数据类型。要求(1)在复数内部用浮点数定义它的实部和虚部。(2)实现3个构造函数:缺省的构造函数没有参数;第二个构造函数将双精度浮点数赋给复数的实部,虚部置为0;第三个构造函数将两个双精度浮点数分别赋给复数的实部和虚部。(3)定义获取和修改复数的实部和虚部,以及+、-、*、/等运算的成员函数。(4)定义重载的流函数来输出一个复数。【解答】抽象数据类型通常是指由用户定义,用以表示应用问题的数据模型。抽
2、象数据类型由基本的数据类型构成,并包括一组相关的服务。//在头文件complex.h中定义的复数类#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;}//取复数实部doublege
3、tImag(){returnIm;}//取复数虚部voidsetReal(doubler){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);fr
4、iendostream&operator<<(ostream&os,complex&c);//友元函数:重载<#include#include“complex.h”complex&complex::operator+(complex&ob){4中央电大开放教育(http://www.open.edu.cn)//重载函数:复数加法运算。complex*re
5、sult=newcomplex(Re+ob.Re,Im+ob.Im);return*result;}complex&complex::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*r
6、esult;}complex&complex::operator/(complex&){//重载函数:复数除法运算doubled=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、:“-”<arraySize或者对于某一个k(0£k£n),使得k!*2k>maxInt时,应按出错处理。可有如下三种不同的出错处理方式:(1)用cerr<<及exit(1)语句来终止执行并报告错误;(2)用返回整数函数值0,1来实现算法,以区别是正常返回还是错误返回;(3)在函数的参数表设置一个引用型的整型变量来区别是正常返回还是某种错误返回。试讨
8、论这三种方
此文档下载收益归作者所有