C++实验报告.docx
- 文档编号:8570970
- 上传时间:2023-01-31
- 格式:DOCX
- 页数:8
- 大小:47.16KB
C++实验报告.docx
《C++实验报告.docx》由会员分享,可在线阅读,更多相关《C++实验报告.docx(8页珍藏版)》请在冰豆网上搜索。
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
};
template
voidY
:
get(Tm)
{x=m;
inti=1;
X
X
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
while(head)
{t=head;
Tx=head->p;
cout<<""< head=head->next; deletet; } cout< } intmain() {intm; Y 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; } 六.验证结果 六.心得与感想 这次实验的过程中,我遇到了许多困难。 一方面,这说明了我的实践能力还需进一步加强;另一方面,我收到了老师和同学们的帮助以及通过上网查资料解决自己的疑问。 通过这一次的实验,我对自己的程序有了更加深刻的理解,也有了更深的兴趣。 同时,对于同一个问题的看法,每一个人的看法都不相同,在讨论中我们交换了各自的想法,加深了对课程知识的理解,也获得了更好的实际动手能力。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- C+ 实验 报告