典型程序例题.doc_第1页
典型程序例题.doc_第2页
典型程序例题.doc_第3页
典型程序例题.doc_第4页
典型程序例题.doc_第5页
已阅读5页,还剩3页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

程序设计题(共46分)1. (14分)编写一个程序计算“三角形、正方形、圆形”三种图形的面积,要求:(1) 定义抽象基类Shape,要求在其中声明求面积的纯虚函数;(2) Shape基类分别定义三个派生类 “三角形(Triangle)、正方形(Square)、圆形(Circle)”;(3) 编写面积函数,要求用基类指针求解对象面积;并在主函数中定义如下对象进行测试;Circle circle(12.6); /12.6为半径Square square(3.5); /3.5为边长Triangle triangle(4.5,8.4); /4.5为底边长,8.4为高参考程序#include using namespace std;class Shape public: virtual double area()=0;class Circle:public Shape double radius; public: Circle(double r=0) radius=r; double area() return radius*radius*3.1415926; ;class Square:public Shape double edge; public: Square(double e=0) edge=e; double area() return edge*edge; ;class Triangle:public Shape double width,height; public: Triangle(double w=0,double h=0) width=w; height=h; double area() return width*height/2; ;double area(Shape *s) return s-area();int main() Shape *s; Circle circle(12.6); s=&circle; coutarea(s)endl; Square square(3.5); s=□ coutarea(s)endl; Triangle triangle(4.5,8.4); s=▵ coutarea(s)endl; return 0;2. (10分)设计一个日期类Date,要求其满足下述要求: (1) 要求有分别表示年、月、日的私有数据成员; (2) 要求有一个无参的构造函数,其初始的年、月、日分别为:2012,6,8; (3) 要求有一个带参数的构造函数,其参数分别对应年、月、日; (4) 要求用一个成员函数实现日期的设置; (5) 要求用一个成员函数实现输出日期,输出格式如“2012年6月8日”;(6) 要求用一个成员函数实现日期的获取;参考程序:#include using namespace std;class Date int year,month,day; public: Date() year=2012; month=6; day=8; Date(int y,int m,int d) year=y; month=m; day=d; void show() const coutyear年month月day日endl; void getDate(int &y,int &m,int &d) const y=year; m=month; d=day; void setDate(const int &y,const int &m,const int &d) year=y; month=m; day=d; ;int main() Date d; d.show(); d.setDate(2011,9,1); int year=0,month=0,day=0; d.getDate(year,month,day); coutyear=year,month=month,day=dayendl; return 0;3. (10分)定义一个复数类Complex,要求其满足下述要求: (1) 要求有分别表示复数实部和虚部的私有数据成员real、imag;(2) 要求有一个带2个参数的构造函数,其参数分别对应复数实部和虚部;(3) 要求重载运算符“-”实现两个复数相减;(4) 要求用一个成员函数show实现输出复数,输出格式如“2+3i”;(5) 要求编写测试程序对设计的复数类进行功能测试; 参考程序:#include using namespace std;class Complexpublic:Complex(const double r = 0.0,const double i = 0.0) real = r; imag=i;void show() const /显示复数 coutreal+imagiendl;Complex operator - (const Complex &c) const/运算符-重载成员函数 return Complex(real-c.real,imag-c.imag);private:double real;double imag;int main() Complex c1,c2(3,5),c3; c1.show(); c2.show(); c3=c1-c2; c3.show(); return 0;4. (12分)定义一个三维点类Point,私有数据成员包含x、y、z三维坐标,并定义相应的成员函数,声明一个实例p1,其三维坐标为x=1、y=2、z=3,使用 I/O 流把p1 的坐标写入磁盘文件file1.dat,再声明另一个实例p2,通过读文件file1.dat把 p1 的坐标赋给p2。参考程序:#include #include using namespace std;class Pointpublic:Point(const double xv = 0.0,const double yv = 0.0,const double zv = 0.0) x=xv; y=yv; z=zv; void show() const cout(x,y,z)endl; double getX() return x; double getY() return y; double getZ() return z; void setPoint(double X,double Y,double Z) x=X; y=Y; z=Z; private:double x;double y;double z;int main() ofstream fd(file1.dat); if(!fd) coutfile1.dat打开失败; return 0; Point p1(1,2,3),p2; p1.show(); fdp1.getX() p1.getY() p1.getZ(); fd.close(); ifstream fs(file1.dat); if(!fs) coutxyz; p2.setPoint(x,y,z); p2.show(); return 0;5编写一个函数模板,用于求参数的绝对值,并编写测试程序进行测试。函数模板声明如下:template Type Abs(Type tVar)#include using namespace std;template Type Abs(Type tVar)if (tVar = 0) return tVar;else return -tVar;int main()cout Abs(5) endl;cout Abs(-5) endl;cout Abs(2.5) endl;cout Abs(-2.5) endl;return 0;6定义一个复数类CComplex,定义带有2个参数(其中一个为缺省参数)的构造函数,显示复数值的函数Show(), 重载“+”运算符(用成员函数实现),并编写测试程序进行测试。#include using namespace std;class CComplexpublic:CComplex(double dReal, double dImage = 0)m_dReal = dReal;m_dImage = dImage;void Show()cout 0)cout + m_dImage i endl;else if(m_dImage 0)cout - -m_dImage i endl;CComplex operator+(const CComplex &obj)CComplex objTemp(m_dReal + obj.m_dReal, m_dImage +

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论