C++实验报告.docx

上传人:b****5 文档编号:8570970 上传时间:2023-01-31 格式:DOCX 页数:8 大小:47.16KB
下载 相关 举报
C++实验报告.docx_第1页
第1页 / 共8页
C++实验报告.docx_第2页
第2页 / 共8页
C++实验报告.docx_第3页
第3页 / 共8页
C++实验报告.docx_第4页
第4页 / 共8页
C++实验报告.docx_第5页
第5页 / 共8页
点击查看更多>>
下载资源
资源描述

C++实验报告.docx

《C++实验报告.docx》由会员分享,可在线阅读,更多相关《C++实验报告.docx(8页珍藏版)》请在冰豆网上搜索。

C++实验报告.docx

C++实验报告

****大学

 

C++实验报告

 

学院:

****

班级:

****

姓名:

***

学号:

***

指导老师:

***

日期:

***

 

类的定义和使用

一.实验目的

1.掌握类的概念、类的定义格式、类与结构的关系、类的成员属性和类的封装性;

2.掌握类对象的定义;

3.理解类的成员的访问控制的含义;

4.掌握构造函数和析构函数的含义与作用、定义方式和实现;能够根据给定的要求定义类并实现类的成员函数;

5.掌握类模板的使用;

6.掌握类中的递归调用。

二.实验内容及要求

1、定义一个基类,递归调用被继承的基类成员函数,实现求素数的功能。

2、定义一个类,通过成员函数与链表的知识求出非素数的公约数。

3、写出主函数,实现数据的输入与结果的输出。

要求:

1)使用成员函数实现对数据的处理与输出;

2)在类外定义成员函数;

3)在定义计算公约数的类时,要包含结构体的数据成员;

4)在主函数中通过输入数值0来终止判断素数的循环;

三.实验要求

1)写出程序,并调试程序,要给出测试数据和实验结果。

2)整理步骤,总结经验和体会。

3)完成实验日志和上交报告。

四.算法思想

1.递归的基类

1)程序中,用A构造函数输入要求的数值:

classA{

public:

A(intx=0)

{m=x;}

intchoose(inti);

protected:

intm;

};

2)用choose成员函数对是否为素数做出判断:

3)定义派生类B,由主函数调用实现:

classB:

privateA{

public:

B(inti=0):

A(i)

{}

intchose(intx)

{returnchoose(x);}//利用递归求素数

};

2.定义结构体X起到链接的作用:

template//定义一个结构体

structX{//使用到类模板

Tp;

X*next;

};

3.定义类Y实现求x的约数:

思想:

1)通过get函数得到约数,并且head作为一串结构体类型的头指针,q指针用来开辟新空间,a指针用来连接两块空间:

2)通过puts成员函数输出约数,并释放空间:

五.源程序代码

#include

usingnamespacestd;

classA{

public:

A(intx=0)

{m=x;}

intchoose(inti);

protected:

intm;

};

intA:

:

choose(inti)

{if(m==2)

return0;

if(m<2||m%2==0)

return1;

if(m%i==0&&i*i<=m)

return1;

if(m%i==0&&i*i>m)

return0;

else

returnchoose(i+2);//对是否为素数做出判断

}

classB:

privateA{

public:

B(inti=0):

A(i)

{}

intchose(intx)

{returnchoose(x);}//利用递归求素数

};

template//定义一个结构体

structX{//使用到类模板

Tp;

X*next;

};

template

classY{

public:

Y()

{head=NULL;}

voidget(Tm);//读入合数值,求出约数

voidputs();//输出约数值

protected:

Tx;

X*head;

};

template

voidY:

:

get(Tm)

{x=m;

inti=1;

X*q;

X*a;

while(i<=x)

{

if(x%i==0)

{

q=newX;

if(!

head)

head=a=q;

q->p=i;

q->next=NULL;

if(a)

a->next=q;

a=q;

}

i++;

}

}

template

voidY:

:

puts()

{X*t;

while(head)

{t=head;

Tx=head->p;

cout<<""<

head=head->next;

deletet;

}

cout<

}

intmain()

{intm;

Yp;

cout<<"利用递归求素数(0)\nInput:

";

cin>>m;

while(m)

{Bobj(m);

if(obj.chose(3))

{cout<

"<

cout<

";

p.get(m);

p.puts();

}

else

cout<

"<

cout<<"Input:

";

cin>>m;

}

return0;

}

六.验证结果

 

 

六.心得与感想

这次实验的过程中,我遇到了许多困难。

一方面,这说明了我的实践能力还需进一步加强;另一方面,我收到了老师和同学们的帮助以及通过上网查资料解决自己的疑问。

通过这一次的实验,我对自己的程序有了更加深刻的理解,也有了更深的兴趣。

同时,对于同一个问题的看法,每一个人的看法都不相同,在讨论中我们交换了各自的想法,加深了对课程知识的理解,也获得了更好的实际动手能力。

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 高等教育 > 经济学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1