收藏 分享(赏)

C++程序语言第二章C.ppt

上传人:dwy79026 文档编号:8116186 上传时间:2019-06-09 格式:PPT 页数:27 大小:1.80MB
下载 相关 举报
C++程序语言第二章C.ppt_第1页
第1页 / 共27页
C++程序语言第二章C.ppt_第2页
第2页 / 共27页
C++程序语言第二章C.ppt_第3页
第3页 / 共27页
C++程序语言第二章C.ppt_第4页
第4页 / 共27页
C++程序语言第二章C.ppt_第5页
第5页 / 共27页
点击查看更多>>
资源描述

1、C+程序设计实用教程,清华大学出版社 2008,第2章 C+概貌,第3讲,第2章 C+概貌,基本程序设计基本程序改进基本程序扩展C+程序开发流程C+应用程序集成开发环境简介 (上机实验中边学边用) *趣味程序变换的字符小结,本章要点 通过实例 学语法,2.2 基本程序改进,2.2.1 “算术测验”程序之二2.2.2 C+的基本运算算术运算、类型转换、自增运算关系运算逻辑运算迭代赋值运算2.2.3 C+程序流程控制条件分支语句循环语句开关语句跳转语句、返回语句,2.2.3 C+程序流程控制,对于算法设计、算法描述中所出现的条件分支、循环等结构,C+语言需要有与之相应语句实现。已经证明:任何复杂的

2、计算流程均可以被分解为以下3种结构及其嵌套。 顺序结构 分支结构(C+支持两路分支、多分支) 循环结构(C+提供3种基本循环语句)C+还提供以下流程跳转语句(break,continue,return,goto等),以方便程序结构控制。,条件分支(if)语句,条件分支 整个结构“单入口、单出口”,if(表达式)语句1;else语句2;,if(表达式)语句串1;else语句串2;,缺省else分支,表达式为false时不执行语句1。表达式总是会被执行的。,if(表达式)语句1;,if(表达式)语句串1;,else与if的匹配,else与其上面最近的、同一层次、尚未与其他else配对 的if配对。

3、编译系统将上面的程序段按如下方式编译:,if(x=0)if(x0)cout x ” 大于0。” endl;elsecout x ” 小于0。” endl;,if(x=0)if(x0)cout x ” 大于0。” endl;elsecout x ” 小于0。” endl;,正确的书写方法,if(x=0)if(x0)cout x ” 大于0。” endl;elsecout x ” 小于0。” endl;,if(x=0)if(x0)cout x ” 大于0。” endl;elsecout x ” 等于0。” endl;elsecout x ” 小于0。” endl;,if语句嵌套,根据else与if

4、的配对规定,可“推导”出如下多路分支结构。常书写成右侧的格式。,if(表达式1)语句1;elseif(表达式2)语句2;elseif(表达式3)语句3;else,if(表达式1)语句1;else if(表达式2)语句2;else if(表达式3)语句3;else,if(表达式1)语句1;else if(表达式2)语句2;else if(表达式3)语句3;else,循环语句,C+提供3种实现循环算法的语句 While循环 dowhile循环 for循环 这3种语句可以相互转换 只用其中任意一种格式可实现其他两种格式编写的语句。 它们各有其最合适的使用场合。 注意 “循环体语句执行完毕”仅为“结束

5、本轮循环,准备进入下一轮循环”; 整个循环是否结束,主要看“继续循环条件”是否为假。应该避免无穷循环(亦称“永真循环”或“死循环”)。,while循环语句,表达式为是否继续循环的条件;先判断条件,循环体可能执行0次、1次或多次。,while(表达式)循环体语句;,while(表达式)循环体语句串;,dowhile循环,先执行循环体,使循环体至少被执行一次; 建议用一对花括号将循环体语句包围起来(即使循环体为单语句),并且将右花括号写在while前(见上面的第二种写法),以明显地区别于while循环。,do循环体语句;while(表达式);,do循环体语句;while(表达式);,for循环,表

6、达式1被且仅被执行一次; 3个表达式均可缺省,缺省表达式2表示true,但两个分号不能缺省; 可以将循环体语句与表达式3合并。,for(表达式1; 表达式2; 表达式3)循环体语句;,for(表达式1; 表达式2; 表达式3) 循环体语句串; ,开关语句,switch(整型或枚举型表达式) case 常量表达式1:语句组1; case 常量表达式2:语句组2; case 常量表达式n:语句组n; default:语句组n+1; ,跳转语句,break 仅结束其所在的一层循环语句或者开关语句continue 提前结束本轮循环,准备进入下一轮循环return 返回语句,用于函数结束时 return

7、; 对应与返回类型为 void 的函数 return 表达式; 表达式的数据类型对应于函数的返回类型goto 不提倡使用。建议不要使用。,for循环中的break 及continue,第2章 C+概貌,基本程序设计基本程序改进基本程序扩展C+程序开发流程C+应用程序集成开发环境简介 (上机实验中边学边用)趣味程序变换的字符小结,2.3 基本程序扩展,2.3.1 简单函数主函数 主程序其他函数 子程序2.3.2 多文件结构算术运算、类型转换、自增运算关系运算逻辑运算迭代赋值运算,2.3.1 简单函数,C+支持大型软件开发 显然,不宜将所有的语句都写入主函数 其实,应该使主函数尽可能地简单。主要起

8、调度作用, 控制其他功能模块(即其他函数的调用); 函数逐个调用及返回,实现多种功能。启动程序执行时,将使主函数自动执行;在主函数中遇到return语句将引起程序结束。,例如,改编“算术测验”程序之二,设计“加法测验”功能函数 首先将原来的主函数名改成 add_test; 去掉输出成绩语句,将测验成绩作为该函数的返回值 return score;设计主函数,调用add_test函数今后可扩展,/ test3.cpp #include using namespace std;int add_test(); / 函数声明int main() / 主函数尽可能地简单 int score;score

9、= add_test(); / 函数调用(执行语句)cout ”成绩:” score ” 分” endl;return 0;,int add_test() / 函数定义(函数实现) int x, y, z;int i, score;time_t t;srand(time( / 返回测试成绩,/ test3.cpp 增加减法测验功能(请参见2.3.2小节) #include using namespace std;int add_test(), sub_test(); / 函数声明int main() / 主函数起调度作用 int score, choice=1;while(choice)cou

10、t choice;switch(choice)case 1: score = add_test(); break;case 2: score = sub_test(); break;cout ”成绩” score ” 分” endl;return 0;,/ 简易菜单,/ 接收选择,/ 依选择分情况处理,/新增扩展部分,2.3.2 多文件结构,C+支持众人集体开发 显然,不同的开发人员不太可能将所有程序写入同一个文件C+的编译单元 源程序文件 C+按编译单元进行分割编译C+的头文件 标准头文件 程序员自行编写的头文件模仿(算术测验程序) test.cpp test.h test_main.cpp,2.4 C+程序开发流程,编辑源程序 编译源程序生成目标代码文件 连接目标代码文件及标准库文件生成可执行文件 运行可执行文件任何一步出现错误都需要重新编辑(修改)源程序,然后重新编译、重新连接、重新运行之。,Thank You !,

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 企业管理 > 管理学资料

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报