[2017年整理]函数—模块化程序设计
51页1、高级语言程序设计第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分而治之函数把较大的任务分解成若干
2、个较小的任务,并提炼出公用任务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也是这样定义的我们可以根据需要定义各种自己的函数。函数调用已经定义的函数要在某个地方使用才有意义,使
3、用一个函 数称为函数调用。可以在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
4、(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函数
《[2017年整理]函数—模块化程序设计》由会员油条分享,可在线阅读,更多相关《[2017年整理]函数—模块化程序设计》请在金锄头文库上搜索。
最新学校新冠肺炎疫情突发事件应急处置办法和流程
最新疫情防控期间学校用餐与食堂管理规定和师生一日流程图
最新Xx省xx区返学师生员工健康登记表
诊所简介
高中英语-第二单元-《the-United-Kingdom》课件-新必修5
新版新目标英语七年级下unit4--Don't-eat-in-class课件
新版PEP六年级英语unit6-how-do-you-feel-A-Let's-talk
安徽专版2018秋八年级英语上册Unit5Doyouwanttowatchagameshow第6课时习题课件新人教目标版
酸的和甜的教学课件.doc
Lesson-1-Where-do-we-go-from-here概要
Docker技术与实践
七年级英语下册-Unit-9-What-does-he-look-like(第3课时)(Grammar-Focus-3d)同步语法精讲精练课件-(新版
《I'm-going-to-do-the-high-jump》PPT课件3
高二英语外研版-必修5-Module-2-A-Job-Worth-Doing-Reading课件
英语片段教学-I-can-do-it
Adobe公司简介
安徽专版2018秋八年级英语上册Unit5Doyouwanttowatchagameshow第2课时习题课件新人教目标版
第二单元全课件Unit2-What-time-do-you-go-to-school-全课件
第18课-Windows的磁盘管理与安全
第12章--Windows-Server-2008路由及远程访问
2023-11-20 52页
2023-09-09 54页
2023-09-09 98页
2023-09-09 101页
2023-09-09 95页
2023-09-09 127页
2023-09-09 59页
2023-09-09 50页
2023-09-09 139页
2023-09-09 131页