c++程序设计题(共6页)_第1页
c++程序设计题(共6页)_第2页
c++程序设计题(共6页)_第3页
c++程序设计题(共6页)_第4页
c++程序设计题(共6页)_第5页
已阅读5页,还剩1页未读 继续免费阅读

下载本文档

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

文档简介

1、精选优质文档-倾情为你奉上六、程序设计题(本大题共1小题,共10分)1. 已定义一个Shape抽象类,在此基础上派生出矩形Rectangle和圆形Circle类,二者都有GetPerim()函数计算对象的周长,并编写测试main()函数。class Shapepublic:Shape()Shape()virtual float GetPerim()=0;答案:class Rectangle:public Shapepublic:Rectangle(float i,float j):L(i),W(j)Rectangle()float GetPerim()return 2*(L+W);privat

2、e:float L,W;class Circle:public Shapepublic:Circle(float r):R(r)float GetPerim()return 3.14*2*R;private:float R;void main()Shape * sp;sp=new Circle(10);cout<<sp->GetPerim ()<<endl;sp=new Rectangle(6,4);cout<<sp->GetPerim()<<endl;_六、程序设计题(本大题共1小题,共10分)1. 编写类String的构造函数、析

3、构函数和赋值函数和测试程序。已知类String的原型为:#include <iostream.h>#include <string.h>class Stringpublic:String(const char *str=NULL); / 普通构造函数String(const String &other); / 拷贝构造函数String(); / 析构函数String & operator=(const String &other); / 赋值函数void show()cout<<m_data<<endl;private:c

4、har *m_data; / 用于保存字符串;答案:String:String()deletem_data;/由于m_data是内部数据类型,也可以写成delete m_data;String:String(const char *str)if(str=NULL)m_data=new char1;/若能加NULL判断则更好*m_data=0;elseint length=strlen(str);m_data=new charlength+1; /若能加NULL判断则更好strcpy(m_data, str);String:String(const String &other)int l

5、ength=strlen(other.m_data);m_data=new charlength+1;/若能加NULL判断则更好strcpy(m_data, other.m_data);String & String:operator=(const String &other)if(this=&other)return *this;deletem_data;int length=strlen(other.m_data);m_data=new charlength+1;/若能加NULL判断则更好strcpy(m_data, other.m_data);return *th

6、is;void main()String str1("aa"),str2;str1.show();str2=str1;str2.show();String str3(str2);str3.show();_六、程序设计题(本大题共1小题,共10分)1. 已知交通工具类定义如下。要求:(1)实现这个类;(2)定义并实现一个小车类car,是它的公有派生类,小车本身的私有属性有载人数,小车的函数有init(设置车轮数,重量和载人数),getpassenger(获取载人数),print(打印车轮数,重量和载人数)。class vehicleprotected:int wheels;/

7、车轮数float weight;/重量public:void init(int wheels,float weight);int get_wheels();float get_weight();void print();void vehicle:init(int wheels,float weight)this->wheels=wheels;this->weight=weight;cout<<wheels<<endl;int vehicle:get_wheels()return wheels;float vehicle:get_weight()return

8、weight;void vehicle:print()cout<<"车轮数:"<<wheels<<","<<"重量:"<<weight<<endl;答案:class car:public vehicleprivate:int passengers;public:void init(int wheels,float weight,int pass);int getpassenger();void print();;void car:init(int wheels,f

9、loat weight,int pass)vehicle:init(wheels,weight);passengers=pass;int car:getpassenger()return passengers;void car:print()vehicle:print();cout<<"可载人数:"<<passengers<<endl;_六、程序设计题(本大题共1小题,共10分)1. 求n(n=3)个学生的最高分和最低分及姓名,已有student类声明和main函数,完成student类的实现部分。#include <iostrea

10、m.h>#include <string.h>class studentchar name10;int deg;public:student(char na="",int d=0);char * getname();friend int compare(student &s1,student &s2);int getdeg();void main()student st=student("王强",74),student("李刚",68),student("张雪",84);int i

11、=0,min=0,max=0;for(i=1;i<3;i+)if(compare(stmax,sti)=-1)max=i;if(compare(stmin,sti)=1)min=i;cout<<"最高分:"<<stmax.getdeg()<<"姓名:"<<stmax.getname()<<endl;cout<<"最低分:"<<(*(st+min).getdeg()<<"姓名:"<<stmax.getna

12、me()<<endl;答案:student:student(char na,int d)strcpy(name,na);deg=d;char * student:getname()return name;int compare(student &s1,student &s2)if(s1.deg>s2.deg)return 1;else if(s1.deg=s2.deg)return 0;else return -1;int student:getdeg()return deg;_六、程序设计题(本大题共1小题,共10分)1. 写一个程序,定义一个抽象类Shap

13、e,由它派生3个类:Square(正方形)、Trapezoid(梯形)和Triangle三角形。用虚函数分别计算几种图形面积、并求它们的和。要求用基类指针数组,使它每一个元素指向一个派生类对象。#include <iostream.h>class Shapepublic:virtual double area()const=0;答案:class Square:public Shapepublic:Square(double s):side(s)double area() constreturn side*side;private:double side;class Trapezoid:public Shapepublic:Trapezoid(double i,double j,double k):a(i),b(j),h(k)double area() constreturn (a+b)*h/2);private:double a,b,h;class Triangle:public Shapepublic:Triangle(double i,double j):w(i),h(j)double area() constreturn(w*h/2);private:double w,h

温馨提示

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

评论

0/150

提交评论