1昆明理工大学《程序设计基础》课程综合设计实践教学课题报告课程名称:C程序设计基础课题名称:数学计算函数集成学号:201110402140姓名:臧庆航学院:信息工程与自动化学院班级:测控技术与仪器111班教师:付湘琼昆明理工大学计算中心2012年6月4日2《程序设计基础》课程综合设计实践教学课题报告要求第一部系统概述:一、程序功能:在学习的过程中我们会遇到各种各样的数学问题,有些复杂的数学问题,如果要计算的话会耗费我们大量的时间,而且容易出错。该程序就是用来解决这些数学问题的,它从程序中选择需要的函数输入数据就可以很快的解决这些数学问题。二、程序算法:从主菜单中选择对应的函数,进入不同的程序,有swich语句实现其功能。程序分为四步:主函数、子函数、输入、输出。第二部分程序构成一、函数定义:程序定义了七个子函数:(1)求任意数的阶乘积(2)求任意数的累加和。(3)求任意正整数的N次方。(4)求任意两个整数的最大公约数(5)求任意两个数的最小公倍数(6)判断任意数是否是素数(7)输出菲波拉契数列的前N项二、主函数流程图选择函数进入子函数计算输出结果阶乘积累加和N次方最大公约主函数最小公倍素数菲波拉契数列3第三部分调试运行及操作说明一、调试二、测试数据:包括正确的输入及其输出结果和含有错误的输入及其输出结果。输出结果直接抓取屏幕图像粘贴到报告中。5、程序代码#includestdio.hintjcj(intx){inti;intresult;if(x==1||x==0){return(1);}elsefor(i=x;i=1;i--)result*=i;return(result);}intljh(intx){intsum=0;inti;for(i=1;i=x;i++){sum=sum+i;}return(sum);4}ncf(intx,inty){longsum=1;inti;for(i=1;i=y;i++){sum*=x;}return(sum);}intgymax(intx,inty){inti;for(i=(xy)?x:y;i=1;i--){if(x%i==0&&y%i==0){return(i);break;}}}intgbmin(intx,inty){inti;for(i=(xy)?x:y;i!=0;i++){5if(i%x==0&&i%y==0){return(i);break;}}}voidss(intn){intcount=0;inti=0;for(i=2;in;i++){if(n%i==0)break;elsecount++;}if(count==(n-2))printf(该数是素数!);elseprintf(该数不是素数!);}intfblqe(intn){if(n==1)return1;if(n==2)return1;if(n2)returnfblqe(n-1)+fblqe(n-2);elsereturn0;6}voidmain(){intchoose;inta,b,i;printf(请选择你想要计算的函数:\n);printf(--------1.求任意数的阶乘积--------\n);printf(--------2.求任意数的累加和--------\n);printf(--------3.求任意正整数的N次方--------\n);printf(--------4.求任意两个整数的最大公约数--------\n);printf(--------5.求任意两个整数的最小公倍数--------\n);printf(--------6.判断任意数是否是素数--------\n);printf(--------7.输出菲波拉契数列的前N项--------\n);printf(选择函数为:);scanf(%d,&choose);switch(choose){case1:printf(请输入上限:);scanf(%d,a);printf(结果是:%d,jcj(a));printf(\n);break;case2:printf(请输入上限:);scanf(%d,a);printf(结果是:%d,ljh(a));printf(\n);break;7case3:printf(请输入两个任意正整数:);scanf(%d%d,&a,&b);printf(结果是:%d,ncf(a,b));printf(\n);break;case4:printf(请输入两个数:);scanf(%d%d,&a,&b);printf(最大公约数是:%d,gymax(a,b));printf(\n);break;case5:printf(请输入两个数:);scanf(%d%d,&a,&b);printf(最小公倍数是:%d,gbmin(a,b));printf(\n);break;case6:printf(请输入一个数:);scanf(%d,&a);ss(a);printf(\n);break;case7:printf(请输入需输出菲波拉契数列的项数:);scanf(%d,&a);for(i=1;i=a;i++){printf(%d,fblqe(i));}8printf(\n);getch();break;default:printf(输入的选择是不正确的!\n);}}6、总结和体会一个学期的学习,让我见识到了苦,还有些许的甜。开始的时候,真的是什么的不懂,看着天书一般的程序,我的腿在颤抖着。开始学的时候,看着别人顺利的读出程序,写出自己的小设计,那是一个的羡慕嫉妒恨啊,那种无奈叫人无法承受。不甘的学习,不停的努力,我不想放弃!于是在懵懂之中,我慢慢的摸索,慢慢的实践,我不怕失败,勇往直前。正是有了这样的初生牛犊的精神,让我感到了很多乐趣。慢慢的,我能读程序了,渐渐的,我也不再害怕和失落了。蝌蚪文一样的程序,也渐渐的向我展示出它的内蕴。然而,在这次的程序设计中,我又感觉到那种失败的感觉。不管我如何改进,但这个程序还是达不到我想象中的样子,功能很不齐全,远没有我原先预想的那样~很失落,不过最后我终于认识到一点:结果很重要,但是过程更需重视,我成长了,我也收获了。这次编程作业虽然对我们来说比较困难,但是值得高兴的,我们努力了,并基本完成了任务。这次做C语言程序让我9感触颇深。是首先是由于对基础知识掌握不扎实,以至于刚开始拿着不知道从何下手,这就让我明白了学习的重要性。为了做好这次作业,我查阅了大量关于C语言编程的书籍,以求做到精益求精。付出总有回报,即使它不能在现在,也将在不远的将来!7、自评分:自己认为能获得多少分数8、教师评阅教师签名:付湘琼2012年6月4日10《程序设计基础》课程综合设计实践教学课题要求与考核1、学生独立完成综合设计实践教学课题,选择完成1个课题,也可完成多个课题。2、至少完成一个程序模块的编程和调试,对源程序语句加注释。独立完成所选模块的设计文档(流程图、源代码及注释)。3、写出个人收获和体会或对本课程的评价。要根据自己参与设计和独立完成模块设计的情况来表述个人收获体会,或者是对本课程教学方法、综合设计等方面的评价。4、每个人完成并提交一份完整的电子文档形式的“《程序设计基础》课程综合设计实践教学课题报告”(综合设计报告.DOC)和源程序(源程序.C),按每个人一个文件夹,文件夹名字以学号+姓名完成。