实验一 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勉强会用了。

 


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值