C语言-分而治之-模块化程序设计(3)※

C语言-分而治之-模块化程序设计(3)※

ID:40428007

大小:345.50 KB

页数:31页

时间:2019-08-02

C语言-分而治之-模块化程序设计(3)※_第1页
C语言-分而治之-模块化程序设计(3)※_第2页
C语言-分而治之-模块化程序设计(3)※_第3页
C语言-分而治之-模块化程序设计(3)※_第4页
C语言-分而治之-模块化程序设计(3)※_第5页
资源描述:

《C语言-分而治之-模块化程序设计(3)※》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、高级语言程序设计第5章分而治之—模块化程序设计(3)复习函数的调用今天要解决的问题问题5:大规模问题求解//问题6:简单的计算机绘图目标熟悉多文件程序设计的方法(命令行、makefile、工程)理解文件模块的意义、变量或函数的文件作用域(static全局变量,extern外部变量、static函数和外部函数)知道接口的概念问题5:大规模问题求解很多实际问题的规模都比较大,可能要分解出很多函数模块,这些模块如果都和main函数放在一个源文件中,不易管理和维护,常常把它们划分到多个文件中多文件如何编译、链接?(1)算术练习软件设计一个2位整数的算术练习软件。要求首先显示如下的用户界面:欢迎

2、您参加算术练习,请选择:=======================1加法2减法3乘法4除法0退出=======================根据用户选择的1~4,为用户提供加法、减法、乘法或除法练习服务。每次随机出题,用户回答,如果回答不正确请重做,如果正确,问继续否y/Yorn/N?如果回答y/Y,继续出下一道题,否则重新显示用户界面,等待用户选择。算法设计(顶层算法/主流程)1显示菜单界面2用户选择(1-4或0)3如果选择1加法练习,继续?如果继续到(1)否则到(9)4如果选择2减法练习,继续?如果继续到(1)否则到(9)5如果选择3减法练习,继续?如果继续到(1)否则到(9

3、)6如果选择4减法练习,继续?如果继续到(1)否则到(9)7如果选择0到(9)8如果输入了其它字符无效9结束算法设计(加法练习模块)1生成两个2位随机整数2列出加法算式3用户输入答案4如果答案正确(5)否则输出错误信息返回(2)5继续?如果继续返回(1)否则返回到主函数算法实现(主函数)intmain(void){chara;start:srand(time(NULL));meau();a=getch();switch(a){case'1':addtion();break;case'2':substraction();break;case'3':multiplication();bre

4、ak;case'4':division();break;case'0':exit(0);default:break;}gotostart;return0;}算法实现(加法练习函数)voidaddtion(void){intc;chard;do{make2Number();printf("%d+%d=",x,y);scanf("%d",&c);while(c!=x+y){printf("wrong!tryagainplease!");printf("%d+%d=",x,y);scanf("%d",&c);}printf("right!continue?");d=getch();}

5、while(d=='y'

6、

7、d=='Y');}单文件版arithall.c不足:程序不易维护多文件版把程序分割为几个文件arithmain.carithfuncs.c–最终这些函数将打包成函数库libarithfuncs.h–原型的重要性—函数的接口查看代码并注意几个不同的地方(static变量和static函数)几个新问题全局变量(外部变量和文件作用域的全局变量)static全局变量是只在所在的文件中使用extern变量在其它文件中也可以使用外部函数(全局函数)extern函数在所有的文件中都可以使用内部函数(私有函数)static函数是只在所在的文件中使用。注意:私有函数的私有特点

8、变量的链接(linkage)全局变量是外部链接静态全局变量是内部链接静态局部变量无链接多文件应用程序的编译和链接----命令行方法分别编译gcc–carithmain.cgcc–carithfuncs.c然后链接gcc–oarith.exearithmain.oarithfuncs.o也可以gcc–oarith.exearithmain.carithfuncs.c多文件应用程序的编译和链接----在集成环境中建立一个工程新建一个consoleproject把arithmain.carithfuncs.carithfuncs.h添加到工程中然后编译链接(2)一般的学生成绩管理问题问题描述

9、:假设我们要为学校教务部门开发一个学生成绩管理系统,要求能用这个系统录入学生成绩修改学生成绩统计学生成绩查询学生成绩输出学生成绩(报表)建立多个文件:每个功能模块建立一个源文件和一个头文件---称为文件模块sgms.cppinput.cpp,input.hmodify.cpp,modify.hquery.cpp,query.hstatistic.cpp,statistic.hreport.cpp,report.h这里暂时不去考虑每个模块的具体实

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。