- 1、本文档共34页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第4章 模块化函数编程1.ppt
第4章 模块化函数编程 王琴竹 本章内容 4.1 模块化程序设计(Model Designing) 4.2 函数定义和声明 4.3 函数调用过程 4.4 函数的嵌套调用和递归函数 4.7 变量的作用域(Scope)与生存期 (Lifetime) 4.8 编译预处理(Pre-process) 4.1 模块化程序设计 (modular programming) 【学生项目案例4-1】高等院校信息管理系统中“学生信息管理系统”的模块化设计与划分。 一、模块化程序设计思想 把一个较大的软件工程项目分解成若干个简单、易于实现的子系统(也称模块),每个子系统(模块)实现单一完整的功能。 优点:每个模块单独编写和测试,项目开发工作同时展开,节省时间。 二、模块设计原则(Principle of Module Designing) (1)模块独立性(Module Independency) (2)模块大小适中 (3)模块分解层次清楚 三、项目案例 【文本项目案例4-1】“文本编辑器”项目模块划分。 4.2 函数定义与声明( Function Definition Declaration ) 使用某库函数时,要在程序中嵌入该函数对应的头文件。用#include命令包含头文件,头文件的扩展名是“.h” 。 /*包含头文件*/ /*函数定义,求两数和。用户自定义函数*/ /*函数首部*/ /*函数体*/ /*主函数首部*/ /*说明变量 */ /*标准库函数调用*/ /*调用add函数求和赋给sum */ 4.3.函数调用过程 一、 函数的调用形式 scanf(%d%d,x,y); sum=add(x,y); 分析程序 #include stdio.h #include stdio.h float add(float ,float ) ;/*说明函数原型*/ void main() { float x,y,sum; printf(Please input x and y: ); scanf(%f%f,x,y); sum=add(x,y); printf(The Summer of x,y is %f\n,sum); } float add(float a,float b) { return (a+b); } 二、函数调用过程 三、函数间数据的传递 【例4-3】编写自定义函数,判断一个大于1的正整数是否为素数,调用函数求100以内的所有素数。 #include stdio.h #include math.h void main( ) { int i,n,flag; for(n=2;n100;n++) if(prime(n)==1) printf( %d ,n); } 【例4-4】编写一个函数,判断一个正整数是否为水仙花数。 #include stdio.h int sxhs(int x) {int ge,shi,bai; ge=x%10; shi=x/10%10; bai=x/100; if(ge*ge*ge+bai*bai*bai+shi*shi*shi==x) return 1; else return 0; } main() {int x; scanf(%d,x); if(sxhs(x)==1) printf(yes\n); else printf(NO\n); } #include stdio.h void swap(int x,int y) { int t; t=x; x=y; y=t; } void main() { int x=10,y=20; swap(x,y); printf(x=%d,\ty=%d\n,x,y); } 本讲小结 下讲概要 4.3 函数调用过程 4.4 函数的嵌套调用和递归函数 【例4-6】分析程序的功能。 模块化程序设计的思想和设计原则, 如何定义和声明函数,函数的调用过程。 * 主控模块 二级模块 三级模块 “分而治之” --自顶向下(Top-down design)、逐步细化的模块化程序设计方法 文本编辑器 文件 编辑 插入 格式 工具 复制 查找 粘贴 删
您可能关注的文档
- 【英语】2011高考(外研版)一轮复习:必修5 Module3创新课件文库.ppt
- 第6章 绩效考评[突破高绩效管理].ppt
- 2012届江苏苏教版学海导航高中新课标总复习(第1轮)理数(课件):第13章第68讲 二项式定律及其应用.ppt
- [步步高]2011高考政治二轮复习配套课件:第1部分 专题2 生产理论(大纲版).ppt
- Credit - Bellevue College, Washington信用证-贝尔维尤大学,华盛顿.ppt
- Data Mining – Best Practices数据挖掘–最佳实践.ppt
- 公共关系的组织机构和从业人员【企业营销策划经典】.ppt
- 2社会工作价值观与专业伦理1【员工及安全管理】.ppt
- 八年级英语《Unit9 Could you please clean your room ?》课件.ppt
- Lesson15Ohm'sLaw电子技术专 业英语教程.ppt
- Sleep Deprivation and Resident Fatigue - Graduate Medical 睡眠剥夺和居民的疲劳研究生医学.ppt
- [建筑制图课件曲线与 曲面【企业广告传媒】.ppt
- 小学英语课件《Unit 3 Why do you like koalas》.ppt
- The research library challenge with a collections perspective一个集合的角度研究图书馆的挑战.ppt
- Barriers to Independence Among TANF Recipients Comparing 到TANF受助人之间的独立性比较.ppt
- 英语: Unit 3 《The Million Pound Ba-Note》课件-语法(新人教版必修3).ppt
- 11流动资产管理[资本运营管理].ppt
- Consumer - Quia消费者权威.ppt
- 【预算管理精品】三峡大学课件之 《财政学》第06章 财政支出规模及其控制.ppt
- 房地产资本运营[精通企业财务会计].ppt
文档评论(0)