程序设计与问题求解习题与答案_第1页
程序设计与问题求解习题与答案_第2页
程序设计与问题求解习题与答案_第3页
程序设计与问题求解习题与答案_第4页
程序设计与问题求解习题与答案_第5页
已阅读5页,还剩4页未读 继续免费阅读

下载本文档

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

文档简介

1、课号 课程名称 程序设计与问题求解 适用班级(专业) 考试时间 120 分钟 座位号 学号 姓名 题号一二三四五六七八成绩满分501040得分评卷人一、阅读程序,写出程序运行结果(每题10分,5题共50分)1. 简单的类定义#include<iostream>#include<string>using namespace std; #include<iostream>using namespace std;class MyClassint m;public:static int n;MyClass( ) m=0;void setvalue( )m+;n+;v

2、oid output( )cout<<"m="<<m<<", n="<<n<<endl;int MyClass: n=2; void main( )MyClass obj1, obj2;obj1.setvalue( );obj1.output( );obj2.setvalue( );obj2.output( );2继承#include <iostream.h>class Tcprivate:int A, B;public:Tc(int a=1, int b=2);int Acout(

3、 ) return A; int Bcout( ) return B; ;Tc:Tc(int a, int b)A=a;B=b;void main( )Tc c1, c2(5), c3(10, 20);cout << "c1:(" << c1.Acout( ) << "," << c1.Bcout( ) << ")" << endl;cout << "c2:(" << c2.Acout( ) << "

4、;," << c2.Bcout( ) << ")" << endl;cout << "c3:(" << c3.Acout( ) << "," << c3.Bcout( ) << ")" << endl;3. 构造函数#include<iostream>using namespace std;class MySubprivate:int x, y;public:MySub(int a, i

5、nt b): x(a), y(b)cout << "调用构造函数1." << endl;MySub(MySub &p)x=p.x;y=p.y;cout << "调用构造函数2." << endl;MySub( )cout << "调用析构函数." << endl;int sub( ) return x-y;void main( )MySub p1(9, 3);MySub p2=p1;cout << p2.sub( ) << endl

6、;MySub p3(6,9);4、字符串相关操作类#include<iostream>#include<string>using namespace std; class strtype public:strtype(char* ptr); strtype();void show(); private:char* p;int len; ;strtype:strtype(char* ptr) len=strlen(ptr); p=new charlen+1; if(!p) cout<<"Allocation error n" exit(1)

7、; cout<<"Creating string"<<endl; strcpy(p,ptr);strtype:strtype() cout<<"Deleting string"<<endl; delete p;void strtype:show()cout<<p<<"nlength: "<<len<<endl;void main()strtype s1("we study new and delete");s1.show

8、();5运算符重载#include<iostream>#include<string>using namespace std; #include<iostream>using namespace std;class complex int real; int imag;public:complex(int r=0,int i=0):real(r),imag(i) void show()cout<<real<<(imag<0 ? "":"+")<<imag<<'

9、;i'<<endl;complex& operator +=(complex &c) real+=c.real; imag+=c.imag; return c;complex& operator -=(complex &c) real-=c.real; imag-=c.imag; return c;friend complex& operator -(complex &);friend complex& operator +(complex &);complex& operator -(complex

10、&c) c.real-; c.imag-; return c;complex& operator +(complex &c) c.real+; c.imag+; return c;void main() int i=10,j=3,m=2,n=-6; complex test1(i,j); test1.show(); test1-; complex test2(m,n); test2.show(); test2+; test1+=test2; test1.show(); test2-=test1; test2.show();二、补充程序(共10分)1. Point.h 类

11、声明如下#ifndef POINT_H#define POINT_Hclass Pointint x, y; /点Ì?的Ì?x和¨ªy坐Á?标À¨ºpublic:Point( int = 0, int = 0 ); / 构1造¨¬函¡¥数ºyvoid SetPoint(int, int); / 设¦¨¨置?坐Á?标À¨ºint GetX(); / 取¨?x坐Á?标À&

12、#168;ºint GetY(); / 取¨?y坐Á?标À¨ºvoid Print(); /输º?出?点Ì?的Ì?坐Á?标À¨º#endif请在Point.cpp写出类的定义三、 程序设计(每题20分,2题共40分)1. 编写一个程序设计一个栈操作类,包含入栈和出栈成员函数,然后入栈一组数据,出栈并显示出栈顺序。2. 要求计算正方体、球和圆柱3个几何体的表面积和体积。可以抽象出一个公共的基类Base,把它作为抽象类,在该类内定义求表面积和体积的纯虚函数。在抽象类中可

13、以定义一个数据成员length,它可作为球的半径、正方体的边长或圆柱体底面积的半径。请用C+语言定义上述类。并在主函数中使用多态性,分别计算出边长为5的正方体的体积,球半径为5的球的体积,以及圆柱体底半径为5高为5的圆柱体的体积。答案:Ps:截图少了3个“调用析构函数.”Ps:截图同样少了“Deleting string”二、程序补充:#include <iostream>using namespace std;#include "point.h" (1分)Point:Point( int a, int b ) (3分)SetPoint( a, b ); voi

14、d Point:SetPoint( int a, int b ) (2分)x = a;y = b;int Point:GetX() (1分)return x;int Point:GetY() (1分)return y;void Point:Print() (2分) cout << '' << x << ", " << y << ''<<endl;程序设计1:#include<iostream.h>struct list/定义栈 (3分)int data;lis

15、t *next;class Stack/定义一个栈操作类 (8分) list *ptr;/栈指针public:Stack() ptr = NULL; void push(int i);int pop(); ;void Stack:push(int x)/入栈成员函数 (3分)list *newnode = new list;newnode->data = x;newnode->next = ptr;ptr = newnode;int Stack:pop()/出栈成员函数 (3分)list *top;int value;value = ptr->data;top = ptr;p

16、tr = ptr->next;delete top;return value;void main() (3分)Stack a;int arr = 5,2,8,1,4,3,9,7,6;cout << "入栈顺序:"for (int i=0; i<9; i+)cout << arri << " "a.push(arri);cout << endl << "出栈顺序:"for (i=0; i<9; i+)cout << a.pop() <<

17、 " "cout << endl;程序设计2:#include<iostream>#include<string>.(1分)class Base (4分)protected:float length;public:Base(float f) length=f; virtual float Area()=0;virtual float Volume()=0;class Cube: public Base (2分)public:Cube(float f): Base(f) float Area()=0;float Volume()=0;cla

18、ss Sphere: public Base (2分)public:Sphere (float f): Base(f) float Area()=0;float Volume()=0;class Cylinder: public Base (2分)float height;public:Cylinder (float l, float h): Base(l) height=hfloat Area()=0;float Volume()=0;float Cube:Area().(1分)return (length * length *6); float Cube: Volume ().(1分)return (length * length * length);float Sphere:Area().(1分)return (4 * 3.1416 * length * lengt

温馨提示

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

评论

0/150

提交评论