厦大计算机系C++程序设计实验(一)

1 实验目的

熟悉C++中输入、输出流的使用方法,体会函数重载的优点及其使用规则,学会如何利用new和delete进行动态内存分配。

2 实验内容

(1)C++输入输出流

要求:输入一个整数,判断数的奇偶性后输出结果,要求使用C++输入输出流完成。

(2)C++的函数扩展

要求:编写几个计算面积的函数,分别计算圆、矩形、梯形和三角形的面积。

double area(double radius=0);             // 圆面积,参数为半径

double area(double a, double b);           // 计算矩形面积,参数为长和宽

double area(double a, double b,double h);   // 计算梯形面积,参数为两底和高

double area(double a, double b,double c, int);// 三角形,参数为三边长,int型参数起表示作用,以区别于梯形,不参加计算。

(3)C++的动态内存分配

要求:使用new来创建一个包含5个int类型的动态数组[5,3,9,8,6],并输出最大值和最小值,最后使用delete来释放该数组

3 实验步骤

(1)C++输入输出流

首先声明一个整数,利用cin为其赋值,然后通过模2来判断奇偶性。原代码如下:

#include <iostream>

int main()
{
    using namespace std;

    int num;

    cout << "please input a integer: ";
    cin >> num;
    if(num % 2 == 1)
        cout << num << " is odd." <<endl;
    else
        cout << num << " is even." <<endl;

    return 0;
}

(2)C++的函数扩展

本题考察函数重载的使用。注意到同名函数的参数列表需要不同,因而在最后一个函数的参数列表中故意设置一个flag以区别前面的函数。源代码如下:

#include <iostream>
#include <math.h>

double area(double radius) // 圆面积,参数为半径
{
    const double Pi = 3.1415927;
    double circle_area;

    circle_area = Pi * radius * radius;

    return circle_area;
}

double area(double a, double b)// 计算矩形面积,参数为长和宽
{
    double rectangle_area;

    rectangle_area = a * b;

    return rectangle_area;
}

double area(double a, double b, double h)// 计算梯形面积,参数为两底和高
{
    double trapezoid_area;

    trapezoid_area = 0.5 * (a + b) * h;

    return trapezoid_area;
}

double area(double a, double b, double c, int flag)// 三角形,参数为三边长,int型参数起表示作用,以区别于梯形,不参加计算
{
    double triangle_area, semiperimeter;

    semiperimeter = (a + b + c) / 2;
    triangle_area = sqrt(semiperimeter * (semiperimeter - a) * (semiperimeter - b) * (semiperimeter - c));

    return triangle_area;
}

int main()
{
    using namespace std;

    double radius, circle_area;
    cout << "please input radius: ";
    cin >> radius;
    circle_area = area(radius);
    cout << "circle's area: " << circle_area << endl;

    double a, b, rectangle_area;
    cout << "please input length and width: ";
    cin >> a >> b;
    rectangle_area = area(a,b);
    cout << "rectangle's area: " << rectangle_area << endl;

    double h, trapezoid_area;
    cout << "please input topline, baseline and height: ";
    cin >> a >> b >> h;
    trapezoid_area = area(a,b,h);
    cout << "trapezoid's area: " << trapezoid_area << endl;

    double c, triangle_area;
    cout << "please input length of three sides: ";
    cin >> a >> b >> c;
    triangle_area = area(a,b,c,1);
    cout << "triangle's area: " << triangle_area << endl;

    return 0;
}

(3)C++的动态内存分配

首先利用new申请一个具有五个元素的整型数组指针变量,然后赋值,寻找最值,最后,利用delete释放内存。代码如下:

#include <iostream>

int main()
{
    using namespace std;

    int *a = new int[5];
    a[0] = 5;
    a[1] = 3;
    a[2] = 9;
    a[3] = 8;
    a[4] = 6;

    int max = a[0], min = a[0];
    for(int i=1;i<5;++i)
    {
        if(a[i]>max)
            max = a[i];
        else if(a[i]<min)
            min = a[i];
    }
    cout << "max: " << max <<endl
         << "min: " << min <<endl;

    delete []a;

    return 0;
}

4 实验结果

(1)C++输入输出流

输入5,有

输入6,有

(2)C++的函数扩展

输入圆的半径:3;

长方形的长:4,宽:3;

梯形的上底:2,下底:4,高2;

三角形三边:3,4,5。

输出有:


(3)C++的动态内存分配


5 心得小结

通过本次实验,我学会了如何使用C++的输入输出流进行基本的输出、赋值等操作,熟悉了如何利用new和delete进行动态内存的申请,了解了函数重载的使用方法。在编程实践中,发现自己对于动态内存申请的一些操作还不太熟悉,还不能很好的同C语言的一些规则区分开来,需要再看书练习加以巩固。

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值