电子文档交易市场
安卓APP | ios版本
电子文档交易市场
安卓APP | ios版本
换一换
首页 金锄头文库 > 资源分类 > PPT文档下载
分享到微信 分享到微博 分享到QQ空间

[2017年整理]函数—模块化程序设计

  • 资源ID:51940557       资源大小:239.50KB        全文页数:51页
  • 资源格式: PPT        下载积分:10金贝
快捷下载 游客一键下载
账号登录下载
微信登录下载
三方登录下载: 微信开放平台登录   支付宝登录   QQ登录  
二维码
微信扫一扫登录
下载资源需要10金贝
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
如填写123,账号就是123,密码也是123。
支付方式: 支付宝    微信支付   
验证码:   换一换

 
账号:
密码:
验证码:   换一换
  忘记密码?
    
1、金锄头文库是“C2C”交易模式,即卖家上传的文档直接由买家下载,本站只是中间服务平台,本站所有文档下载所得的收益全部归上传人(卖家)所有,作为网络服务商,若您的权利被侵害请及时联系右侧客服;
2、如你看到网页展示的文档有jinchutou.com水印,是因预览和防盗链等技术需要对部份页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有jinchutou.com水印标识,下载后原文更清晰;
3、所有的PPT和DOC文档都被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;下载前须认真查看,确认无误后再购买;
4、文档大部份都是可以预览的,金锄头文库作为内容存储提供商,无法对各卖家所售文档的真实性、完整性、准确性以及专业性等问题提供审核和保证,请慎重购买;
5、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据;
6、如果您还有什么不清楚的或需要我们协助,可以点击右侧栏的客服。
下载须知 | 常见问题汇总

[2017年整理]函数—模块化程序设计

高级语言程序设计第5章 函数 模块化程序设计 学习目标l模块化程序设计的思想,l自顶向下的实现方法,l系统函数库的使用方法,l自定义函数的方法,l参数传递方式,l函数调用过程,l接口与实现的分离,l开发大规模程序引言l如何对比较复杂、庞大的问题进行程序设计?例 如:¡绘制一个动物图案l头 正方型l躯干菱形l下肢矩型 ¡建立一个学生信息管理系统l界面l建立信息l维护信息l查询信息¡解决比较大的问题要成千上万行代码怎么实现呢?l每个软件只有一个main(), main()当中能放多少行程序?l读多少行的程序能让你不头疼?l如果所有代码都在main()当中,怎么团队 合作?l如果代码都在一个文件中,怎么团队合作 ?模块化程序设计思想l复杂问题分解成若干子问题模块,逐个解决每 个子问题l模块各司其职¡每个模块只负责一件事情,它可以更专心¡一个模块一个模块地完成,最后再将它们集成¡便于开发、调试、测试和维护等工作l开发人员各司其职¡按模块分配任务,职责明确¡并行开发,缩短开发时间 l分而治之(Wirth, 1971 ) 信息隐藏(Parnas, 1972)C语言用函数表示模块l分而治之¡函数把较大的任务分解成若干个较小的任务,并提炼出公用任务l代码复用¡程序员可以在其他函数的基础上构造程序,而不需要从头做起l信息隐藏(黑盒子)¡设计得当的函数可以把具体操作细节对程序中不需要知道它们的 那些部分隐藏掉,从而使整个程序结构清楚l如把编程比做制造一台机器,函数就好比其零部 件¡可将这些“零部件”单独设计、调试、测试好,用时拿出来装配,再 总体调试。¡这些“零部件”可以是自己设计制造/别人设计制造/现在的标准产品函数的定义形式l返回值类型 函数名 (参数列表) l l 函数体 变量声明部分 语句部分 l l函数可以没有返回值,也可以没有参数,均用void表示¡如:void funcname(void)l参数列表的形式:参数类型 参数名称1,参数类型 参数名称2, ¡如:int maxium( int a, int b, int c) 具有三个参数,返回类型为int的函数¡或 void print( int a, int b) 如大家熟悉的int main(void)printf(。);实际上 printf,scanf也是这样定义的我们可以根据需要定义各种自己的函数。函数调用已经定义的函数要在某个地方使用才有意义,使用一个函 数称为函数调用。可以在main()中调用其它函数在任意一个函数中均可以调用其它函数。调用的形式:函数名(实际参数)-有参数时或函数名()- 无参数时问题1 绘制一个动物图案。l定义无参数、无返回类型的函数l如打印矩型的函数l void Rectangle (void)¡ ¡ 。¡ 使用已经定义的函数测试lvoid Rectangle (void) /这种函数叫做stub 树桩或存根 printf(“rectangle okn”) ; /仅供测试 void diamond(void) printf(“diamond okn”); lint main(void)ll rectangle();/函数调用l diamond(); l rectangle();l return 0;l l被调用的函数必须先定义,即各个函数的定义现在一定要放在主函数之前( 等会我们会有另外的方法)问题2 学生信息系统l 同样每个功能模块用一个函数表示¡void create(void) ¡void display(void) ¡void modify(void) ¡void query(void )¡void delete(void )¡l写一个main测试它们问题3 :设计一个能求某个自然数以内的 自然数之和的函数模块有参数和返回值 的函数 l分析:¡首先取名 sum¡确定是否有返回值?如果有,是什么类型?¡确定是否有参数?几个?什么类型? l函数定义¡int sum(int n)¡ ¡ int s=0;¡ for(int i=1;i lint sum(int n) l l l lint main(void) lint m,s; scanf(“%d”, /准备一个实参ms = sum(m); /调用sumprintf(“ %dn”, s); /输出结果 /或者直接printf(“ %dn”, sum(m);return 0; 函数调用的注意事项1l有返回值时¡调用结果可以放到一个数值表达式中,如s = sum(m);¡也可以作为另一个函数调用的参数,如printf(“%dn“, sum(m);l无返回值时¡函数调用只能独立使用rectangle();函数调用的注意事项2l实参可以是符合参数类型的¡常量l如 s = sum(100);¡变量l如 s = sum(m);¡表达式l如 s = sum(m+10);实参与形参必须一致l函数调用时实参与形参必须保持¡参数个数相同¡参数类型相同,如果不同将自动转换¡参数顺序相同l当函数有多个表达式参数时,函数调用时¡实参求值的顺序可能是从左到右¡或从右到左,举例funcpara.cpp为了清楚起见,需要对函数接口加以注释 说明/* 函数功能:实现××××功能函数参数: 参数1,表示×××××参数2,表示×××××函数返回值: ××××× */ 返回值类型 函数名(参数表) 函数体 return 表达式; 问题4 设计一个求两个数的平均值的函数 模块/*函数功能: 计算平均数函数入口参数: 整型x,存储第一个运算数整型y,存储第二个运算数函数返回值: 平均数 */ int average(int x, int y) int result;result = (x + y) / 2;return result; 函数执行的过程l函数调用时,实参值传递给形参变量l暂时离开调用者,去执行函数体l函数执行完毕后,回到调用的位置,继续 执行调用者的语句使用了average函数的main() main() int a = 12; int b = 24; int ave;ave = average(a, b);printf(“average of %d and %d is %d.n“, a, b, ave); int Average(int x, int y) int result;result = (x + y) / 2;return result; main() int a = 12;int b = 24;int ave;ave = Average(a, b); printf(); 数据传递执行顺序问题5 设计一个判断某个数是否是素数的 函数模块问题6 设计一个求某个数a的n次幂的函数 模块l可以定义各种各样的函数模块当问题比较复杂时,需要很多函数l所有自定义的函数都要放在main的前面, 这将喧宾夺主,本末倒置l解决的方法是¡在使用之前,先有函数的原型声明l实际上,头文件中包含了要使用的函数的 原型声明l 如stdio.h中包含了printf,scanf等跟I/O相 关的函数原型l某一模块定义为一个函数之后,在使用它 (函数调用)之前,先用函数原型声明。l使用函数原型声明,重写上述例题函数原型的作用l函数原型 ¡如 int sum(int n);¡可以写成 int sum(int) l函数原型告诉编译器函数返回的数据类型 ,函数接收的参数个数,参数类型及参数 顺序l强制转换参数类型小结:函数三要素l函数原型l函数调用l函数定义函数的分类l库函数¡ANSI/ISO C定义的标准库函数l符合标准的C语言编译器必须提供这些函数l函数的行为也要符合ANSI/ISO C的定义¡第三方库函数l由其它厂商自行开发的C语言函数库。不在标准范围 内,能扩充C语言的功能(图形、网络、数据库等)l自定义函数¡自己编写的函数l包装后,也可成为函数库,供别人使用数学函数库使用l常用的数学函数l sqrt(x) l exp(x) l log(x) 自然对数l log10(x)l fabs(x)l ceil(x) 不小于x的最小整数l floor(x) 不大于x的最大整数l pow(x,y)l sin(x) x为弧度l #includel找出所有小于500的构成直角三角形的三条边¡input a, b,c¡c = sqrt(pow(a,2)+pow(b,2)l求一元二次方程的根¡ a,b,c¡ sqrt(b*b 4*a*c) >0 ¡ sqrt(b*b 4*a*c) <0¡ sqrt(b*b 4*a*c) =0l打印02PI之间sin(x)对照表l例sinecurve.cpp随机数的产生l rand() 产生一个0到 RAND_MAX(32767) 之间的一个 整数,伪随机数l需要包含 stdlib.hl l模拟掷硬币和骰子l缩放 rand()%6lsrand(unsigned) 为rand()设置种子ltime(NULL)参数NULL返回秒为单位的计算机系统的当 前时间。¡time.hl srand(time(NULL)l例rand.cppvoid Print(int flag)void Print(int flag) if (flag) if (flag) printf(“Right!n“); printf(“Right!n“);else elseprintf(“Not correct!n“); printf(“Not correct!n“); 小学生加法考试题/* 函数功能: 计算两整型数之和,如果与用户输入的答案相同,则返回1 ,否则返回0函数参数: 整型变量a和b,分别代表被加数和加数函数返回值:当a加b的结果与用户输入的答案相同时,返回1,否则返回0 */ int AddTest(int a, int b) int answer; printf(“%d+%d=“, a, b); scanf(“%d“, if (a+b = answer) return 1; else return 0; 只答只答1 1次次main() int a, b, answer;printf(“ “Input a,b:“ “);scanf(“ “%d,%d“ “, answer = AddTest(a, b);Print(answer);do while (answer = 0);小学生加法考试题 直到做对为止直到做对为止main() int answer,chance=0;doanswer = AddTest(a, b);Print(answer);chance+;while (answer = 0 小学生加法考试题 最多给最多给3 3次机会次机会int a,b;int error = 0;int score = 0; srand(time(NULL);for (int i=0; i<10; i+) a = rand()%10 + 1;b = rand()%10 + 1;answer = AddTest(a, b);Print(answer);if (answer = 1)score = score + 10;elseerror+; 实验4:小学生加法考试题 随机出题随机出题连续做连续做1010道题道题统计分数统计分数通用小学生算术软件碰运气游戏-掷双骰子l游戏规则l 掷两个骰子,点数相加。第一次时如果和 为7或11则玩家赢

注意事项

本文([2017年整理]函数—模块化程序设计)为本站会员(油条)主动上传,金锄头文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即阅读金锄头文库的“版权提示”【网址:https://www.jinchutou.com/h-59.html】,按提示上传提交保证函及证明材料,经审查核实后我们立即给予删除!

温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




关于金锄头网 - 版权申诉 - 免责声明 - 诚邀英才 - 联系我们
手机版 | 川公网安备 51140202000112号 | 经营许可证(蜀ICP备13022795号)
©2008-2016 by Sichuan Goldhoe Inc. All Rights Reserved.