《编写判断函数word版》由会员分享,可在线阅读,更多相关《编写判断函数word版(15页珍藏版)》请在金锄头文库上搜索。
1、目录1引 言11.1问题的提出11.1.1判断函数11.2任务与分析12系统分析22.1功能需求23设计方案23.1主要函数23.2主要流程图33.3设计思路33.4编码43.5实现结果54系统测试74.1设计测试数据74.2测试结果及分析74.2.1测试结果74.2.2结果分析7总 结8致 谢9参考文献9附 录100 / 15摘 要本次我的课程设计题目是“编写函数”,函数的主要功能是判断数组a的前n个元素是否从大到小完全有序。编写这样的函数能够较方便的判断出数组a的前n个元素是否从大到小完全有序。此程序仅仅是一个课程设计的程序,如需要真正成为一个系统,那么还要需要更为完善。关键词:判断函数、
2、数组a、完全有序。1 引 言1.1 问题的提出随着教育的普及以及计算机的广泛应用,怎样使计算机更好更高效的为我们的工作和学习服务就成了一个问题。今天我所写的这个简单函数判断数组序列的函数,能够较方便的实现对数组的前n个元素是否从大到小完全有序的判别,但要真正应用于社会中,这个程序还远远不够,还需要更加完善。1.1.1 判断函数在此编写的判断函数包括两个,一个是普通的函数即非递归的,另一个是递归函数。通过这个两个中的任意一个函数,都可以较方便的对数组的前n个元素是否从大到小完全有序作出明确的判断。1.2 任务与分析这个任务主要是编写两个函数即一个普通函数和一个递归函数。分析:本任务我选择使用菜单
3、方式操作,这个可以通过printf语句来实现,利用多个printf语句来实现菜单的输出。编写了两个不同的判断函数,在主函数中使用switch语句来分别调用不同的函数来实现相同的判断功能。2 系统分析就这次课程设计的题目“编写函数”而言,我先进行了一系列的分析。首先要编写两个判断函数,接着再编写两个函数来调用前面编好的判断函数;再接着就把这个程序模块化,然后再在主函数中调用各个模块。最后再在机子上运行调试直至运行成功,本次课程设计的基本目的就达到了。2.1 功能需求我所编写的这两个判断函数,主要需要实现的功能就是对数组的前n个元素是否从大到小完全有序作出明确的判断。3 设计方案3.1 主要函数本
4、程序运用的函数如下:bool f1(int a,int n) 判断数组的前n项是否按从大到小排列的普通函数;bool f2(int a,int n) 判断数组的前n项是否按从大到小排列的递归函数;void panduan1() 用于调用普通函数f1的函数;void panduan2() 用于调用普通函数f2的函数;3.2 主要流程图开始进入选择菜单输入数字0-2退出递归函数普通函数图3-1程序主要流程图本图是判断函数系统的主要流程图,从程序开始到各个环节的流程关系。需要输入的信息等。3.3 设计思路程序中包含了1个全局变量、两个返回值为bool的函数和两个分别调用前面两个函数的函数。如下:in
5、t a=20,19,18,17,16,15,14,11,1,2,3,4,5,6;bool f1(int a,int n) /判断数组的前n项是否按从大到小排列的普通函数bool f2(int a,int n) /判断数组的前n项是否按从大到小排列的递void panduan1() /用于调用普通函数f1的函数void panduan2() /用于调用普通函数f2的函数3.4 编码本次课程设计的主要编码如下:/*系统主函数*/ void main()int choice=-1;printf(t温馨提示:为了保证您的操作能得到正确的结果,请按正常顺序退出系统n); do printf(nnn);
6、printf(ttt*n); printf(tttt* 欢迎进入判断函数系统 *nn); printf(tttt* 请选择你要进行的操作 *n); printf(ttt*n);printf(ttt* 0-退出系统 *n); printf(ttt* 1-普通函数判断数组的序列n); printf(ttt* 2-递归函数判断数组的序列n); printf(ttt*n); printf(请输入您的选择:); cinchoice; switch(choice) case 0: printf(-谢谢使用-再见!n); exit(0); case 1: panduan1();break; case 2:
7、panduan2();break;default:printf(n无效选项!); break; while(choice!=0); 3.5 实现结果程序在运行的情况下,进入到判断函数系统,如图3-2所示:图3-2判断函数系统菜单输入数字1,进行函数判断功能,再输入n的值就能得到结果,如图3-3所示:图3-3判断函数结果如图3-4所示,此图是在主菜单下输入0,退出程序,在输入0之后会出现press any key to continue。图3-4退出系统4 系统测试4.1 设计测试数据a=20,19,18,17,16,15,14,11,1,2,3,4,5,64.2 测试结果及分析4.2.1 测试
8、结果进入判断函数系统后,按步骤做下去,都能得到正确的结果。4.2.2 结果分析程序运行的各种结果都达到了预期的效果,结果正确。总 结在本次的课题设计中,我受益匪浅,就编写判断函数这个课题而言,我实现了数据的输入和输出,能够直接通过写的程序对数组进行判断。在实现菜单式操作方面,用到了printf函数以及switch函数。通过本次课程设计,我学到了很多实用的东西,虽然没有使用库函数,但是自己学会了定义函数,在这次的设计当中,我自己定义了两个判断数组的函数和两个分别调用前面函数的函数。尽管在此之前,自己对程序设计的总体思想与思路还有些不清楚,但是就调试运行过程中遇到的问题,通过自己的努力、同学的帮助
9、以及在网上查询等方法,最终都解决了。致 谢本次课程设计能顺利完成,感谢学校的大力支持,感谢数学与计算机学院为我们提供实练的机会,感谢*老师以及*老师的细心教导。此次的课程设计是本人人生当中的第二个,虽然经过了一段漫长又痛苦的过程,但是值得庆幸的是自己最终还是完成了,这与自己的努力是分不开的,但是自己在调试过程中遇到的一些问题,自己仍然不懂,是在同学和老师的帮助下完成的,在这里还要再次对他们的付出表示崇高的敬意。参考文献1 陈天华.面向对象程序设计与Visual C+6.0教程。北京:清华大学出版社.20062 谭浩强。C程序设计(第三版)。北京:清华大学出版社。20073 郑莉等 编著. C+
10、程序设计语言(第三版). 北京:清华大学出版社,2005.06 附 录#include#include#includeint a=20,19,18,17,16,15,14,11,1,2,3,4,5,6; bool f1(int a,int n) /判断数组的前n项是否按从大到小排列的普通函数int i;for(i=0;in-1;i+) /依次比较 if(aian-2)return false ; elsef2(a,n-1); /调用本身 void panduan1() /用于调用普通函数f1的函数int n,i;cout数组为:;for(i=0;isizeof(a)/4;i+)coutai ;
11、 /依次输出数组的值coutendl;coutn;if(f1(a,n)cout数组的前n个元素是从大到小完全有序endl;else cout数组的前n个元素不是从大到小完全有序endl;void panduan2() /用于调用普通函数f2的函数int n,i;cout数组为:;for(i=0;isizeof(a)/4;i+)coutai ; /依次输出数组的值coutendl;coutn;if(f2(a,n)cout数组的前n个元素是从大到小完全有序endl;else cout数组的前n个元素不是从大到小完全有序endl;void main()int choice=-1;printf(t温馨提示:为了保证您的操作能得到正确的结果,请按正常顺序退出系统n); do printf(nnn); printf(ttt*n); printf(tttt* 欢迎进入判断函数系统 *nn); printf(tttt* 请选择你要进行的操作 *n); printf(ttt*n);printf(ttt* 0-退出系统 *n); printf(ttt* 1-普通函数判断数组的序列n); printf(ttt* 2-递归函数判