手机版

5分而治之-模块化程序设计3

时间:2025-07-15   来源:未知    
字号:

5分而治之-模块化程序设计2

高级语言程序设计

第5章 分而治之 —模块化程序设计(3)

5分而治之-模块化程序设计2

复习函数的调用

5分而治之-模块化程序设计2

今天要解决的问题

问题5: 大规模问题求解 问题6: 简单的计算机绘图

5分而治之-模块化程序设计2

目标

熟悉多文件程序设计的方法(命令行、工程、 makefile) 理解文件模块的意义、变量或函数的文件作用 域(static 全局变量,extern外部变量、 static函数和外部函数) 知道接口的概念

5分而治之-模块化程序设计2

问题5: 大规模问题求解

很多实际问题的规模都比较大,可能要分解出很 多函数模块, 这些模块如果都和main函数放在一个源文件中, 不易管理和维护, 常常把它们划分到多个文件中 多文件如何编译、链接?

5分而治之-模块化程序设计2

(1)算术练习软件

设计一个2位整数的算术练习软件。要求首先显示如下的用户界面: 欢迎您参加算术练习,请选择: ======================= 1 加法 2 减法 3 乘法 4 除法 0 退出 ======================= 根据用户选择的1~4,为用户提供加法、减法、乘法或除法练习服 务。每次随机出题,用户回答,如果回答不正确请重做,如果正确, 问继续否y/Y or n/N?如果回答y/Y,继续出下一道题,否则重新显 示用户界面,等待用户选择。

5分而治之-模块化程序设计2

算法设计(顶层算法/主流程)

1 显示菜单界面 2 用户选择(1-4 或 0) 3 如果选择1 加法练习,继续?如果继续到(1)否则 到(9) 4 如果选择2 减法练习,继续?如果继续到(1)否则 到(9) 5 如果选择3 减法练习,继续?如果继续到(1)否则 到(9) 6 如果选择4 减法练习,继续?如果继续到(1)否则 到(9) 7 如果选择0 到(9) 8 如果输入了其它字符无效 9 结束

5分而治之-模块化程序设计2

算法设计(加法练习模块)

1 生成两个2位随机整数 2 列出加法算式 3 用户输入答案 4 如果答案正确 (5)否则输出错误信息返回 (2) 5 继续?如果继续返回(1)否则返回到主函 数

5分而治之-模块化程序设计2

算法实现(主函数)

int main(void) { char a; start: srand(time(NULL)); meau(); a=getch(); switch(a) { case '1':addtion();break; case '2':substraction();break; case '3':multiplication();break; case '4':division();break; case '0':exit(0); default:break; } goto start; return 0; }

5分而治之-模块化程序设计2

算法实现(加法练习函数)

void addtion(void) { int c; char d; do { make2Number(); printf("%d+%d=",x,y); scanf("%d",&c); while ( c != x+y ){ printf("wrong! try again please!\n"); printf("%d+%d=",x,y); scanf("%d",&c); } printf("right! continue?\n"); d=getch(); } while(d=='y'||d=='Y'); }

5分而治之-模块化程序设计2

单文件版

arithall.c 不足:程序不易维护

5分而治之-模块化程序设计2

多文件版

把程序分割为几个文件

arithmain.c arithfuncs.c arithfuncs.h查看代码 并注意几个不同的地方(static 变 量和static函数)

5分而治之-模块化程序设计2

几个新问题

全局变量(外部变量和文件作用域的全局变量) static 全局变量是只在所在的文件中使用 extern 变量在其它文件中也可以使用 外部函数(全局函数) extern 函数在所有的文件中都可以使用 内部函数(私有函数) static 函数是只在所在的文件中使用

5分而治之-模块化程序设计2

变量的链接(linkage)

外部链接 全局变量 内部链接 静态全局变量 无链接 静态局部变量

5分而治之-模块化程序设计2

多文件应用程序的编译和链接 ----命令行方法

分别编译 gcc –c arithmain.c gcc –c arithfuncs.c 然后链接 gcc –o arith.exe arithmain.o arithfuncs.o 也可以gcc –o arith.exe arithmain.c arithfuncs.c

5分而治之-模块化程序设计2

多文件应用程序的编译和链接 ----在集成环境中建立一个工程

新建一个console project 把 arithmain.c arithfuncs.c arithfuncs.h 添加到工程中 然后编译链接

…… 此处隐藏:150字,全部文档内容请下载后查看。喜欢就下载吧 ……
5分而治之-模块化程序设计3.doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
    ×
    二维码
    × 游客快捷下载通道(下载后可以自由复制和排版)
    VIP包月下载
    特价:29 元/月 原价:99元
    低至 0.3 元/份 每月下载150
    全站内容免费自由复制
    VIP包月下载
    特价:29 元/月 原价:99元
    低至 0.3 元/份 每月下载150
    全站内容免费自由复制
    注:下载文档有可能出现无法下载或内容有问题,请联系客服协助您处理。
    × 常见问题(客服时间:周一到周五 9:30-18:00)