资源描述:
《基于梯形法和辛普生求定积分》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库。
1、编号:36河北工业大学计算机软件技术基础(VC)课程设计报告学院城市学院院班级电信C1136姓名王梦迪学号116108_成绩______一、题目:基于梯形法和辛普生法求定几分的程序二、设计思路1、总体设计1)分析程序的功能用梯形法和辛普生法求定积分,输入数据,通过调用函数和for循环,计算出他们的定积分。在输出结果中比较,不同的数据,两种方法的精度不同,可通过结果的小数位数,确定哪种方法的精度高。2)系统总体结构:设计程序的组成模块,简述各模块功能。A、对函数进行宏定义,以及调用函数的原型声明。B、编写程序,列出计算公式。C、调用函数用梯形法求定积分:通过函数的调
2、用,利用梯形法的公式求定积分。D、调用函数用辛普生法求定积分:通过函数多次调用,用辛普生法的公式求定积分.2、各功能模块的设计:说明各功能模块的实现方法1)对源程序的函数源进行声明及宏定义,便于后面的调用。2)主函数部分:编写好主函数程序,里面含有函数调用,成为主调函数;。3)梯形法求定积分:即被调函数部分,利用函数调用及for循环求累加和,计算出此时的函数值并将其反回到主函数中。4)辛普生法求定积分:调用函数求函数值,并利用for循环求累加和。计算出函数的值并返回到主函数中。第13页/共13页编号:363、设计中的主要困难及解决方案1)困难1:函数调用比较多,程
3、序冗长,容易出现混乱。解决方案:函数的取名要尽量简单,取名之后按顺序排放。2)困难2:计算函数时,涉及到多个函数计算以及for循环求累加和。解决方案:清晰地定义多个函数,及宏定义,利用函数调用的知识,每计算一步,要用return返到主函数中。4、你所设计的程序最终完成的功能1)向程序中输入a,b,n的值后,会分别用梯形法和辛普生法计算出相应的结果。1)准备的测试数据和运行结果:第13页/共13页编号:36第13页/共13页编号:36三、程序清单第13页/共13页编号:36#include#include#defineHI
4、GH1(a,b,n)(b-a)/n//宏定义doubleF1(doublex,doubley,intz);//函数原型说明doubleF2(doublex,doubley,intz);doublef1(doubleu);doublef2(doublev);doublesum1(doublec,doubled,inte);doublesum2(doublep,doubleq,intr);#defineHIGH2(a,b,n)(b-a)/(2*n)//宏定义doubleF3(doublex,doubley,intz);//函数说明doubleF4(doublex,do
5、ubley,intz);doublef3(doubleu);doublef4(doublev);doublesum5(doublep,doubleq,intr);doublesum6(doublep,doubleq,intr);doublesum3(doublec,doubled,inte);doublesum4(doublec,doubled,inte);voidintegralts(doublex,doubley,intz,double(*f)(double,double,int));voidintegralt(doublex,doubley,intz,dou
6、ble(*f)(double,double,int));voidmain()//主函数{第13页/共13页编号:36intn;doublea,b;cout<<"pleaseinputa,b,n=";//输出提示cin>>a>>b>>n;cout<<"a="<7、<<"辛普生法:"<8、ey,in