华中科技大学C++课件_第1页
华中科技大学C++课件_第2页
华中科技大学C++课件_第3页
华中科技大学C++课件_第4页
华中科技大学C++课件_第5页
已阅读5页,还剩51页未读 继续免费阅读

下载本文档

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

文档简介

1、网络与计算中心网络与计算中心计算机与程序设计基础计算机与程序设计基础(C+C+)LOGO程序控制结构n事件的执行流程-程序控制结构网络与计算中心网络与计算中心顺序分支循环程序控制结构程序控制结构网络与计算中心网络与计算中心第三章第三章 分分支条件选择支条件选择流程流程LOGOi f 结 构s w i t c h 结构综 合 应 用网络与计算中心网络与计算中心主 要 内 容LOGO总额=400400总额=245元245总额=125总额、=、大于=大于等于=小于等于=等于!=不等于&与,双目|或,双目!非,单目强调:强调:区间范围的判断,如:区间范围的判断,如:0=x=1000=x=0 &

2、amp; x=0 & xbc 等同于等同于(ab)c,先求先求ab 的值的值,再将结果再将结果0或或1与与c比较大小比较大小Ex: (a=5, b=4,c=3) = ab为真为真(1) = 1c为为“假假(0)”int y=ab; 将将ab的值赋给的值赋给y, ab为为”真真”,y的值为的值为1; ab为为”假假”,y的值的值为为0Ex:(a=5, b=3) = ab为真为真 = y=1a+bc+d等同等同于于(a+b)(c+d),结果为结果为”假假(0)”或或”真真(1)”Ex:(a=b=c=d=4) = (a+b)(c+d),结果,结果为为“假假”条件判断表达式的计算LOGO#in

3、clude using namespace std;int main() char ch; cout ch ; if ( ch = A & ch = Z ) ch += 32 ; cout ch v;结束v60 cout”超速!“endl; cout”正常!“velocity; if (velocity60) cout”超速!“endl; else cout”正常!“velocity; if (velocity60) cout”超速!“endl; if (velocity=60) cout”正常!“v;结束v60 cout”超速!“; coutendl; cout”正常!“; cout

4、velocity; if (velocity60) cout”超速!“;coutendl; else cout”正常!“;coutendl; 分支块中的语句多余1条时,要加大括号括起来LOGO条件运算符“?:” n三元运算符“?:”可以用来简化if语句表达n表达式表达式1 ? 表达式表达式2 : 表达式表达式3例如:int a=6,b=7; min=ab? a:b; /min=6LOGO#include using namespace std;int main() char ch; cout ch ; if ( ch = A & ch = Z ) ch += 32 ; cout ch

5、= A & ch = Z ) ? ch + 32 : ch ;把输入字符转换为小写字母。对输入字符进行判断,如果是大写字母,则转换为小写字母;否则,不转换。 条件运算符“?:”LOGOn以下条件满足以下条件满足1条即是闰年条即是闰年Leapyear 1.(能被能被4整除整除)并且并且(不能被不能被100整除整除)2.(能被能被400整除整除)2:(能被400整除)year%400=0!(year%400)1-1:(能被4整除)year%4=0!(year%4)1-2:(不能被100整除)year%100!=0year%100例例: : 输入一个年份,判断是否为闰年输入一个年份,判断是否

6、为闰年year%4=0&year%100!=0|year%400=0)例例2.4 2.4 输入一个年份,判断是否为闰年输入一个年份,判断是否为闰年#includeusing namespace std;int main () int year; cout“输入年份输入年份” year ; if (year%4=0&year%100!=0|year%400=0) cout year “年时闰年年时闰年” endl ; else coutyear“年不是闰年年不是闰年”=400ca=am*0.9真真假cinam;245=amca=am*0.95真真假125=amca=am*0.97

7、真真假ca=amcout=400ca=am*0.9真真假cinam;245=amca=am*0.95真真假125=amca=am*0.97真真假ca=amcout= 400) ca=am*0.9;else if (245=am) ca=am*0.95; else if (125=am) ca=am*0.97; else ca=am;输入输入560560=0&x=x&x=60)cout成绩合格!endl;elsecout成绩不合格!endl;elsecout输入数据错误=0&x=x&x=60)cout成绩合格!endl;elsecout成绩不合格!endl;els

8、ecout输入数据错误=0&x=100)if (100=60)cout成绩合格!endl;elsecout成绩不合格!endl;elsecout输入数据错误endl;采用采用缩进形式的程序书写方式将缩进形式的程序书写方式将 if-else中的语句中的语句块对应起来,可减少判断错误块对应起来,可减少判断错误配对关系实例:配对关系实例:/情况情况1:if(n%3=0) if(n%5=0) coutn是是15的倍数的倍数endl; else cout n是是3的倍数但不是的倍数但不是5的倍数的倍数endl;/情况情况2:if(n%3=0) if(n%5=0) coutn是是15的倍数的倍数e

9、ndl; else cout n 不是不是3的倍数的倍数LOGO3.2 switch3.2 switch结构结构switch语句break的应用网络与计算中心网络与计算中心LOGOswitch ( 表达式表达式 ) case 常量常量 1 : 语句块语句块1 ; case 常量常量 2 : 语句块语句块1 ; . case 常量常量 n : 语句块语句块n ; default : 语句语句 块块n+1; 表达式表达式值值类型类型为为非浮点型非浮点型整型,布尔型,字符型整型,布尔型,字符型,defaultdefault子句可选子句可选。缺省时,没有匹配值缺省时,没有匹配值switch switc

10、h 语句为空语句为空switchswitch根据表达式的值决定程序分支根据表达式的值决定程序分支LOGOncase 和和 default 仅起语句标号作用,不能控制程序流程仅起语句标号作用,不能控制程序流程n一旦选中一个一旦选中一个case分支后,将继续分支后,将继续往下往下顺序执行顺序执行语句序列语句序列=常量常量1=常量常量2=常量常量3=常量常量n-1=常量常量nswitch语句执行流程语句执行流程LOGO=常量常量1=常量常量2=常量常量nn添加 break 语句可以跳出 switch 语句体,达到控制流程作用switch语句要点1.LOGO【例 】 根据百分制考试成绩打印等级int

11、main () double score ; cout Input score : score ; switch ( ) Switch难点:难点:Switch表达式表达式多值多值-单值单值 100,90:A (90,80:B (80,70:C (70,60:D (60,0:Eint(score/10)case 10 :case 9 : cout year; int i;/生肖编号 i=f(year);LOGO设计一个程序,能根据输入的年份(设计一个程序,能根据输入的年份(4 4位位整数)输出该整数)输出该年的生肖年的生肖( (提示:提示:19721972年为鼠年年为鼠年)例如:输入例如:输入1

12、9881988,输出为,输出为“龙龙”2022-7-436i01211输出输出 “ “鼠鼠”输出输出 “ “牛牛”输出输出 “ “猪猪”910输出输出 “ “狗狗”输出输出 “ “鸡鸡”.LOGO设计一个程序,能根据输入的年份(设计一个程序,能根据输入的年份(4 4位位整数)输出该整数)输出该年的生肖年的生肖( (提示:提示:19721972年为鼠年年为鼠年)例如:输入例如:输入19881988,输出为,输出为“龙龙”2022-7-437i01211输出输出 “ “鼠鼠”输出输出 “ “牛牛”输出输出 “ “猪猪”910输出输出 “ “狗狗”输出输出 “ “鸡鸡”. switch(i)case

13、 0: cout“鼠; break;case 1: cout“牛; break;.case 10: cout“狗”; break;case 11:cout=1972i=(year-1972)%12year=1972) i=(year-1972)%12; else i=(year-1972)%12+12;year-1972生肖/i1971-1猪/11由由year计计算生肖算生肖编编号号iLOGOSwitch 举例 (不加break的使用)根据根据输入的日期判断该日期是当年的第几天。网络与计算中心网络与计算中心月份天数假设输入日期2014.9.28则计算的天数S=31+.30LOGO3.3 3.3

14、 综合综合应用应用网络与计算中心网络与计算中心计算机与程序设计基础计算机与程序设计基础(C+)(C+) 问题问题:运输公司每公里每吨的基本运费为运输公司每公里每吨的基本运费为p,p,对所运货物实行对所运货物实行分段计费。设运输里程为分段计费。设运输里程为s ,s ,则运费打折情况如下:则运费打折情况如下: s500 不打折 500=s1000 5% 1000=s2000 8% 2000=s3000 10% 3000=3000=30001000200010002000200030002000300050010005001000 =3000=3000100020010002000 02,32000

15、30002000300050010005001000 500500f=f=f+pf+p* *w w* *(s-3000)(s-3000)* *(1-0.15);(1-0.15);f=f=f+pf+p* *w w* *(s-1000)(s-1000)* *(1-0.08);(1-0.08); f=f=f+pf+p* *w w* *(s-2000)(s-2000)* *(1-0.10);(1-0.10); f=f=f+pf+p* *w w* *s s* *(1-0(1-0); ;f=f=f+pf+p* *w w* *(s-500)(s-500)* *(1-0.05)(1-0.05) ; ;0s=3

16、000;s=2000;s=1000;s=500;LOGOEX3.13EX3.13n中国有句俗语叫三天打渔两天晒网。某人从2011年1月1日起开始三天打渔两天晒网,问这个人在以后的某一天中是打渔还是晒网。网络与计算中心网络与计算中心n定义当前日期(Year, Month, Day)n计算从当前日期到2011-1-1的总天数TotaldaysnTotaldays%5n1, 2, 3:打渔“n4, 0:晒网LOGO网络与计算中心网络与计算中心EX3.13EX3.13当前日期(year-month-day)起点日期(2011-1-1)year-1-1TotaldaysLOGO网络与计算中心网络与计算中

17、心EX3.13EX3.13当前日期(year-month-day)起点日期(2011-1-1)参考日期(2001-1-1)year-1-1Totaldaysint TotaldaysDate1;int days;LOGO网络与计算中心网络与计算中心EX3.14EX3.14当前日期(year-month-day)起点日期(2011-1-1)参考日期(2001-1-1)year-1-1int days=0;switch(month-1)case 11:days+=30;case 10:days+=31;case 9:days+=30;case 8:days+=31;case 7:days+=31;

18、case 6:days+=30;case 5:days+=31;case 4:days+=30;case 3:days+=31;case 2:days+=28; if(year%4=0&year%100!=0|year%400=0) days+;case 1:days=days+31;case 0:break;days+=day;LOGO网络与计算中心网络与计算中心EX3.14EX3.14当前日期(year-month-day)参考日期(2001-1-1)year-1-1daysint nYear2=year-2001;365*nYear2 + nYear2/4;days+=365*n

19、Year2 + nYear2/4;LOGO网络与计算中心网络与计算中心EX3.14EX3.14当前日期(year-month-day)起点日期(2011-1-1)参考日期(2001-1-1)year-1-1int nYear1=2011-2001;TotaldaysDate1=365*nYear1 + nYear1/4;LOGO网络与计算中心网络与计算中心EX3.14EX3.14当前日期(year-month-day)起点日期(2011-1-1)参考日期(2001-1-1)TotaldaysTotaldaysDate1;days;Totaldays=days-TotaldaysDate1;LO

20、GO#include #include using namespace std;int main() int year,month,day; /当前日期(当前日期(year-month-day)到参考日期)到参考日期2001-1-1间的间的天数天数 int days=0; /2011-1-1到参考日期到参考日期2001-1-1间的天数间的天数 int TotaldaysDate1=0; int nYear1,nYear2; /从从2011-1-1开始到当前日期(开始到当前日期(year-month-day)的天数)的天数 int Totaldays; 网络与计算中心网络与计算中心LOGO/统计统计2011到到2001

温馨提示

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

评论

0/150

提交评论