《 面向对象程序设计 》实验报告一
(说明:此部分应包含:实验内容、实验步骤、实验代码、实验结果及分析等。) |
实验内容:
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;
}
运行结果: