C++实验 类和对象——普通数学题计算

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

实验报告

实验九类和对象(1)

一、实验目的

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

2.掌握类对象的定义;

3.理解类的成员的访问控制的含义,公有、私有和保护成员的区别;4.掌握构造函数和析构函数的含义与作用、定义方式和实现,能够根据要求正确定义和重载构造函数。能够根据给定的要求定义类并实现类的成员函数。

二、实验内容

1. 输入以下程序,并写出程序的输出结果。

定义一个描述三角形的类Tri,具体要求如下:

(1)私有数据成员

double a, b, c: 三角形的三边。

(2) 公有成员函数

Tri(double x, double y, double z):构造函数,用x, y, z 初始化a, b,c, 对指定的对象初始化。

double Peri( ) : 求三角形的周长。

double Area( ): 求三角形的面积。

void Show( ): 输出三角形的各种参数(边长、周长、面积)。

(3) 在主程序中定义两个三角形对象:三角形tri1, 边长分别为3,4,5,三角形tri2,边长分别为5,6,7,用构造函数初始化这两个对象a,然后输出这两个三角形的各种参数。将文件命名为。

#include<>

#include<>

class Tri

{ double a,b,c; 根据程序要求,完善程序后输入源程序,编译连接,并写出运行结果。

如果某个自然数除了1和它本身外还有其他因子,则这个自然数就是合数(非素数)。试定义一个类NUM,从3开始向上试探找出n个连续的自然数,且它们都是合数。当找到第一组连续n个合数后,即停止查找。

具体要求如下:

(1) 私有数据成员:

int n : 存放满足条件的连续自然数的个数。

int *p: 根据n的值申请一个动态数组用来存放求出的满足条件的n个自然数。

(2) 公有成员函数。

NUM(int n1):构造函数,用n1初始化n,根据n的值申请动态数组空间,使p指向该动态数组空间。

int yes(int x):判定x是否为合数。如果是,返回1,否则返回0。

void fun(): 从3开始向上试探找出n个连续的自然数,且它们都是合数,并依次放入动态数组。

void print(): 输出满足条件的n个合数。

~NUM(): 析构函数,释放动态数组所占用的存储空间。

(3) 在主函数中定义一个NUM类的对象num, 求出10个连续的合数。然后通过对象num调用成员函数求出10个连续的合数,并输出计算结果。

将文件命名为。

#include<>

class

NUM{

仿照样例程序编写程序

定义一个字符串类STR,从左到右对字符串中每个字符删除其后所有相同的字符,只留下第一次出现的那一个。例如,若字符串为"cocoon",删除重复出现的字符后,其结果是字符串"con"。

具体要求如下:

(1) 私有数据成员:

char *s1: 指向原字符串,存放字符串的空间需动态分配。

char *s2: 指向结果字符串,存放字符串的空间需动态分配。

(2) 公有成员函数

STR(char *str):构造函数,用str初始化s1,动态分配s1和s2指向的空间。

void delsame( ):删除重复出现的字符。

void show( ):输出原字符串和结果字符串。

~STR( ):析构函数,释放动态分配的存储空间。

(3) 在主函数中定义一个STR类的对象test, 用字符串"concoon"初始化test, 通过调用成员函数完成删除工作,输出删除前后的两个字符串。

代码:

#include

#include

using namespace std;

class STR

{

private:

char *s1;

char *s2;

public:

STR(char *str):s1(str)

{

s2 = new char[strlen(str)+1];

}

进阶提高

圆盘找数问题。定义一个圆盘类Circle,用20个随机数组成一个圆(首尾相接),分别求出连续的四个数之和为最大的四个数及其和值)以及连续的四

个数之和为最小的四个数(输出整个数列、最大、最小的四个数及其和值。)具体要求如下:

(1) 私有数据成员

int num[20]: 存放生成的20个随机数

int Max[4]: 存放20个随机数中连续4个数之和中最大的那4个连续的数int Min[4]: 存放20个随机数中连续4个数之和中最小的那4个连续的数int sum_max: 存放20个随机数中连续4个数之和中最大的和

int sum_min: 存放20个随机数中连续4个数之和中最小的和

(2) 公有成员函数:

Circle(): 构造函数, 用20个随机数初始化圆盘中的num数组

void Find_Max(): 圆盘类的主要操作, 寻找符合条件(和为最或最小)的连续的4个数

void Show(void): 输出圆盘类的整个数列,最大、最小的四个数及其和值(3) 在主函数中定义一个Circle类的对象cir, 用20个随机数初始化该对象cir,通过调用成员函数完成题目要求的任务。

将文件命名为。

要求:

代码:

#include

#include

using namespace std;

class Circle

{

相关文档
最新文档