"2023年面向对象程序设计实验指导书"
本实验指导书是面向对象程序设计课程的实验指导书,旨在帮助学生熟悉面向对象程序设计的基本概念和编程技术。实验指导书共分为三个实验,每个实验都涵盖了面向对象程序设计的不同方面。
实验一:熟悉VC++IDE开发环境
------------------------
### 实验目的
1. 熟悉 VC++6.0 集成开发环境,纯熟掌握 VC++6.0 项目工作区、各种编辑器、菜单栏和工具栏的使用。
2. 掌握如何编辑、编译、连接和运营一个 C++程序。
3. 通过运营简朴的 C++程序,初步了解 C++ 源程序的结构和特点。
### 实验规定
1. 分析下列程序运营的结果。
```
程序一:
#include <iostream.h>
int add(int x, int y = 8);
void main() {
int x = 4;
cout << add(x) << ",";
cout << add(x, add(x, add(x))) << endl;
}
int add(int x, int y) {
return x + y;
}
```
程序二:
```
#include <iostream.h>
void main() {
int *p, i;
i = 5;
p = &i;
i = *p + 10;
cout << "i=" << i << endl;
}
```
程序三:
```
#include <iostream.h>
void main() {
int i = 10;
int &r = i;
r++;
cout << "i=" << i << ", r=" << r << '\n';
i = 88;
cout << "i=" << i << ", r=" << r << '\n';
}
```
程序四:
```
#include <iostream.h>
int f(int i) {
static int k = 1;
for (; i > 0; i--)
k += i;
return k;
}
void main() {
int i;
for (i = 0; i < 5; i++)
cout << f(i) << " ";
}
```
程序五:
```
#include <iostream.h>
void func();
int n = 1;
void main() {
static int a;
int b = -9;
cout << "a:" << a << " b:" << b << " n:" << n << endl;
b += 4;
func();
cout << "a:" << a << " b:" << b << " n:" << n << endl;
n += 10;
func();
}
void func() {
static int a = 2;
int b = 5;
a += 2;
n += 12;
b += 5;
cout << "a:" << a << " b:" << b << " n:" << n << endl;
}
```
实验二:C++对C的扩充
------------------------
### 实验目的
1. 了解在面向对象程序设计过程中 C++对 C 功能的扩充与增强,并善于在编写程序的过程中应用这些新功能。
2. 进一步熟悉编辑、编译、连接和运营 C++程序的方法。
3. 进一步熟悉 C++程序的结构和编程方法。
### 实验规定
1. 分析下列程序运营的结果。
```
#include <iostream.h>
int amount = 123;
void main() {
int amount = 456;
cout << ::amount << ',';
cout << amount << ',';
::amount = 789;
cout << ::amount << ',';
cout << amount << '\n';
}
```
2. 编写一个程序,用来求2个或3个正整数中的最大数。
①用不带默认参数的函数实现。
②用带默认参数的函数实现。
3. 有5个字符串,规定对它们按由小到大顺序排列,用string方法。
4. 定义一个求两个数中较小值的函数模板min( ),规定在main( )函数中进行调用求两个浮点型数据和两个整型数据中较小的数。
实验三:类和对象(一)
------------------------
### 实验目的
1. 掌握声明类的方法,类和类的成员的概念以及定义对象的方法。
2. 掌握类的构造函数与析构函数的概念和使用方法。
3. 初步掌握用类和对象编制基于对象的程序。
### 实验规定
1. 分析下面的程序,写出其运营时的输出结果。
```
#include <iostream>
using namespace std;
class Date {
public:
Date(int, int, int);
Date(int, int);
Date(int);
Date();
void display();
private:
int month;
int day;
int year;
};
Date::Date(int m, int d, int y) : month(m), day(d), year(y) {}
Date::Date(int m, int d) : month(m), day(d) { year = 2023; }
Date::Date(int m) : month(m) { day = 1; year = 2023; }
Date::Date() { month = 1; day = 1; year = 2023; }
void display() {
cout << "month: " << month << ", day: " << day << ", year: " << year << endl;
}
```