【实训5-13】函数与源代码文件
(总分39)


 【实训目的】函数与源代码文件   

【第 1 步】实训内容介绍

         1. 实训内容介绍
         2. 复制初始代码
         3. array.cpp
         4. code1.cpp
         5. code2.cpp
         6. cpp5code.cpp
         7. 实训结束

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

 

 

【第 2 步】复制初始代码

 1、在项目 cpp5 中创建名为 cpp5code 的源代码文件,如果项目不存在,则先创建项目,然后创建源代码文件。
 2、先复习一下第 5 章的“【实训5-11】一维数组作为函数参数”和“【实训5-13】函数与源代码文件”,作一个回顾。
 3、将下述代码复制到 cpp5code 中:

#include <iostream.h>
/*
         这是第5章【例5-11】的完整代码,并在【例5-13】中将其拆分为四个文件
         参见教程图5-2。
*/
void input(int x[], int n);
void output(int x[], int n);
void sort(int x[], int n);

void main(void) {
         // 第一个数组
         int a[6];
         input(a, 6);
         sort(a, 6);
         output(a, 6);

         // 再次处理同一个数组(覆盖原有的数据)
         input(a, 6);
         sort(a, 6);
         output(a, 6);

         // 第二个数组(不同长度)
         int b[3];
         input(b, 3);
         sort(b, 3);
         output(b, 3);

         // 第三个数组(不同长度)
         int c[20];
         input(c, 20);
         sort(c, 20);
         output(c, 20);
}

void input(int x[], int n){ // 通用的整数数组输入函数 input(),数组长度通过参数传递
         cout << "输入" << n << "个数组元素: ";
         for(int i=0; i<n; i++){
                  cin >> x[i];
         }
}

void output(int x[], int n){ // 通用的整数数组输出函数 output(),数组长度通过参数传递
         cout << "数组元素是: ";
         for(int i=0; i<n; i++){
                  cout << "{" << x[i] << "}, ";
         }
         cout << endl;
}

void sort(int x[], int n){ // 通用的整数数组冒泡排序法,数组长度通过参数传递
         for(int i=0; i<n-1; i++) {// 一共 n-1 轮
                  for(int j=0; j<n-1-i; j++) { // 第 i 轮比较 n-i-1 次
                           if(x[j] > x[j+1]) { // 两两比较
                                    int tmp = x[j];  // t, tmp, temp 临时的缩写
                                    x[j] = x[j+1];
                                    x[j+1] = tmp;
                           }
                  }
         }
}

 运行结果如下:

输入6个数组元素: 3 4 5 1 2 6
数组元素是: {1}, {2}, {3}, {4}, {5}, {6},
输入6个数组元素: 8 4 5 7 2 6
数组元素是: {2}, {4}, {5}, {6}, {7}, {8},
输入3个数组元素: 301 116 156
数组元素是: {116}, {156}, {301},
输入20个数组元素: 29 22 21 24 25 31 27 28 39 36 23 32 33 34 30 26 37 38 40 35
数组元素是: {21}, {22}, {23}, {24}, {25}, {26}, {27}, {28}, {29}, {30}, {31}, {32}, {33}, {34}, {35}, {36}, {37}, {38}, {39}, {40},
Press any key to continue

 注意
 1:这次实训不需要你打入很多代码,而是要你复制很多代码,在复制的过程中,要清楚如何复制,以及这样做的目的。
 2:以下各步骤均参考“【实训5-13】函数与源代码文件”,与第6章“【例6-7】实例详解:文件包含与条件编译”的要求,以及图6-1的说明。

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

 

 

【第 3 步】编写array.cpp文件

 创建array.cpp文件,并按教程中的要求,从第 2 步中的代码中复制需要的部分到这个文件中。
 代码见简明教程【例5-13】第 1 步代码。

代码如下:
// 从下一行开始复制。
#include <iostream.h>

void input(int x[], int n){ // 通用的整数数组输入函数 input(),数组长度通过参数传递
         cout << "输入" << n << "个数组元素: ";
         for(int i=0; i<n; i++){
                  cin >> x[i];
         }
}

void output(int x[], int n){ // 通用的整数数组输出函数 output(),数组长度通过参数传递
         cout << "数组元素是: ";
         for(int i=0; i<n; i++){
                  cout << "{" << x[i] << "}, ";
         }
         cout << endl;
}

void sort(int x[], int n){ // 通用的整数数组冒泡排序法,数组长度通过参数传递
         for(int i=0; i<n-1; i++) {// 一共 n-1 轮
                  for(int j=0; j<n-1-i; j++) { // 第 i 轮比较 n-i-1 次
                           if(x[j] > x[j+1]) { // 两两比较
                                    int tmp = x[j];  // t, tmp, temp 临时的缩写
                                    x[j] = x[j+1];
                                    x[j+1] = tmp;
                           }
                  }
         }
}
// 一直复制到上一行结束。

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

 

 

【第 4 步】编写code1.cpp文件

 创建code1.cpp文件,并按教程中的要求,从第 2 步中的代码中复制需要的部分到这个文件中。
 代码见简明教程【例5-13】第 2 步代码。

代码如下:
// 从下一行开始复制。
void input(int x[], int n);
void output(int x[], int n);
void sort(int x[], int n);

void function1(void) {
         // 第一个数组
         int a[6];
         input(a, 6);
         sort(a, 6);
         output(a, 6);

         // 再次处理同一个数组(覆盖原有的数据)
         input(a, 6);
         sort(a, 6);
         output(a, 6);
}
// 一直复制到上一行结束。

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

 

 

【第 5 步】编写code2.cpp文件

 创建code2.cpp文件,并按教程中的要求,从第 2 步中的代码中复制需要的部分到这个文件中。
 代码见简明教程【例5-13】第 3 步代码。

代码如下:
// 从下一行开始复制。
void input(int x[], int n);
void output(int x[], int n);
void sort(int x[], int n);

void function2(void) {
         // 第二个数组(不同长度)
         int b[3];
         input(b, 3);
         sort(b, 3);
         output(b, 3);

         // 第三个数组(不同长度)
         int c[20];
         input(c, 20);
         sort(c, 20);
         output(c, 20);
}
// 一直复制到上一行结束。

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

 

 

【第 6 步】改写cpp5code.cpp文件

 最后是修改cpp5code.cpp文件,删除大部分内容,仅保留对 code1.cpp 和 code2.cpp 中的函数的调用,调用前需要加上函数原型。
 代码见简明教程【例5-13】第 4 步代码。

代码如下:
// 从下一行开始复制。
void function1(void);
void function2(void);

void main(void) {
         function1();
         function2();
}

// 一直复制到上一行结束。

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

 

 

【第 7 步】实训总结

 本次实训学习了文件包含,实训结果如下:
 请回顾一下完整的过程,这样的文件拆分和关联可以可以使用整个程序的结构清晰,提高可读性和可维护性。

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

 

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