- 1、本文档共15页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
分别用牛顿迭代法、弦截法和二分法求根
华北理工大学
2016-2017第2学期
《软件设计基础-C++》
课程设计报告
设计名称:分别用牛顿迭代法、弦截法和二分法求根
姓 名:温祥学 号:201614030414
专业班级:无极非金属材料工程专业材4
学 院:材料科学与工程学院
设计时间:2017.06.04
设计地点:学校01机房
指导教师评语:
指导教师签字:
年 月 日 目 录
1.课程设计目的
2.课程设计任务与要求
3.课程设计说明书
4.课程设计成果
5.程序调试过程
6.设计问题的不足和改进方案
7.课程设计心得
8.参考文献
1.课程设计目的
《软件设计基础-C++》课程设计是这门课程的实践性教学环节之一,本次设计结合实际应用的要求,使课程设计既覆盖C++的知识点,又接近工程实际需要。目的是通过课程设计的综合训练,培养学生实际分析问题、解决问题的能力,以及编程和动手能力,最终目标是通过课程设计这种形式,帮助学生系统掌握C++这门课程的主要内容,养成良好的编程习惯,更好的完成教学任务。
2.课程设计任务与要求:
要求:
本次课程设计利用《软件设计基础-C++》课程中所学到的编程知识和编程技巧,完成具有一定难度和工作量的程序设计题目,帮助学生掌握编程、调试的基本技能,独立完成所布置的任务。
要求:
1、对系统进行功能需求分析
2、设计合理的数据结构和系统框架
3、编程简练,程序功能齐全,能正确运行
4、说明书、流程图要清楚
5、课题完成后必须按要求提交课程设计报告
任务:分别用牛顿迭代法、弦截法和二分法求根
(1)用C语言的思想来完成程序的设计(2)在基本要求达到后,进行创新设计,3.课程设计说明书 ⑴概要设计
用户输入x0,计算机显示牛顿迭代法计算的值,用户分别输入x的范围,分别输出二分法和弦截法的计算值,并计算出各种方法的迭代次数,输出最小的迭代次数。
模块说明:
在我设计的程序中一共包括了七个模块,分别是:main模块、f函数模块、f1模块、nt模块、half模块、chord模块、cishu模块。这七个模块说明如下:
1)main模块
该函数无返回值。要实现的功能是询问x初值,输出牛顿迭代法的计算值,询问x的范围,输出二分法和弦截法的计算值。
代码参见main函数。
2)f模块
该函数返回x的给定公式函数值。
代码参见f函数。
3)f1模块
该函数返回给定公式的导数的函数值。
代码参见f1函数。
4) nt模块
主要使用for函数,判断是否满足精度要求,实现语句循环,使该函数返回牛顿迭代法的计算根。
代码参见nt函数。
5)half模块
使用for函数,判断是否满足精度要求,使用if函数判断是否异号,实现语句循环,使该函数返回二分法计算的根。
代码参见half函数。
6)chord模块
使用for函数,判断是否满足精度要求,使用if函数判断是否异号,实现语句循环,使该函数返回弦截法的计算值。
代码参见chord函数。
7)cishu模块
主要使用break,判断是否跳出循环,该函数返回迭代次数的函数值。
代码参见cishu函数。
模块结构图:
每一次运算的过程可以由这几部分完成:用户输入x初值,计算牛顿迭代法的值并输出,用户输入x的范围,计算二分法和弦截法的值并输出结果,总共五个步骤:
模块
函数名称
用户输入x初值
main
计算牛顿迭代法的值并输出
nt
用户输入x的范围
main
计算二分法
half
弦截法
chord
迭代次数
cishu
对于每一次运行,关注的数据有四个:x的初值,x的范围,x范围的函数值,x的迭代次数。
⑵详细设计
总体流程图:
各功能模块流程图:
1)main函数
void main()
{
while(1) //使函数一直运行
{
cout\n-----牛顿迭代法-----endl;
cout请输入x0:;
cina;
nt();
cout\n-----二分法 弦截法求根-----endl;
cout请输入根所在的范围:;
cinbc;
half();
chord();
cishu();
}
}
2)f(double x)函数
double f(double x) //给定公式
{
return (x*x*x-2*x*x+7*x+4);
}
3)f1(double x)函数
double f1(do
文档评论(0)