- 2
- 0
- 约1.49万字
- 约 88页
- 2017-01-19 发布于浙江
- 举报
第5章+函数 C语言大学实用教程课件苏小红_图文.ppt
谓词defined。使用形式: defined 标识符 或 defined(标识符) 当标识符是有定义的宏名字时,defined(标识符) 得到1,否则得0 #ifdef 标识符 相当于 #if defined(标识符) #ifndef 标识符 相当于 #if !defined(标识符) 例5.5.3.2 条件编译是C语言中一个非常重要的功能,几乎所有的大型软件都会用到。比如轻松修改几个宏定义,就让编译后的代码含有或者不含有某些功能,以避免不必要的浪费。 提供文件包含命令、宏定义与宏替换、条件保留命令,以及很多我们尚未谋面的指令这些预处理命令都是为了我们编程方便。 模块化程序设计方法 什么时候需要模块化? 某一功能,如果重复实现3遍以上,即应考虑模块化,将它写成通用函数,并向小组成员发布 要尽可能复用其它人的现成模块。 习题5.5 计算 复用Factorial函数的代码 unsigned long Factorial(unsigned int number); main() { unsigned int m, k; unsigned long p; printf(Please input m, k:); scanf(%u, %u, m, k); p = Factorial(k) / Factorial (m-k); printf(p=%lu\n, p); } 用函数完成此题 先由计算机“想”一个1到100之间的数请人猜。 如果猜对了,显示“正确!”,并赞美一番;否则显示“错误!”,并提示所猜的数是大了还是小了。 最多可以猜7次。如7次仍未猜中,则停止本次猜数,并告知游戏者。 每次运行程序可以反复猜多个数,直到游戏者想停止时才结束。 程序框架流程 开始 结束 初始化 退出处理 主功能 为程序运行所作的准备工作 程序的主体功能 在退出前要做的事情,如打印结果资源释放 主功能 猜数字 开始 结束 生成数字 猜数字 是否继续? N Y 开始 结束 猜得对吗? N Y 提示大小 次数7? 输入数字 N Y 模块化程序设计方法 功能分解 自顶向下、逐步求精的过程 模块分解的原则 保证模块的相对独立性 高聚合、低耦合 模块的实现细节对外不可见 外部:关心做什么 内部:关心怎么做 设计好模块接口 接口是指罗列出一个模块的所有的与外部打交道的变量等 定义好后不要轻易改动 在模块开头(文件的开头)进行函数声明 函数设计的原则 函数的功能要单一,不要设计多用途的函数 函数的规模要小,尽量控制在50行代码以内 1986年IBM在OS/360的研究结果:大多数有错误的函数都大于500行 1991年对148,000行代码的研究表明:小于143行的函数比更长的函数更容易维护 参数和返回值的规则 参数要书写完整,不要省略 对函数的入口参数进行有效性检查 没有参数和返回值时,用void填充 每个函数只有一个入口和一个出口,尽量不使用全局变量 尽量少用静态局部变量,以避免使函数具有“记忆”功能 模块和链接 将一个程序分解成若干个模块,分别放在几个源文件中,形成一个项目文件(.prj )(Project) 然后,对每一个源文件(.c)分别单独进行编译 再将它们的目标代码(.obj )连同标准函数库中的函数链接在一起,形成可执行文件(.exe)。 模块之间通过互相调用函数联系起来 头文件(.h)是联系的纽带 模块和链接 例5.10可以不看 将习题5.5修改成 1个.h头文件(X5-5-1.h) 2个.c源文件(X5-5-1.c,X5-5.c) 1个.prj项目文件(X5-5.prj) 由所有源程序文件组成 X5-5-1.C X5-5.C 参见实验指导书第133页 模块和链接 优点: 当一个文件的代码被修改后,不必对所有程序重新编译,从而节省了程序的编译时间。 使程序更宜于维护,给多个程序员共同编制一个大型项目的代码提供了方便手段。 软件测试 测试 通过运行测试用例找出软件中的Bug 测试的目的 发现更多的Bug 测试人员的主要任务 站在使用者的角度,通过不断使用和攻击,尽量多的找出Bug 如何提高可测试性(tesability) 一条语句写一行才容易测试 软件测试 测试只能证明程序有错,不能证明程序无错 ——E.W.Dijkstra 测试的重要性 测试人员水平越高,找到Bug的时间就越早,软件就越容易修复,产品发行就越稳定 越大型的软件开发,测试人员占整个软件产品团队的总人数的比重就越大,甚至一半以上 成功的测试在于发现迄今为止尚未发现的Bug 软件测试方法的分类 从代码和用户
您可能关注的文档
最近下载
- 2025年安徽省普通高校对口招生考试(英语)历年参考题库含答案详解.docx VIP
- JIS D5301-2006(中文版本).pdf VIP
- 2025年安徽省普通高校对口招生考试(语文)历年参考题库含答案详解.docx VIP
- 2025年安徽省普通高校对口招生考试(计算机类)历年参考题库(含答案).docx VIP
- 完美演练新概念英语练习1上 参考答案.docx VIP
- 2026年安徽省普通高校对口招生考试(英语)历年参考题库含答案详解.docx VIP
- AP统计学 2015年真题 附答案和评分标准 AP Statistics 2015 Real Exam with Answers and Scoring Guidelines.pdf VIP
- 2026年安徽省普通高校对口招生考试(语文)历年参考题库含答案详解.docx VIP
- 2023年安徽省滁州市小升初语文试卷(含答案).docx VIP
- iCloud邮箱账号密码如何找回.docx VIP
原创力文档

文档评论(0)