【实训6-1】文件包含处理
(总分39)


 【实训目的】学会文件包含处理  

【第 1 步】实训内容介绍
 实训内容:学习文件包含处理。
 前置条件:掌握函数的使用
 实训过程:
         1. 实训内容介绍
         2. 包含系统文件
         3. 编写一个自定义头文件
         4. 包含头文件
         5. 改正错误
         6. 头文件的嵌套包含
         7. 实训结束

【Jitor 校验第 1 步】我已阅读实训内容介绍 // 送分题。直接点击。

 

 

【第 2 步】包含系统文件

 1、在项目 cpp6 中创建名为 cpp6_1 的源代码文件,如果项目不存在,则先创建项目,然后创建源代码文件。
 2、将下述代码复制到刚刚创建的 cpp6_1 中:

#include <iostream.h>
// 在有些实训中还包含了下述其他头文件
// #include <string.h>
// #include <math.h>

int add(int a, int b){
         return a + b;
}

void main(void) {
         int a, b;

         cout << "输入两个整数: ";
         cin >> a >> b;

         cout << "两数和是 {" << add(a, b) << "}\n";
}

 在这段代码中的第一行就是一个文件包含命令,它包含了一个名为 iostream.h 的文件,这个文件可以在下述位置找到(如果 VC60 安装在默认目录),其他头文件,如 math.h 以及 string.h 也能在这里找到:
 C:\Program Files (x86)\Microsoft Visual Studio\VC98\Include
 这个文件的内容是 iostream.h 文件的内容,文件包含命令就是把这个文件的内容原封不动地插入到上述源代码文件中 (你也可以尝试用这个文件的内容复制到cpp6_1.cpp,用于代替文件包含命令)。
 运行结果如下:

输入两个整数: 3 8
两数和是 {11}
Press any key to continue

【Jitor 校验第 2 步】 // 复制上面的代码到 VC++ 6.0 ,保存并运行。点击。

 

 

【第 3 步】编写一个自定义头文件

 这一步是编写一个你自己的头文件,命名为 my_head.h,代码见█████
 创建头文件的办法如下图所示:
 (图略,见作业)
  显示在项目中的头文件如下图所示:
  (图略,见作业)

【Jitor 校验第 3 步】 // 复制上面的代码到 VC++ 6.0 ,保存并运行。点击。

 

 

【第 4 步】包含头文件

 在cpp6_1 中加上文件包含命令,代码见█████。
 这时将出现错误信息(不要删除 cpp6_1 中的 add 函数):

cpp6_1.cpp
D:\VC60\cpp6\cpp6_1.cpp(4) : error C2084: function 'int __cdecl add(int,int)' already has a body
Error executing cl.exe.

cpp6.exe - 1 error(s), 0 warning(s)

 错误信息是重复定义了 add 函数,原因是包含了 my_head 文件后,这时 cpp6_1 就有了二个 add 函数的定义, 所以出现了重复定义。

代码如下:
// 从下一行开始复制。
#include <iostream.h>
// 在有些实训中还包含了下述其他头文件
// #include <string.h>
// #include <math.h>
#include "my_head.h"

int add(int a, int b){
         return a + b;
}

void main(void) {
         int a, b;

         cout << "输入两个整数: ";
         cin >> a >> b;

         cout << "两数和是 {" << add(a, b) << "}\n";
}
// 一直复制到上一行结束。

【Jitor 校验第 4 步】 // 复制上面的代码到 VC++ 6.0 ,保存并运行。点击。

 

 

【第 5 步】改正错误

 删除 cpp6_1 中的 add 函数,就能改正这个错误,这时运行结果如下(与第2步的结果相同):

输入两个整数: 3 8
两数和是 {11}
Press any key to continue

代码如下:
// 从下一行开始复制。
#include <iostream.h>
// 在有些实训中还包含了下述其他头文件
// #include <string.h>
// #include <math.h>
#include "my_head.h"

void main(void) {
         int a, b;

         cout << "输入两个整数: ";
         cin >> a >> b;

         cout << "两数和是 {" << add(a, b) << "}\n";
}
// 一直复制到上一行结束。

【Jitor 校验第 5 步】 // 复制上面的代码到 VC++ 6.0 ,保存并运行。点击。

 

 

【第 6 步】头文件的嵌套包含

 在头文件中还能包含另一个头文件,这叫作头文件的嵌套。作为一个嵌套的示例,完成下述三个操作:
 1、在 my_head 加入一条包含命名,包含头文件 my_head_1.h。代码如下:

// 在 my_head.h 头文件中
// 加上包含 my_head_1.h 文件的命令,这时形成文件的嵌套包含
#include "my_head_1.h"

int add(int a, int b){
         return a + b;
}


 2、创建一个名为 my_head_1.h 的头文件,文件内容是求两数差的函数 sub,代码如下:

// 在 my_head_1.h 头文件中
int sub(int a, int b){
         return a - b;
}


 3、在 cpp6_1.cpp 中增加求两数差的代码,,代码如下:

         cout << "两数差是 {" << sub(a, b) << "}\n";


 运行结果如下:

输入两个整数: 3 8
两数和是 {11}
两数差是 {-5}
Press any key to continue

 这时的包含关系是:cpp6_1.cpp 包含 my_head.h,然后 my_head.h 再包含 my_head_1.h。

// 从下一行开始复制。
#include <iostream.h>
// 在有些实训中还包含了下述其他头文件
// #include <string.h>
// #include <math.h>
#include "my_head.h"

void main(void) {
         int a, b;

         cout << "输入两个整数: ";
         cin >> a >> b;

         cout << "两数和是 {" << add(a, b) << "}\n";
         cout << "两数差是 {" << sub(a, b) << "}\n"; 
}
// 一直复制到上一行结束。

【Jitor 校验第 6 步】 // 复制上面的代码到 VC++ 6.0 ,保存并运行。点击。

 

 

【第 7 步】实训总结

 本次实训学习了文件包含。总结如下:
         1. 文件包含是将文件的内容插入到当前文件中
         2. 文件包含允许嵌套包含

【Jitor 校验第 7 步】我已阅读实训总结 // 送分题。直接点击。

 

仍有疑问 ? 联系QQ 9429444(陈海云) : 返回首页