平时实习题目答案Word文档下载推荐.docx
- 文档编号:20385877
- 上传时间:2023-01-22
- 格式:DOCX
- 页数:20
- 大小:312.07KB
平时实习题目答案Word文档下载推荐.docx
《平时实习题目答案Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《平时实习题目答案Word文档下载推荐.docx(20页珍藏版)》请在冰豆网上搜索。
cout<
在fun2开始建立基类对象base_obj用于返回..."
Basebasefun_obj;
建立基类对象base_obj成功。
开始返还基类对象..."
returnbasefun_obj;
}
Paishengfun3()
在fun3开始建立派生类对象pai_obj用于返回..."
Paishengpaifun_obj;
建立基类对象pai_obj成功。
cout<
开始返还派生类对象..."
returnpaifun_obj;
intmain()
开始建立基类对象base_obj1..."
Basebase_obj1;
建立基类对象base_obj1成功。
\n"
开始建立基类对象base_obj2,用已有基类对象base_obj1初始化..."
Basebase_obj2(base_obj1);
建立基类对象base_obj2成功。
开始调用函数Fun1,用基类对象base_obj1作为实参传递..."
fun1(base_obj1);
基类对象为实参调用函数fun1成功。
开始调用函数Fun2,返回值为基类对象..."
fun2();
基类对象作为返回值调用函数fun2成功。
开始建立派生类对象pai_obj1..."
Paishengpai_obj1;
建立派生类对象pai_obj1成功。
开始建立派生类对象pai_obj2,用已有派生类对象pai_obj1初始化..."
Paishengpai_obj2(pai_obj1);
建立派生类对象pai_obj2成功。
开始调用函数Fun1,用派生类对象pai_obj1作为实参传递..."
fun1(pai_obj1);
派生类对象为实参调用函数fun1成功。
开始调用函数Fun3,返回值为派生类对象..."
fun3();
派生类对象作为返回值调用函数fun3成功。
return0;
调试结果:
2、问题的提出:
17世纪法国数学家加斯帕的一本《数学的游戏问题》描述了许多有趣问题,约瑟问题就是其中之一:
15名基督教徒和15名异教徒同乘一船航行,途中风浪大作,危机万分,领航者告诉大家,只要将全船的一半人投入海中,其余人就能幸免。
大家都同意这个办法,并协定者30人围成一圈;
由第一个人起报数,每数至第9人便把他投入海中,下一个接着从1开始报数,第9人又被投入海中,依次循环,直至剩下15人为止。
问题是如何排法使投入海中的人全为异教徒?
同时请尝试输入人数,输出人数,间隔人数均由用户输入。
classSUANFA
SUANFA(inta,intb,intc)
{
m_n=a;
m_s=b;
m_w=c;
}
voidgetresult();
private:
intm_n,m_s,m_w;
voidSUANFA:
:
getresult()
inta[100];
inti,j,p;
intk=0;
for(i=0;
i<
m_n;
i++)
{a[i]=1;
}
i=0;
for(k=0;
k<
m_n-m_s;
k++)
{
for(j=1;
if(a[i]!
=0)
{j++;
if(j==m_w+1)
{
a[i]=0;
break;
}
if(i==m_n-1)
{i=-1;
应该是坐的位置分别为:
{
if(a[i]!
{cout<
第"
(i+1)<
;
位"
intn,s;
请输入总人数:
cin>
>
n;
请输入可以存活的人数:
s;
intw;
请输入间隔数据:
w;
SUANFAa(n,s,w);
a.getresult();
第二次
1、对友元函数使用的尝试。
classA
A(intc=0)
{a=c;
friendclassB;
friendvoidFun(A&
);
private:
inta;
classB
B()
cout<
类B的构造函数被调用。
obj.a<
Aobj;
voidFun(A&
o)
{
友元函数调用成功。
o.a<
Aobj1;
Bobj2;
Fun(obj1);
2、一个基类CShape,类中含有一个纯虚函数voidGetArea();
在此基础上派生出CRectangle类和CCircle类,实现函数GetArea()。
要求:
a)构造函数需要重载,能够传入计算面积所需要的成员变量
b)将计算的面积结果能更输出,写出测试函数main().
constdoublePI=3.14;
classCShape
CShape(){cout<
基类CShape的构造函数被调用。
virtualvoidGetArea()=0;
~CShape(){cout<
基类CShape的析构函数被调用。
classCRectangle:
publicCShape
CRectangle(doubleaaa,doublebbb):
CShape()
m_a=aaa;
m_b=bbb;
派生类CRectangle的构造函数被调用。
voidGetArea()
矩形的面积是:
m_a*m_b<
派生类CRectangle的GetArea被调用。
~CRectangle(){cout<
派生类CRectangle的析构函数被调用。
doublem_a,m_b;
classCCircle:
CCircle(doublerrr):
m_r=rrr;
派生类CCircle的构造函数被调用。
圆形的面积是:
m_r*m_r*PI<
派生类CCircle的GetArea被调用。
~CCircle(){cout<
派生类CCircele的析构函数被调用。
doublem_r;
doubleaa,bb;
请输入矩形的长和宽:
aa>
bb;
开始建立CRectangle派生类对象obj1传参..."
CRectangleobj1(aa,bb);
开始建立基类指针并使其指向派生类CRectangle的对象obj1..."
CShape*p=&
obj1;
利用CRectangle派生类对象名使用函数..."
obj1.GetArea();
利用基类指针指向函数..."
p->
GetArea();
doublerr;
请输入圆的半径:
rr;
开始建立派生类CCircle对象obj2并传参..."
CCircleobj2(rr);
使基类指针P指向派生类CCircle的对象obj2..."
p=&
obj2;
obj2.GetArea();
利用基类指针P指向函数..."
开始进行析构..."
第三次
1、数max(a,b),功能是计算a和b的最大值。
c)先用函数模板Tmax(Ta,Tb)实现
d)再用类模板实现该函数,其中含有一个成员函数Tmax(Ta,Tb).
e)a和b的值可有系统cin语句读入,写出测试函数。
函数:
template<
classT>
Tmax(Ta,Tb)
if(a>
b){returna;
else{returnb;
intm;
请输入您需要比较数据类型的代码:
1-int,2-double,3-float,4-char,5-bool"
m;
switch(m)
case1:
inta1,b1;
请输入两个int型的数据:
cin>
a1>
b1;
较大的值是:
max(a1,b1)<
break;
case2:
doublea2,b2;
请输入两个double型的数据:
a2>
b2;
max(a2,b2)<
case3:
floata3,b3;
请输入两个float型数据:
a3>
b3;
max(a3,b3)<
case4:
chara4,b4;
请输入两个char型数据:
a4>
b4;
max(a4,b4)<
case5:
boola5,b5;
请输入两个bool型数据:
a5>
b5;
max(a5,b5)<
}
结果:
类模板:
StdAfx.h"
#include<
classTtry
Tmax(Ta,Tb);
TTtry<
T>
max(Ta,Tb)
b)
returna;
else
returnb;
Ttry<
int>
obj1;
intm1,n1;
请输入两个int型的数据:
m1>
n1;
较大的是:
obj1.max(m1,n1)<
double>
obj2;
doublem2,n2;
请输入两个double型的数据:
m2>
n2;
obj2.max(m2,n2)<
char>
obj3;
charm3,n3;
请输入两个char型的数据:
m3>
n3;
obj3.max(m3,n3)<
2、使用vector容器实现一个类模板CArray(),实现功能如下:
a)构造函数中传入数组元素的个数
b)重载操作符[],能够用[]取出对象数组中的某个元素。
vector>
classCArray
CArray(ints)
size=s;
T&
operator[](inti)
returnvtr[i-1];
voidSetarray(Tx)
vtr.push_back(x);
intsize;
vector<
vtr;
inta,b;
请输入数组总个数:
a;
CArray<
array(a);
请分别输入数组元素:
for(inti=0;
b;
array.Setarray(b);
需要输出的元素是第几个元素:
intj;
j;
array[j]<
第四次
1、一个异常类CExcep,有成员函数Reason(),用来显示异常的类型。
定义函数fn1()触发异常,在main()函数的try模块中调用fn1(),在catch模块中捕获异常,在每个函数中输出一条说明语句。
要求输出执行结果。
classCExcep
voidReason();
voidfn1();
voidCExcep:
Reason()
{cout<
出现CExcep类的异常。
fn1()
inta=0;
fn1开始抛出异常..."
Reason();
throwa;
try
CExcepobj;
开始调用触发异常的函数fn1..."
obj.fn1();
catch(int)
{cout<
捕获到异常。
调试结果:
第五次
1、I/O流以文本方式打开文件text.txt,读出其中的内容并显示出来。
程序:
fstream>
fstreamoutfile("
text.txt"
charcomment;
do
comment;
}while(outfile.get(comment));
outfile.close();
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 平时实习题目 答案 平时 实习 题目