




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第1章C++程序的基本组成谭晓华
tanxh719@yC++程序设计基础几点说明课程内容内容以课件为准课程目标为后续课程打基础课程考核
平时成绩(30%)+期末(70%)什么是程序程序是为实现特定目标或解决特定问题而用计算机语言编写的命令序列(语句)的集合。例如:#include<iostream>usingnamespacestd;intmain(){ cout<<1+1<<endl; return0;}这是用C++语言编写的一个实现求1+1的和并输出(显示)到屏幕的程序。程序的组成一个程序是由数据的描述和对数据处理的描述组成的。数据描述,即数据结构。简单的讲,数据结构就是数据的组织方式。数据结构是计算机学科的核心课程之一,有许多专门著作论述。本课程只介绍简单的数据结构。对数据处理描述,即算法。算法是为解决一个问题而采取的方法和步骤,是程序的灵魂。著名计算机科学家沃思(NikiklausWirth)提出一个公式:程序=数据结构+算法汉堡的制作过程程序和汉堡的关系程序=数据结构+算法汉堡制作流程=配方+操作工艺思考:在汉堡生菜和奶酪之间再加上一个鸡蛋(egg)?如果放两片牛肉呢?程序和汉堡//预处理命令#include<BreadUp>#include<BreadDown>#include<Lettuce>#include<Cheese>#include<Beef>//函数intmain()//函数头{
BreadDownbd(1);
Lettucel(1); add(l,bd);
Cheesec(1); add(c,l);
Beefb(1); add(b,c);
BreadUpbu(1); add(bu,b); return0;}//{}是函数体C++程序的基本要求每个程序都必须有一个主函数main,程序运行从其开始。函数是由语句组成的,每条语句以“;”作为结束符。语句分为对数据进行描述的声明语句和对数据进行处理的执行语句。C++程序的基本要求数据结构的首要要素是数据的类型。根据来源不同,类型可以分为:预定义的基本类型是指语言自带的数据类型,有整型、字符型、浮点型等。整型(int)就是整数,没有小数部分,如:20,50。数据结构
浮点型(float或double)就是实数,float是单精度,也就是精确度低的实数;double是双精度,也就是精确度高的实数,如:4.5,4.6578。字符型(char)就是单引号括起来的一个字符,如:‘T’,‘7’,‘!’预定义的派生类型是指在简单类型的基础上,进一步派生构造得到的数据类型。如数组、结构体等。数据结构数据结构整型(int)字符型(char)实型(浮点型)枚举类型单精度型(float)双精度型(double)数组类型结构体类型共用体类型派生类型基本类型指针类型空类型预定义数据类型自定义类型指用户根据需要自己定义的数据类型。通过自定义类型可以将数据类型进行延伸,定义任意多的数据类型。数据结构单个数据相互关联的一组数据。数据结构变量变量的含义变量是计算机内存中的一段存储空间。可以看作是一种存储数据的小盒子。每个盒子都有名称,即变量名;里面存储着不同类型的数据,即变量值。例如:有2个变量,分别叫score和bread。每个变量名与一个保存数据的盒子相对应。数据结构score38bread变量的含义如果想使用盒子里的数据,只需在程序的任何一个位置使用盒子名称即可。比如,如果要想查看当前得分,可以使用变量名score,程序就会用38这个数字表示它;如果程序中需要加一片面包,可以使用变量名bread。另外,也可以在任何时候将盒子清空,然后放进新的数据。它是可变的,所以称为变量。数据结构score38bread变量的类型如果有很多盛满各种各样东西的小盒子(变量),有时候有必要知道每个盒子盛的是什么类型的东西,以防止把东西放错了盒子。一个好的做法就是给盒子贴上标签,说明变量的类型。变量的类型可以是前面所述的任意一种。数据结构intscore38foodbread变量的声明在C++中,贴标签是通过变量声明语句来实现的。数据结构变量声明语句:变量类型变量名;如:charcup;inta,b,c=10;floatx=2,y,z;charcupintc10变量的使用通过变量声明,只是创建了变量这个空盒子。盒子只有装入东西,也就是变量只有写入值才能使用。为变量写值有两种方法:创建变量的同时写入值。例如:intscore=0;创建好盒子之后再写入值。例如:intscore;score=10;score=20;这个过程叫赋值。通过赋值可以为变量写入值,也可以改变变量的值。数据结构intscoreintscore1020变量的使用有些数据在程序中需要,但其值无法确定或值不断变化,有些数据在程序中需要多次使用,使用变量来存放这些数据是一种不错的做法。比如:游戏程序中的得分会随着玩家玩游戏的进度而不断地变化,这时可定义一个变量来存储得分。数据结构intscore0intscore10intscore20为了表示一个算法,可以用不同的方法。常用的有以下4种:自然语言流程图伪代码计算机语言用一种计算机语言(C++)去描述算法,这就是计算机程序。C++语言中的一条语句,就是一个步骤。算法算法中的步骤,即C++中的语句通常有以下三种结构:顺序结构选择结构循环结构算法顺序结构就是按从上到下顺序依次执行每一个步骤,即每一条语句。顺序结构先执行语句a,再执行语句b语句a语句b//预处理命令#include<BreadUp>#include<BreadDown>#include<Lettuce>#include<Cheese>#include<Beef>//函数intmain()//函数头{
BreadDownbd(1);
Lettucel(1); add(l,bd);
Cheesec(1); add(c,l);
Beefb(1); add(b,c);
BreadUpbu(1); add(bu,b); return0;}//{}是函数体顺序结构如何根据个人的需要确定原料的量呢?Beefb;cin>>b;add(b,c);顺序结构中,C++常用的语句有:变量声明语句赋值语句:score=10;用户输入语句格式功能暂停程序的执行,等待用户的输入,并将输入的内容存放到“变量名”指定的变量中。举例cin>>score;顺序结构cin>>变量名;程序输出语句格式功能把指定的数据输出显示到显示器屏幕。这里的数据可以是由变量名指定,也可以由称为常量的具体的值指定。举例cout<<score<<5<<x+y<<endl;//endl是表示回车换行的一个常量顺序结构cout<<数据;举例编写程序计算并输出z=x/y。#include<iostream>usingnamespacestd;intmain()//程序入口,即程序开始的位置{ doublex,y,z;//定义变量cin>>x>>y;//等待用户输入x和y值 z=x/y;//将x/y值赋值给z cout<<z<<endl;//将z值输出显示到屏幕 return0;}顺序结构说明:cin和cout是在iostream头文件中定义的,所以加入#include<iostream>。另外该头文件来自命名空间std,所以加入usingnamespacestd;以//引出的文字是程序的注释,不参与程序的编译和运行。也就是说有没有注释不影响程序的执行,但可以增强程序的可读性。思考:如果是z=x/5程序怎么改?变量z是否可以去掉?程序怎么改?顺序结构良好的代码风格有足够的注释。良好的注释,解释清楚此程序的功能和变量含义使用TAB缩进。整齐的缩进,让代码的逻辑关系分外明朗适当的空行,使程序的结构凸现有合适的空行恰当位置的空格,让可读性更上一层楼准确的变量命名,不需要注释,便可明辨每行最多只有一条语句变量的命名规则由字母、数字和下划线三种字符组成,且第一个字符必须为字母或下划线。M.D.,12%gf,1add,_ce36,Age&,5thclass,lotus-1-2-3,cd*ef,float大小写字母是两个不同的字符,C++变量名习惯用小写字母表示。C++程序的执行
编辑
源程序文件.CPP
编译
目标程序文件.OBJ库函数的文件和
链接其它目标程序文件
←───────────┘ 可执行程序文件.EXE
执行编写程序计算并输出两个整数的和。#include<iostream>usingnamespacestd;intmain(){ inta,b;
//定义两个整型变量
cout<<“请输入两个整数:“;
//双引号里是字符串 cin>>a>>b; cout<<"Sum="<<a+b<<endl; return0;}选择结构首先判别条件,若条件满足,程序执行a,否则,执行b;条件成立?执行a成立不成立执行b选择语句选择结构格式:if(如果这里的条件成立或者变量不为0){执行这里的代码}else{当条件不成立或变量为0时执行这里的代码}如果条件判断不成立,程序直接跳转到else后的花括号中,并执行里面的代码。游戏示例猜数游戏游戏开始后要求玩家猜一个1-100的数字,然后提示猜得过高或者过低,直到玩家猜出正确的数字为止。思考:游戏在哪里需要选择判断?选择结构编程举例输入a、b两个数,求其最大值并输出。#include<iostream>usingnamespacestd;intmain(){ inta,b; cin>>a>>b;
if(b>a) cout<<b; else cout<<a; return0;}选择结构求一个数的绝对值intmain(){intx;cout<<"Enteraninteger:";cin>>x;inty;y=x;
if(y<0)y=-y;cout<<"integer:“<<x<<“-->absolutevalue:“<<y);return0;}选择结构else子句可以省略运行:Enteraninteger:-12integer:-12--->absolutevalue:12如果用else,程序怎么改?运算符和表达式运算符就是一些符号,如+、-、*、/、<、>等,它们的功能是对数据进行特定的计算。通过运算符将各种数据连接起来的式子,称为表达式,表达式的值即为计算结果。出现在表达式中的数据称为操作数。例如:1+2
运算符操作数操作数运算符和表达式
根据运算符的不同,C++使用的基本表达式可以分为:
⑴赋值表达式,如:a=3⑵算术表达式,如:3+4*2,x/y⑶关系表达式,如:3>2⑷逻辑表达式,如:3>5&&a>=b
*⑸条件表达式,如:a>b?a:b
*⑹逗号表达式,如:a=3,b=4,c=5算术运算符和算术表达式+,-,*,/加、减、乘、除运算四则混合运算中,先算乘除,后算加减,
按从左向右的顺序计算%求余运算(操作数只能是整型数)例如:7%5=2,7.0%5.1(错误)关系运算符和关系表达式>,>=,<,<=,==,!=大于,大于等于,小于,小于等于,等于,不等于例如:7<=9,7==9关系表达式的结果为0和非00,表示假,即该关系不成立非0,表示真,即该关系成立例如:7<=9。成立!结果非0分析:a=3,问a>10的结果是什么?逻辑运算符和逻辑表达式逻辑运算符有:&&、||、!,表示并且、或者、相反的逻辑关系通常用关系表达式+逻辑运算符构成逻辑表达式。逻辑表达式的值为:成立非0,不成立0。&&与运算,表示“并且”的关系。(a>b&&b>c):表示a大于b,并且b大于c,如果成立,结果为非0(真),不成立结果为0(假)。不能写成a>b>c逻辑运算符和逻辑表达式||或运算,表示“或者”的关系。(a>b||b>c):表示
a大于b,或者b大于c,如果成立,结果为非0(真),不成立结果为0(假)。!求反,表示“相反”的关系。(!a):如果a是0,结果为非0;如果a是非0,结果是0。并不改变a的值运算规则记忆&&相当于乘,||相当于加。分析1&&0,1||1,2&&3,3||1,假设a=3,!a用于条件判断,当逻辑表达式的值为非0时,条件成立。例如:
ch是英文大写字母,就是使(ch>=‘A’)&&(ch<=‘Z’)的结果非0的ch值判断某一年year是否是闰年的条件是满足下列两个条件之一:能被4整除,但不能被100整除;能被400整除,就是使((year%4==0)&&(year%100!=0))||(year%400==0)
的结果非0的year值。逻辑运算符和逻辑表达式赋值运算符和赋值表达式赋值运算符:“=”,例如:i=2功能:将该运算符右侧表达式的值赋给左侧变量。赋值表达式的值是左操作数的值复合赋值运算符在赋值号之前加上其他运算符。+、-、*、/、%、<<、>>、&、^、|下面两个语句是等价的i=i+2;i+=2;上面所列其他运算符都可以按此种方式处理这种形式看起来更直观,而且执行效率一般也能更高输入输出运算符和输入输出表达式输入(提取)运算符:“>>”,例如:cin>>x;功能:将从输入设备输入的数据写入右侧变量。输出(插入)运算符:“<<”,例如:cout<<x;功能:将右侧数据输出到输出设备。游戏示例地牢逃生游戏选择结构游戏示例地牢逃生游戏游戏角色(player)从舞台的左下角出发,首先设法到左上角的房间中取得钥匙(key)。走廊中有一只恶龙在来回巡逻。如果游戏角色接触到它,蓝色的体力槽就会减少。如果体力槽降到0,则屏幕会显示“GameOver,YouLost”表示游戏失败。当游戏角色拿到钥匙后,游戏角色可带着钥匙到第一扇门那里,并打开它。如果你没有拿到钥匙,是无法通过这扇门的。打开门后游戏角色就可以到达地牢的右侧了。当门被打开时,会发出一个声音,钥匙也会一并消失。选择结构游戏示例地牢逃生游戏接下来游戏角色的任务是找到星型的武器,当游戏角色接触到武器时,就能自动捡起它。获得武器后,可以按空格键发射星星,如果可以打中恶龙5下,它就会被消灭掉,并从舞台上消失。当两只恶龙都被消灭后,舞台右上方的第二扇门就会被打开,游戏角色按照红色大箭头的方向逃出地牢。当游戏角色接触到箭头后,屏幕会显示“GameOver,YouWon!”,表示游戏胜利。思考:游戏中哪里用到了选择判断?选择结构游戏示例地牢逃生游戏捡钥匙if(游戏角色触碰到钥匙and
当前它没有钥匙)捡起钥匙;碰到第一个门if(游戏角色接触到关闭的门and
它有钥匙)门被打开;else阻止游戏角色前进;选择结构碰到第二个门if(两个恶龙都死了and
碰到第二个关闭的门)第二个门就会打开;else该门就挡住游戏角色;生命槽下降if(恶龙仍在舞台上and游戏角色接触到恶龙)游戏角色的生命槽就会下降;游戏失败if(游戏角色生命槽的宽度小于1)显示“Gameover,YouLost!”;选择结构游戏角色拿到武器if(游戏角色接触到武器){拾起武器;带着它移动;}打死恶龙if(武器接触到恶龙5下)恶龙被打死;游戏胜利if(游戏角色接触到出口)显示“GameOver,YouWon!”;选择结构以下程序的作用是什么?
intmain(){charc;
cout<<“Inputanenglishcharacter:”;cin>>c;
if(c>=’a’&&c<=’z’)c=c-32;elsec=c;cout<<c;return0;}//将小写字母转换为大写字母*/运行:Inputanenglishcharacter
:aA
Inputanenglishcharacter:BB练习一以下程序的执行结果是什么?
main(){intx=2,y=-1,z=2;
if(x<y)if(y<0)z=0;elsez+=1;cout<<z;
return0;}/*结果是2*/哦,原来是因为else总是与靠近它的if配套…
常见错误:if(x>0);if(x=2)if(1<=x<=10)y=3x+2;y=x;y=x-1;练习二体型判断。按“体指数”对肥胖程度进行划分:体指数t=体重w/(身高h)2
(w单位为公斤,h单位为米)当t<18时,为低体重;当t介于18和25之间时,为正常体重;当t介于25和27之间时,为超重体重;当t>=27时,为肥胖。编程从键盘输入你的身高h和体重w,根据给定公式计算体指数t,然后判断你的体重属于何种类型。用2种方法编程:算法1:用不带else子句的if语句编程算法2:用带else子句的if语句编程练习三练习四编程设计一个简单的猜数游戏:先由计算机“想”一个数请人猜,如果人猜对了,则计算机给出提示:”Right!”,否则提示:”Wrong!”,并告诉人所猜的数是大还是小。1.
先由计算机“想”一个数请人猜,如果人猜对了,结束,否则计算机给出提示,告诉人所猜的数是太大还是太小;2.
计算机记录人猜的次数,以此来反映猜数者“猜”的水平;3.
当人猜对或者同一个数猜了10次仍未猜中时停止本次猜数。//以下为产生随机数(“计算机想数”)#include<iostream>#include<time.h>#include<stdlib.h>usingnamespacestd;intmain(){ intrandInt,guessInt; srand(time(NULL)); randInt=rand()%100+1;
cout<<"pleaseinputanintegerbetween1and100:"; cin>>guessInt; if(guessInt>randInt) cout<<"It'stoohigt!"<<endl; else { if(guessInt<randInt) cout<<"It'stoolow!"<<endl; else cout<<"Yougotit!"; } return0;}上述代码只能让玩家猜一次,要猜10次,则本页代码要重复10遍。循环结构当条件成立时,反复执行循环体中的语句,直到条件不成立为止。条件成立?循环体语句块YN循环结构就是根据指定的条件重复执行一组代码。重复执行的代码称为循环体。循环语句循环结构格式:while(如果这里的条件或者变量为真){执行这里的代码(循环体)}如果条件判断为假,程序直接跳转到花括号外执行下面的语句。编程举例求1×2×3×4×5方法一:从程序中可以看出,红色部分的代码除了乘数不同外,几乎一模一样。那么能不能重复执行4次乘法运算,只是每次插入不同的乘数呢?循环结构#include<iostream>usingnamespacestd;intmain(){ intp=1;
p=p*2; p=p*3; p=p*4; p=p*5; cout<<"1*2*3*4*5="<<p<<endl; return0;}编程举例求1×2×3×4×5方法二:循环结构#include<iostream>usingnamespacestd;intmain(){ intp=1;inti=1; while(i<=5) {
p=p*i;
i++;//i=i+1 } cout<<p<<endl; return0;}思考:求1×3×5×7×9×11求n!求1+1/2+1/3+…+1/n增一和减一运算符n++,n--,++n,--n++让参与运算的变量加1,--让参与运算的变量减1作为后缀运算符时,表达式的值为变量加/减1之前的值作为前缀运算符时,表达式的值为变量加/减1之后的值例如:n=6;m=n++;
则m=6,n=7n=6;m=++n;
则m=7,n=7练习四编程设计一个简单的猜数游戏:先由
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年浙江省宁波市国际学校英语八下期中学业水平测试试题含答案
- 网络技术应用试题及答案
- 2025年物流行业绿色发展协议范本
- 2025年夫妻协议解除婚姻关系策划样本
- 2025年策划合作伙伴股权转让协议书样本
- 现代化设备与技术在人防工程中的应用
- 人防工程地下结构施工技术创新
- 资源配置效率提升促进经开区创新突破
- 精细化管理在油菜增产中的应用
- 理赔责任界定基础知识点归纳
- 初中八年级红色文化课方志敏精神教案
- (完整版)METS医护英语水平考试
- 车险查勘定损中级培训水淹车处理指引及定损培训
- GB/T 25695-2010建筑施工机械与设备旋挖钻机成孔施工通用规程
- 纳米酶研究进展
- 力平之独特的血脂管理课件
- (完整版)土方回填专项施工方案
- HPProLiantDL系列PC服务器维护手册
- 化工原理第十三章-萃取课件
- 美容院卫生管理制度(常用版)
- 冠心病介入诊疗对比剂应用专家共识
评论
0/150
提交评论