资源描述:
《c语言课程设计.doc》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、·河南城建学院HenanUniversityofUrbanConstruction《高级语言程序设计》课程设计报告学号:081411123姓名:欧阳擎天专业:计算机科学与技术题目:递归算法的实际运用指导老师:周二强仝瑞阳杨斌张芳芳设计时间:第一周计算机科学与工程系2012年9月16目录一.主要内容………………………...1二.设计内容4三.概要设计5四.详细设计7五.测试数据及运行结果8六.调试情况,设计技巧及体会12七.参考文献13八.附录:1416一.主要内容。用递归法求:(x/1!)+(x*x*x/3!)+(5个x相乘/5!)+……+((2n-1)个X相乘/(2*n-1)!)当N为某
2、值时上式为多少?(到第n项,n和x的值由键盘输入。)一.设计目的1.复习巩固C语言的基础知识,进一步加深对C语言编程的理解和掌握;2.利用所学知识,理论和实际结合,利用资源,采用模块化的结构,使用模仿修改自主设计相结合的方法,锻炼学生综合分析解决实际问题的编程能力;3.培养学生在项目开发中团队合作精神、创新意识及实战能力4.借课程设计为自己提供了一个既动手又动脑,独立实践的机会,将课本上的理论知识和实际有机的结合起来,锻炼自己的分析解决实际问题的能力。提高适应实际,实践编程的能力。高级语言程序设计课程设计是专为学第一门计算机高级语言的学生设立的,安排该课程设计的目的,就是要通过一次集中的强
3、化训练,使学生能及时地巩固已学的知识,补充未学的但又是必需的内容,进一步提高程序设计的能力。本课程设计将以学生上机进行程序设计为主,教师的适当讲授为辅。利用学到的编程知识和编程技巧,通过布置具有一定难度的程序设计题目,帮助学生熟悉程序编写,及时查究错误,独立完成。16二.设计内容#include#includefloatme(intx,intn){inti;floatt=1;if(n==1){returnx;}else{for(i=1;i<=2*n-1;i++){t*=i;}t=pow(x,2*n-1)/t;returnt+me(x,n-1);}}intm
4、ain(){FILE*fp;floats;intx,n;if((fp=fopen("c:\2\text.txt","r+"))==NULL)return-1;fscanf(fp,"%d%d",&x,&n);if(x>-60&&x<100
5、
6、n>-60&&n<80)printf("%d,%d",x,n);printf("输入x和n:");if(x<0&&n<0)scanf("%d%d",&x,&n);fprintf(fp,"%d%d",x,n);16s=me(x,n);printf("s=%f",s);fprintf(fp,"输入%d%d",x,n);fclose(fp);ret
7、urn0;}三.概要设计1.功能模块图;判断指定路径内是否有文本文件16没有的话返回-1,结束程序如果有,判断文本是否为空,如为空,请用户输入,否则直接运算,进入递归函数核心在一定范围内输出正确结果,然后写入文本文件内。16四.详细设计递归函数:floatme(intx,intn){inti;floatt=1;if(n==1){returnx;}else{for(i=1;i<=2*n-1;i++){t*=i;}t=pow(x,2*n-1)/t;returnt+me(x,n-1);}}以x=6,n=2为例:Me函数X=6N=1Me函数X=6N=2Main函数调用Me函数16五.测试数据及运行
8、结果1.正常测试数据(3组)及运行结果;第一组:56第二组:456316第三组:2565161.非正常测试数据(2组)及运行结果。第一组:ab16第二组:10010016文件读取:16文件写入:1616六.调试情况,设计技巧及体会1.这个程序是练习递归算法的熟练程度,程序不是很难写只要把递归函数写出来,就差不多完成了!在写递归算法时,n=1这个特例要特别去考虑。2.程序的纠错能力低下,运算能力有限,在文件读写时,操作一次就要对text文本进行修改一次,不然无法运行,很麻烦。这是我发现的问题。七.参考文献新编C语言程序设计教程周二强著八.附录:源代码注意:1.#include9、>intmain(){FILE*fp;if((fp=fopen("c:\2\text.txt","r+"))==NULL)return-1;fscanf(fp,"%d%d",&x,&n);fprintf(fp,"%d%d",x,n);fclose(fp);return0;16}2.#include#includefloatme(intx,intn){inti;floatt=1;if(