毕业论文论文范文课程设计实践报告法律论文英语论文教学论文医学论文农学论文艺术论文行政论文管理论文计算机安全
您现在的位置: 毕业论文 >> 课程设计 >> 正文

C++用函数模板找出数组的最大和最小值

更新时间:2011-5-11:  来源:毕业论文

C++用函数模板找出数组的最大和最小值
编写一个在具有m行n列的二维数组各元素中找出最大元和最小元并显示在屏幕上的函数模板,并通过主函数对它进行调用以验证其正确性。例如,可设计该函数模板的原型为:
  template <class Type> void maxMin (Type *A, int m, int n );
其中二维数组A的元素类型为Type,数组A具有m行n列。
注意:函数模板maxMin中要处理二维数组A的m行n列的诸元素,但设计第一参数传递过来的是Type*类型的首元素指针,所以具体处理时可以按照如下的“一维数组”方式来进行(共处理m乘以n个数据 -- 也即二维数组A的m行n列的诸元素。注意,二维数组的诸元素在内存中是按行连续存放的,所以才能够这样来进行处理)。
   for (int i=0; i<m; i++)
   for(int j=0; j<n; j++) {
  对A[i*m+j]进行处理;
//按“一维数组”来对待处理A中第i行第j列的数据
   }
(一)需求分析:
本题的要求是找出二维数组的最大和最小值,按照题目的方法可以使用模板的方法,编制template <class Type> void maxMin (Type *A, int m, int n ) 函数,用它来找出函数的最大和最小值的元素。
(二)概要分析:
这题程序的设计的主要目的是要找出二维数组的最大和最小值,既然这样可以用一种最简单的方法,就是按二维数组的顺序,扫描一遍,每次都把比较大的留下,这样二维数组扫描一遍之后,就找到了最大和最小值的
(三)详细设计:
根据概要设计的方法,可以使用for 循环的方法来扫描数组,因为是二维数组,所以应该用两个for 的循环来完成这个扫描。在第二个for 循环里,就的把比较大的留下,设定两个变量max和min ,每一次进行的数组的值(假设为a)都和max,min两个比较,如果a 比max的值大,则把a 的值赋给max,如果a 的值比min的值小,则把a的值赋给min,如果a 的值介于max和min之间,则查找下一个。根据以上的分析可以判断出程序的大体写法,
(四)调试说明:
使用模板的形式结构如下:
template<class Type>  void maxMin(int A[m][n],int m,int n)
在调试程序的时候,数组A的值要给定,不然编译的时候会出现错误。在程序中max,min的初值可以设定为0,也可以设定为数组A的第一个元素的值。Type max=A[0][0],min=A[0][0];
int max=0,min=0;
调用函数时候直接使用maxMin<int>(A,m,n);就可以了。
(五)用户使用说明:
使用者在试用这个程序的时候,要明白这个程序的变化,可以通过修改满足不同的二维数组的需要,可以按照以上的说明的方法,这样就可以很好的掌握这个程序了。按照提示输入12个数检查程序的正确性
(六)测试结果:
(七)源程序:
见上传代码25.cpp
(八)编程体会:
这个程序的主要一个是怎样去使用这个模板函数,开始不明白模板的使用方法,在查资料后慢慢明白了 怎么去使用模板解决问题。可以方便解决不同类型的问题1826

[1] [2] 下一页

C++用函数模板找出数组的最大和最小值下载如图片无法显示或论文不完整,请联系qq752018766
设为首页 | 联系站长 | 友情链接 | 网站地图 |

copyright©lwfree.cn 六维论文网 严禁转载
如果本毕业论文网损害了您的利益或者侵犯了您的权利,请及时联系,我们一定会及时改正。