|
【实训目的】函数与源代码文件
【第 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(陈海云) : 返回首页 |