C++程序语言第二章C_第1页
C++程序语言第二章C_第2页
C++程序语言第二章C_第3页
C++程序语言第二章C_第4页
C++程序语言第二章C_第5页
已阅读5页,还剩22页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、C+程序设计实用教程,清华大学出版社 2008,第2章 C+概貌,第3讲,并铭祁右凯研眺懒画束政旋熔酶块骏壕链鸽胳馏牙载迎沸立销姚感进捷帝C+程序语言第二章C第2章 C+概貌(第3讲),第2章 C+概貌,基本程序设计 基本程序改进 基本程序扩展 C+程序开发流程 C+应用程序集成开发环境简介 (上机实验中边学边用) *趣味程序变换的字符 小结,本章要点 通过实例 学语法,裤践寅烁台们唤堰潞函程竿展婆朴淆铀奇蔓蚁区恍向哺春渗掉坯鸟百烤税C+程序语言第二章C第2章 C+概貌(第3讲),2.2 基本程序改进,2.2.1 “算术测验”程序之二 2.2.2 C+的基本运算 算术运算、类型转换、自增运算

2、关系运算 逻辑运算 迭代赋值运算 2.2.3 C+程序流程控制 条件分支语句 循环语句 开关语句 跳转语句、返回语句,幌娘酮费筷瓢垛甩妇患择选暂观蘸郴宫讣降宁超怕脚晚耳卡鼻菏裳诈抑片C+程序语言第二章C第2章 C+概貌(第3讲),2.2.3 C+程序流程控制,对于算法设计、算法描述中所出现的条件分支、循环等结构,C+语言需要有与之相应语句实现。 已经证明:任何复杂的计算流程均可以被分解为以下3种结构及其嵌套。 顺序结构 分支结构(C+支持两路分支、多分支) 循环结构(C+提供3种基本循环语句) C+还提供以下流程跳转语句(break,continue,return,goto等),以方便程序结构

3、控制。,撕豫门烃霞鸽枷恃匀痢英猴议深蝗囱魄甩骡疥古绘竿疮讶匪凑惯癌枫汪棠C+程序语言第二章C第2章 C+概貌(第3讲),条件分支(if)语句,条件分支 整个结构“单入口、单出口”,if(表达式) 语句1; else 语句2;,if(表达式) 语句串1; else 语句串2; ,夺滚雄贝尺蜗鸵善氏醉惯俐盯蹦能绷琐蒲勾蕉军克湘晕玛备择敌环碗七耸C+程序语言第二章C第2章 C+概貌(第3讲),缺省else分支,表达式为false时不执行语句1。表达式总是会被执行的。,if(表达式) 语句1;,if(表达式) 语句串1; ,热酗肢妒剁霉基干痴藻庆令桅埂略抒圾衙炸牧哨朝掘咐本刷吸翼座蝉盈众C+程序语言第

4、二章C第2章 C+概貌(第3讲),else与if的匹配,else与其上面最近的、同一层次、尚未与其他else配对的if配对。 编译系统将上面的程序段按如下方式编译:,if(x=0) if(x0) cout x ” 大于0。” endl; else cout x ” 小于0。” endl;,if(x=0) if(x0) cout x ” 大于0。” endl; else cout x ” 小于0。” endl; ,酬桌达蘑敝滁碳迈氧织演纸玻盔佰峦晌藏域钩朽妆郁粹虐昌讽嗡厌花林灼C+程序语言第二章C第2章 C+概貌(第3讲),正确的书写方法,if(x=0) if(x0) cout x ” 大于0。

5、” endl; else cout x ” 小于0。” endl;,if(x=0) if(x0) cout x ” 大于0。” endl; else cout x ” 等于0。” endl; else cout x ” 小于0。” endl;,驰蕉跪胞书桨疏啦遭鲤葡活特纬钱胃苏掣朋锣丢既仑惜憨舵动屹窖妮错恳C+程序语言第二章C第2章 C+概貌(第3讲),if语句嵌套,根据else与if的配对规定,可“推导”出如下多路分支结构。常书写成右侧的格式。,if(表达式1) 语句1; else if(表达式2) 语句2; else if(表达式3) 语句3; else ,if(表达式1) 语句1; el

6、se if(表达式2) 语句2; else if(表达式3) 语句3; else ,if(表达式1) 语句1; else if(表达式2) 语句2; else if(表达式3) 语句3; else ,蔼锚时丧瑰怂夫粳锈障注骋讼裕卷屏屉烂瘁扩连蒙虑捞杜亚芋毗苞腊黑松C+程序语言第二章C第2章 C+概貌(第3讲),循环语句,C+提供3种实现循环算法的语句 While循环 dowhile循环 for循环 这3种语句可以相互转换 只用其中任意一种格式可实现其他两种格式编写的语句。 它们各有其最合适的使用场合。 注意 “循环体语句执行完毕”仅为“结束本轮循环,准备进入下一轮循环”; 整个循环是否结束,主

7、要看“继续循环条件”是否为假。应该避免无穷循环(亦称“永真循环”或“死循环”)。,暗了军去龄雀彩爸整话担村然戈愈眯应佰海蚌磨劲创账又粹沁轧淬穴皖迪C+程序语言第二章C第2章 C+概貌(第3讲),while循环语句,表达式为是否继续循环的条件; 先判断条件,循环体可能执行0次、1次或多次。,while(表达式) 循环体语句;,while(表达式) 循环体语句串; ,堵团漫矮火彬妮不乘狱职嘛喝蒋环扬璃华摔隘惧矗燕履蝇踌豌漫吁单蜀薛C+程序语言第二章C第2章 C+概貌(第3讲),dowhile循环,先执行循环体,使循环体至少被执行一次; 建议用一对花括号将循环体语句包围起来(即使循环体为单语句),并

8、且将右花括号写在while前(见上面的第二种写法),以明显地区别于while循环。,do 循环体语句; while(表达式);,do 循环体语句; while(表达式);,俯峻僚槛彰湿施惹介永鸯远耽脑辐垛则息淫靶钩偷办饥成忘皂扇董仪娱廷C+程序语言第二章C第2章 C+概貌(第3讲),for循环,表达式1被且仅被执行一次; 3个表达式均可缺省,缺省表达式2表示true,但两个分号不能缺省; 可以将循环体语句与表达式3合并。,for(表达式1; 表达式2; 表达式3) 循环体语句;,for(表达式1; 表达式2; 表达式3) 循环体语句串; ,耕胳稼魄闻侈层咐宋络凡惟该唁迟赏洛唉纫掏涌敢烃就匝膛键

9、孝帆区物集C+程序语言第二章C第2章 C+概貌(第3讲),开关语句,switch(整型或枚举型表达式) case 常量表达式1: 语句组1; case 常量表达式2: 语句组2; case 常量表达式n: 语句组n; default: 语句组n+1; ,乌房睡捅锡因址径懊兄臃段轧倚针胎哀为悉祥显染代产土掌辩阂零泪欢庚C+程序语言第二章C第2章 C+概貌(第3讲),跳转语句,break 仅结束其所在的一层循环语句或者开关语句 continue 提前结束本轮循环,准备进入下一轮循环 return 返回语句,用于函数结束时 return; 对应与返回类型为 void 的函数 return 表达式;

10、表达式的数据类型对应于函数的返回类型 goto 不提倡使用。建议不要使用。,活音潞聋扦侠瑞葵睁钨揖案蟹施嫂谜驾焙潮锰喳玄著再际文论贷雄撤攘较C+程序语言第二章C第2章 C+概貌(第3讲),for循环中的break 及continue,贫褒蝎予两缩蘑霍鸡尾将斥魔绿锤阎删伶曾系掐瞻缘码匠哉飘端稻骆扇时C+程序语言第二章C第2章 C+概貌(第3讲),第2章 C+概貌,基本程序设计 基本程序改进 基本程序扩展 C+程序开发流程 C+应用程序集成开发环境简介 (上机实验中边学边用) 趣味程序变换的字符 小结,颅撼怯制赫闪而辖揉傣交滋二蓉陇骗介屉展胳秆虎撵淮暖迭兼驯店弊漳斩C+程序语言第二章C第2章 C+

11、概貌(第3讲),2.3 基本程序扩展,2.3.1 简单函数 主函数 主程序 其他函数 子程序 2.3.2 多文件结构 算术运算、类型转换、自增运算 关系运算 逻辑运算 迭代赋值运算,滋酌过玖驴隧作致唐簿载奄砸砂观绎铅保絮衷嘘凝保钒朽右节计势裸讲达C+程序语言第二章C第2章 C+概貌(第3讲),2.3.1 简单函数,C+支持大型软件开发 显然,不宜将所有的语句都写入主函数 其实,应该使主函数尽可能地简单。主要起调度作用,控制其他功能模块(即其他函数的调用); 函数逐个调用及返回,实现多种功能。 启动程序执行时,将使主函数自动执行; 在主函数中遇到return语句将引起程序结束。,埋给狰澎列沫绸启

12、轿皆屠凝蛙厩凉岗枢懦懈阁掸愁巢检炎抉阎倡椒肪骗堪C+程序语言第二章C第2章 C+概貌(第3讲),例如,货闷悸畅禾类贯诱颊起勇惟乔阎蝉件锁懦眺梦没敲登肄聚啊埔壶蹬婿难甭C+程序语言第二章C第2章 C+概貌(第3讲),改编“算术测验”程序之二,设计“加法测验”功能函数 首先将原来的主函数名改成 add_test; 去掉输出成绩语句,将测验成绩作为该函数的返回值 return score; 设计主函数,调用add_test函数 今后可扩展,等准夺遗畅沮纹詹挪干泳涟守部粗铸悍稿勒绵污晕忿跺鳞纠假嘛组手扔盒C+程序语言第二章C第2章 C+概貌(第3讲),/ test3.cpp #include usin

13、g namespace std; int add_test();/ 函数声明 int main()/ 主函数尽可能地简单 int score; score = add_test();/ 函数调用(执行语句) cout ”成绩:” score ” 分” endl; return 0; ,律札遣惕限伸最特锗胃详浦大醋澡豌剪叫禾螺峙谩敌妙桩秧款粥伊鱼超眩C+程序语言第二章C第2章 C+概貌(第3讲),int add_test() / 函数定义(函数实现) int x, y, z; int i, score; time_t t; srand(time(/ 返回测试成绩 ,疵狙返吸艘屎岿座览酉奋兽吓唾曾

14、捕厩眷晦贫移呻粘隶艳祷赎嘉蹄碗茂茬C+程序语言第二章C第2章 C+概貌(第3讲),/ test3.cpp增加减法测验功能(请参见2.3.2小节) #include using namespace std; int add_test(), sub_test();/ 函数声明 int main()/ 主函数起调度作用 int score, choice=1; while(choice) cout choice; switch(choice) case 1: score = add_test(); break; case 2: score = sub_test(); break; cout ”成绩”

15、 score ” 分” endl; return 0; ,/ 简易菜单,/ 接收选择,/ 依选择分情况处理,/新增扩展部分,铺绎贸屈钻罩涧置郝敖凌嘉惊趣鼓甘廉帅淘袖嗣秀从视办纱抠膘的媚窃挖C+程序语言第二章C第2章 C+概貌(第3讲),2.3.2 多文件结构,C+支持众人集体开发 显然,不同的开发人员不太可能将所有程序写入同一个文件 C+的编译单元 源程序文件 C+按编译单元进行分割编译 C+的头文件 标准头文件 程序员自行编写的头文件 模仿(算术测验程序) test.cpp test.h test_main.cpp,曾茅诺枷脯黄恢蕾亢情曾枷辙慎氰骑盘车扒婚蚜枪耪考院巾脓待三鄂婆运C+程序语言第二章C第2章 C+

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论