C++对C的扩充

《 面向对象程序设计 》实验报告一 

(说明:此部分应包含:实验内容、实验步骤、实验代码、实验结果及分析等。)

实验内容:

1.纠错题:

代码:

#include<iostream>

using namespace std;

int main()

{

       int a, b;

       int c = a + b;

       cout << "a+b=" << a + b;

}

编译结果:

2.纠错题: 有如下程序段,请补充完整并修改正确,使代码运行后能正确输出i,j,r,*p的值。

代码:

#include<iostream>

using namespace std;

int main()

{

      int i = 0;

      int j = 1;

      int &r = i;

      r = j;

      int *p = &i;

      *p = r;

      cout << i << j << r << *p << endl;

}

运行结果:

3.编一个程序,将两个字符串连接起来,结果取代第一个字符串。要求用string方法。

实验代码:

#include <iostream>

using namespace std;

int main()

{

    string s1 = "shang", s2 = "ke";

    cout << "s1=" << s1 << endl;

    cout << "s2=" << s2 << endl;

    s1 = s1 + s2;

    cout << "the outcome is : " << s1 << endl;

    return 0;

}

运行结果:

4.输入两个整数,将它们按由小到大的顺序排序输出。要求使用变量的引用作为函数形参

实验代码:

#include<iostream>

using namespace std;

int order(int &a,int &b)

{

       if(a>b)

       {

                cout<<b<<" "<<a<<endl;

       }

       else if(a<b)

       {

                        cout<<a<<" "<<b<<endl;

       }

       else

       {

                cout<<"两数相等,请重新输入"<<endl;

       }

}

int main()

{

       int a,b;

       cout<<"请输入两个数:"<<endl;

       cin>>a>>b;

       int n=order(a,b);

        cout<<"两数从小到大的顺序为:"<<n<<endl;

        return 0;

}

运行结果:

5.从键盘输入5个数,然后将这5个数按逆转后的顺序输出出来。要求逆转顺序的函数能够处理整型、双精度型、字符串类型的数据(用函数重载实现)

实验代码:

#include <iostream>

#include <string>

using namespace std;

// 逆转输出整型数组

void change(int arr[], int size) {

    for (int i = size - 1; i >= 0; --i) {

        cout << arr[i] << " ";

    }

    cout << endl;

}

// 逆转输出双精度型数组

void change(double arr[], int size) {

    for (int i = size - 1; i >= 0; --i) {

        cout << arr[i] << " ";

    }

    cout << endl;

}

// 逆转输出字符串数组

void change(string arr[], int size) {

    for (int i = size - 1; i >= 0; --i) {

        cout << arr[i] << " ";

    }

    cout << endl;

}

int main() {

    int intArr[5];

    double doubleArr[5];

    string stringArr[5];

    cout << "输入5个整数: ";

    for (int i = 0; i < 5; ++i) {

        cin >> intArr[i];

    }

    change(intArr, 5);

    cout << "输入5个双精度数: ";

    for (int i = 0; i < 5; ++i) {

        cin >> doubleArr[i];

    }

    change(doubleArr, 5);

    cout << "输入5个字符串数据: ";

    for (int i = 0; i < 5; ++i) {

        cin >> stringArr[i];

    }

    change(stringArr, 5);

    return 0;

}

运行结果:

6.用重载方式编写函数area,实现(1)计算圆形面积; (2)计算长方形面积。

实验代码:

#include <iostream>

using namespace std;

const double PI = 3.14;

double area(double r) { return PI * r * r; }

double area(double a, double b) { return a * b; }

int main() {

    double r, m, n;

    cout << "请输入圆的半径:";

    cin >> r;

    cout << "圆的面积为:" << area(r)  << endl;

    cout << "请输入长方形的边长:";

    cin >> m >> n;

    cout << "长方形的面积为:" << area(m, n) << "  " << endl;

 

    return 0;

}

运行结果:

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值