平时实习题目 - 答案_求职面试_求职职场_应用文书.doc_第1页
平时实习题目 - 答案_求职面试_求职职场_应用文书.doc_第2页
平时实习题目 - 答案_求职面试_求职职场_应用文书.doc_第3页
平时实习题目 - 答案_求职面试_求职职场_应用文书.doc_第4页
平时实习题目 - 答案_求职面试_求职职场_应用文书.doc_第5页
已阅读5页,还剩10页未读 继续免费阅读

下载本文档

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

文档简介

第一次1、 问题的提出:编写程序熟悉拷贝函数的三种用法。理解临时对象的概念,并知道它的作用、何时被创建、何时被析构。补充:同时请尝试派生类的拷贝构造函数的三种调用与析构。#include stdafx.h#includeusing namespace std;class Basepublic:Base()cout 基类构造函数被调用。endl;Base(Base &p)cout 基类拷贝构造函数被调用。endl;Base()cout 基类析构函数被调用。endl;class Paisheng:public Basepublic:Paisheng()cout 派生类构造函数被调用。endl;Paisheng(Base &p)cout 派生类拷贝函数被调用。endl;Paisheng()cout 派生类析构函数被调用。endl;void fun1(Base p)Base fun2()cout在fun2开始建立基类对象base_obj用于返回.endl;Base basefun_obj;cout建立基类对象base_obj成功。endl;cout开始返还基类对象.endl;return basefun_obj;Paisheng fun3()cout在fun3开始建立派生类对象pai_obj用于返回.endl;Paisheng paifun_obj;cout建立基类对象pai_obj成功。endl;cout开始返还派生类对象.endl;return paifun_obj;int main()cout开始建立基类对象base_obj1.endl;Base base_obj1;cout建立基类对象base_obj1成功。nendl;cout开始建立基类对象base_obj2,用已有基类对象base_obj1初始化.endl;Base base_obj2(base_obj1);cout建立基类对象base_obj2成功。nendl;cout开始调用函数Fun1,用基类对象base_obj1作为实参传递.endl;fun1(base_obj1);cout基类对象为实参调用函数fun1成功。nendl;cout开始调用函数Fun2,返回值为基类对象.endl;fun2();cout基类对象作为返回值调用函数fun2成功。nendl;coutendl;cout开始建立派生类对象pai_obj1.endl;Paisheng pai_obj1;cout建立派生类对象pai_obj1成功。nendl;cout开始建立派生类对象pai_obj2,用已有派生类对象pai_obj1初始化.endl;Paisheng pai_obj2(pai_obj1);cout建立派生类对象pai_obj2成功。nendl;cout开始调用函数Fun1,用派生类对象pai_obj1作为实参传递.endl;fun1(pai_obj1);cout派生类对象为实参调用函数fun1成功。nendl;cout开始调用函数Fun3,返回值为派生类对象.endl;fun3();cout派生类对象作为返回值调用函数fun3成功。nendl;coutendl;return0;调试结果:2、 问题的提出:17世纪法国数学家加斯帕的一本数学的游戏问题描述了许多有趣问题,约瑟问题就是其中之一:15名基督教徒和15名异教徒同乘一船航行,途中风浪大作,危机万分,领航者告诉大家,只要将全船的一半人投入海中,其余人就能幸免。大家都同意这个办法,并协定者30人围成一圈;由第一个人起报数,每数至第9人便把他投入海中,下一个接着从1开始报数,第9人又被投入海中,依次循环,直至剩下15人为止。问题是如何排法使投入海中的人全为异教徒?补充:同时请尝试输入人数,输出人数,间隔人数均由用户输入。#include stdafx.h#includeusing namespace std;class SUANFApublic:SUANFA(int a,int b,int c)m_n=a;m_s=b;m_w=c;voidgetresult();private:int m_n,m_s,m_w;void SUANFA:getresult()inta100;inti,j,p;intk=0;for(i=0;im_n;i+)ai=1;i=0;for(k=0;km_n-m_s;k+)for(j=1;im_n;i+)if(ai!=0)j+;if(j=m_w+1)ai=0;break;if(i=m_n-1)i=-1;cout应该是坐的位置分别为:endl;for(i=0;im_n;i+)if(ai!=0)cout第(i+1) ;cout位endl;int main()intn,s;cout请输入总人数:n;cout请输入可以存活的人数:s;intw;cout请输入间隔数据:w;SUANFAa(n,s,w);a.getresult();return0;调试结果:第二次1、 对友元函数使用的尝试。#include stdafx.h#includeusing namespace std;classApublic:A(int c=0)a=c;friendclass B;friendvoid Fun(A &);private:int a;classBpublic:B()cout类B的构造函数被调用。endl;coutobj.aendl;private:Aobj;void Fun(A &o)cout友元函数调用成功。endl;couto.aendl;int main()Aobj1;Bobj2;Fun(obj1);return0;调试结果:2、 一个基类CShape,类中含有一个纯虚函数void GetArea(); 在此基础上派生出CRectangle类和CCircle类,实现函数GetArea()。要求:a) 构造函数需要重载,能够传入计算面积所需要的成员变量b) 将计算的面积结果能更输出,写出测试函数main().#include stdafx.h#includeusing namespace std;const double PI=3.14;class CShapepublic:CShape()cout 基类CShape的构造函数被调用。endl;virtual void GetArea()=0;CShape()cout 基类CShape的析构函数被调用。endl;class CRectangle:public CShapepublic:CRectangle(double aaa,double bbb):CShape()m_a=aaa;m_b=bbb;cout 派生类CRectangle的构造函数被调用。endl;void GetArea()cout 矩形的面积是:m_a*m_bendl;cout 派生类CRectangle的GetArea被调用。nendl;coutendl;CRectangle()cout 派生类CRectangle的析构函数被调用。endl;private:doublem_a,m_b;class CCircle:public CShapepublic:CCircle(double rrr):CShape()m_r=rrr;cout 派生类CCircle的构造函数被调用。endl;void GetArea()cout 圆形的面积是:m_r*m_r*PIendl;cout 派生类CCircle的GetArea被调用。endl;cout endl;CCircle()cout 派生类CCircele的析构函数被调用。endl;private:doublem_r;int main()double aa,bb;cout请输入矩形的长和宽:aabb;cout开始建立CRectangle派生类对象obj1传参.endl;CRectangleobj1(aa,bb);cout开始建立基类指针并使其指向派生类CRectangle的对象obj1.endl;CShape*p=&obj1;coutendl;cout利用CRectangle派生类对象名使用函数.endl;obj1.GetArea();cout利用基类指针指向函数.GetArea();coutendl;double rr;cout请输入圆的半径:rr;cout开始建立派生类CCircle对象obj2并传参.endl;CCircleobj2(rr);cout使基类指针P指向派生类CCircle的对象obj2.endl;p=&obj2;cout利用CRectangle派生类对象名使用函数.endl;obj2.GetArea();cout利用基类指针P指向函数.GetArea();coutendl;cout开始进行析构.endl;coutendl;return0;调试结果:第三次1、 数max(a,b),功能是计算a和b的最大值。要求:c) 先用函数模板T max(T a, T b)实现d) 再用类模板实现该函数,其中含有一个成员函数T max(T a, T b).e) a和b的值可有系统cin语句读入,写出测试函数。函数:#include stdafx.h#includeusing namespace std;templateT max(T a, T b) if(ab)return a;elsereturn b;int main()intm;cout请输入您需要比较数据类型的代码:1-int,2-double,3-float,4-char,5-boolm;switch(m)case 1:int a1,b1;cout请输入两个int型的数据:a1b1;cout较大的值是:max(a1,b1)endl;break;case 2:double a2,b2;cout请输入两个double型的数据:a2b2;cout较大的值是:max(a2,b2)endl;break;case 3:float a3,b3;cout请输入两个float型数据:a3b3;cout较大的值是:max(a3,b3)endl;break;case 4:char a4,b4;cout请输入两个char型数据:a4b4;cout较大的值是:max(a4,b4)endl;break;case 5:bool a5,b5;cout请输入两个bool型数据:a5b5;cout较大的值是:max(a5,b5)endl;break;return 0;结果:类模板:#include StdAfx.h#include using namespace std;templateclass Ttrypublic:T max(T a, T b);templateT Ttry:max(T a,T b)if(ab)return a;else return b;int main()Ttry obj1;int m1,n1;cout请输入两个int型的数据:m1n1;cout较大的是:obj1.max(m1,n1)endl;Ttry obj2;double m2,n2;cout请输入两个double型的数据:m2n2;cout较大的是:obj2.max(m2,n2)endl;Ttry obj3;char m3,n3;cout请输入两个char型的数据:m3n3;cout较大的是:obj3.max(m3,n3)endl;return 0;2、 使用vector容器实现一个类模板CArray(),实现功能如下:a) 构造函数中传入数组元素的个数b) 重载操作符,能够用取出对象数组中的某个元素。#include StdAfx.h#include #include using namespace std;templateclass CArraypublic:CArray(int s) size=s;T& operator(int i) return vtri-1;void Setarray(T x) vtr.push_back(x);private: int size; vector vtr;int main()int a,b;cout请输入数组总个数:a;CArray array(a);cout请分别输入数组元素:endl;for(int i=0;ib;array.Setarray(b);cout需要输出的元素是第几个元素: j;coutarrayj ;coutendl;return 0;第四次1、 一个异常类CExcep,有成员函数Reason(),用来显示异常的类型。定义函数fn1()触发异常,在main()函数的try模块中调用fn1(),在catch模块中捕获异常,在每个函数中输出一条说明语句。要求输出执行结果。#include stdafx.h#includeusing namespace std;class CExceppublic:void Reason();void fn1();void CExcep:Reason()cout出现CExcep类的异常。endl; void CExcep:fn1()int a=0;coutfn1开始抛出异常.endl;Reason();throw a;int main()tryCExcep obj;cout开始调

温馨提示

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

评论

0/150

提交评论