实验一 C++基础

实验名称

实验一  C++基础

实验目的和要求

(1) 熟悉基本的输入输出方法

(2) 默认形参的函掌握内联函数,带数,重载函数;

(3) 理解命名空间的概念,掌握命名空间的使用;

(4) 熟悉const关键字的使用

(5) 掌握内存的动态分配的概念和使用方法;

(6) 熟悉编译预处理命令

实验内容

(1)编写重载函数max1可分别求取2个整数、3个整数、2个双精度数、3个双精度数的最大值。

  (2)用new操作为一个包含10个整数的数组分配内存,输入若干个值到数组中,分别统计其中正数和负数的个数后再用delete操作释放内存。

主要仪器设备

台式或笔记本电脑

实验记录

1.

 

#include<iostream>

using namespace std;

#include<limits.h>

const double t = 2.2250738585072014e-308;//double最小值

class Digit{

    public:

    void setInt(int a1 = INT_MIN, int b1 = INT_MIN, int c1 = INT_MIN);

    void showInt();

    void setDouble(double a2 = t, double b2 = t, double c2 = t);

    void showDouble();

    private:

    int a, b, c;

    double x, y, z;

};

//int

void Digit::setInt(int a1, int b1, int c1){

    a = a1;

    b = b1;

    c = c1;

}

void Digit::showInt(){

    int t = (a>((b>c) ? b : c)) ? a : ((b>c) ? b : c);

    cout << t;

    cout << endl;

}

//double

void Digit::setDouble(double a2, double b2, double c2){

    x = a2;

    y = b2;

    z = c2;

}

void Digit::showDouble(){

    double t = (x>((y>z) ? y : z)) ? x : ((y>z) ? y : z);

    cout << t;

    cout << endl;

}

/*int max1(int a, int b, int c = INT_MIN)

{

    return (a>((b>c) ? b : c)) ? a : ((b>c) ? b : c);

}

double max1(double a, double b, double c = t)

{

    return (a>((b>c) ? b : c)) ? a : ((b>c) ? b : c);

}

int main()

{

    //三个整型

    int a, b, c;

    cin >> a >> b >> c;

    cout << max1(a, b, c) << endl;

//两个整型

    int d, e;

    cin >> d >> e;

    cout << max1(d, e) << endl;

//双精度

    double x, y, z;

    cin >> x >> y >> z;

    cout << max1(x, y, z) << endl;

    double p, q;

    cin >> p >> q;

    cout << max1(p, q) << endl;

    return 0;

}

*/

int main()

{

    Digit A;

    int a, b, c;

    int d, e;

    double x, y, z;

    double p, q;

    cin >> a >> b >> c;

    A.setInt(a, b, c);

    A.showInt();

    cin >> d >> e;

    A.setInt(d, e);

    A.showInt();

    cin >> x >> y >> z;

    A.setDouble(x, y, z);

    A.showDouble();

    cin >> p >> q;

    A.setDouble(p, q);

    A.showDouble();

    return 0;

}

2. 

#include<iostream>
using namespace std;
int main()
{

    int *p,i,a=0,b=0;

    p = new int[10];

    for(i=0; i<10; i++)

    {
        cin >> p[i];

        if(p[i] > 0)

            a++;

        if(p[i] < 0)

            b++;

    }

    cout << a << endl;

    cout << b;

    delete[] p;

    return 0;
}

遇到的问题和解决方法

1.用内联函数解题的时候出现了错误;

解决方法:1.不用内联函数;2.加个inline  可能这个和编译器有关,第一次编译成功,第二次就编译成功了,暂时还不明白原因。

2. 不会用new给类分配存储空间

解决方法:网上找了找资料,看了看别人的代码。

心得体会

掌握了内联函数,带默认形参的函数,重载函数

New勉强会用了。


猜你喜欢

转载自blog.csdn.net/klftespace/article/details/80798156