《2014C++cpp03章节》由会员分享,可在线阅读,更多相关《2014C++cpp03章节(25页珍藏版)》请在金锄头文库上搜索。
1、,课件制作:C/C+教材编写组 哈尔滨理工大学 计算中心 http:/, 基于计算思维,2,第 1 章 初识C/C+程序设计语言,第 5 章 循环结构程序设计,第 6 章 数组,第 7 章 字符串,第 8 章 指针,总复习,第 4 章 选择结构程序设计, 课程概述,第 9 章 函数,第11章 类与对象自定义数据类型,第12章 继承与多态自定义数据类型,第13章 C+输入/输出流类库,第14章异常处理,第15章图形界面编程简介,第 10章 自定义数据类型,第 2 章 数据类型、运算符与表达式,第 3 章 顺序结构程序设计,第 3 章 顺序结构程序设计,3,顺序结构程序设计,第 3 章, 熟悉顺序
2、结构的几种常用语句 了解CC+数据输入输出的概念 掌握CC+的输入输出语句和格式,4,3.1 案例剖析, 实例1:求解三角形的面积,问题的提出 输入三角形的三个边长,求三角形面积,保留四位小数。(要求输入的三条边能构成三角形) 假设三角形的三条边分别是a,b,c,求三角形面积的数学公式是: area= s(s-a)(s-b)(s-c) 其中:s=(a+b+c)/2,5,3.1 案例剖析,算法及程序设计分析 定义三角形三条边为a、b、c 为double型变量 ; 从键盘输入三角形三条边,其中:要求所输入的三条边能够构成三角形; 求三角形面积area; 输出计算结果; 用系统给定的操纵算子setp
3、recision()确定输出数据小数的位数;,6,3.1 案例剖析,C+源程序及说明 /ch03_1_1.cpp #include #include #include using namespace std; int main( ) double a, b, c; coutabc; double s, area; s=(a+b+c)/2; area=sqrt(s*(s-a)*(s-b)*(s-c); coutsetiosflags(ios:fixed)setprecision(4); cout“面积area=“areaendl; return 0; ,使用数学函数时要包含头文件cmath 使用
4、I/O流控制符要包含头文件iomanip,输入三角形的三条边,复合语句开始,在复合语句内定义变量,计算三角形面积,指定输出4位小数,复合语句结束,7,3.1 案例剖析,C源程序及说明 /ch03_1_2.cpp #include #include main() float a, b, c, s, area; scanf(“%f, %f, %f“, ,输入三角形的三条边,计算三角形面积,输出三条边和面积的值,8,3.2 顺序结构的基础, 顺序结构的几种常用语句,声明语句 所有标识符都要在使用前进行说明或定义 变量、常量、对象、类、类型、函数、参数等 程序中的说明语句包含创建和初始化 double
5、 double a=3, b=4, c=5; 表达式语句 对数据进行处理和操作的语句 由表达式加分号“;”组成。 s=(a+b+c)/2;,9,3.2 顺序结构的基础, 顺序结构的几种常用语句,函数调用语句 如 printf();语句实现对系统函数printf的调用。 复合语句和空语句 若干语句用一对花括号“”括起来组成一个复合语句 。 sum=sum+i; i+; 空语句,由一个分号“;”组成 ,不进行任何操作,常用于循环结构中。,10,3.3 数据的输入输出, 数据的输入/输出概念,C语言的输入和输出是由系统标准函数库提供的scanf和printf两个函数来完成的 在程序开头加上如下的编译
6、预处理命令: #include C+的输入/输出是通过C+编译系统的输入输出软件包I/O流类库中的流对象cin和cout来完成的。 C+程序中须在程序的开头使用预处理命令: #include 或者 #include using namespace std;,11,3.3 数据的输入输出, C+中流对象cout和cin,“”是预定义的提取符 作用在流对象cin上实现键盘上的输入 cin表达式表达式 .,“cout”与“cin”代表标准的输出与输入设备显示器和键盘。“”可以读成从键盘上输入数据到内存变量中。,12,3.3 数据的输入输出,输入/输出简单格式控制,C语言的输入输出格式控制 C语言的输
7、出格式: printf(“%格式符“,输出列表); 格式符的意义:,13,3.3 数据的输入输出,C语言的输入输出格式控制 例:C语言格式符的应用,#include void main() int x=5,y=6; float f=123.456f; char c=a; int d=97; printf(“print the value of x,y,f,c,d:n“); /原样输出非格式字符串 printf(“x=%d,y=%dn“,x,y); /按整数格式输出整型数 printf(“f=%fn“,f); /按单精度格式输出单精度数 printf(“%c,%dn“,c,c); /输出一个字符
8、和它的整型的ASCII值 printf(“%c,%dn“,d,d); /输出一个整型数所表示的字符和它的值 printf(“%sn“,“my program over!“); /输出字符串 ,14,3.3 数据的输入输出,C语言的输入输出格式控制 如果要对输出内容的域宽、精度、对齐方式等格式进行设定时,则需要在%和格式符之间插入修饰符。,例:C语言格式修饰符的应用 #include void main() char a; int b; float c; double d; printf(“input a,b,c,d:”); /输入提示信息 scanf(“%c%d%f%lf”, ,15,3.3
9、数据的输入输出,C语言的输入输出格式控制 C语言的输入格式: scanf(“%格式符“,地址表列); 格式符的意义:,修饰符的意义:,16,3.3 数据的输入输出,C语言的输入输出格式控制 例: C语言输入格式控制,#include void main() int a,b,c; scanf(“%d%d%d“, ,“&”是地址运算符,&a表示a在内存中的首地址; 如果在“格式控制”字符串中除了格式符之外还有其他字符(如逗号),则以该字符作为数据之间的分隔符; 输入数据时不能规定精度,否则会出现错误 。,17,3.3 数据的输入输出,C+的输入输出格式控制 cout 表达式1表达式2表达式n; I
10、/O流类库提供的常用的预定义操纵算子,输入/输出简单格式控制,18,3.3 数据的输入输出,C+语言的输入输出格式控制 例:格式输出实型数,保留两位小数,#include输入两个十进制数。 #include using namespace std; int main() double num1=10.679, num2=3.14159; / 定义双精度实型变量 cout setprecision(4) num1 endl; / 输出num1,4位有效数字 cout setprecision(4) num2 endl; / 输出num2,4位有效数字 cout setiosflags(ios:f
11、ixed); / 以定点格式显示浮点数 cout setw(6) setprecision(2) num1; / 输出num1,小数点保留2位 cout setw(6) setprecision(2) num2 endl; /数据域宽为6 return 0; ,输入/输出简单格式控制,19,3.3 数据的输入输出,C+的输入输出格式控制 例:输入两个十进制数,#include using namespace std; int main() int num1,num2; / 定义整型变量 cout num1 num2; cout “num1=“ num1 “tnum2=“ num2 endl;
12、/ 输出num1、num2 return0; ,注意:在连续输入多个数值型数据的时候,数据之间要用空格、Tab键或Enter键分隔。,输入/输出简单格式控制,20,3.3 数据的输入输出,C+的输入输出格式控制 例:输入两个字符,#include using namespace std; int main() char ch1,ch2; / 定义字符型变量 cout ch1 ch2; / 获取用户输入的两个字符 cout “ch1=“ ch1 “,ch2=“ ch2 endl; /输出字符 return 0; ,如果程序运行时用户输入a A,即两个字符之间用空格分开,屏幕上会输出什么结果?,输
13、入/输出简单格式控制,21,3.4 综合案例, 简单的学生成绩管理,问题的提出 学生的成绩管理中最简单的就是输入一个学生的若干科成绩,求该学生的总成绩和平均成绩(可以限制平均成绩小数点后保留的位数) 本案例的要求是:从键盘上输入该学生的英语成绩、数学成绩和计算机成绩,输出该学生的总成绩和平均成绩,并且平均成绩保留小数点后两位。,22,3.4 综合案例,算法及程序设计分析 定义存储各科成绩的变量:英语english、数学math、计算机computer为整型; 定义总成绩sum(整型)、平均分average (双精度型)变量 ; 从键盘上输入三科成绩到变量english、math、compute
14、r中 ; 计算总分、平均分。计算平均分时要注意数据类型的转换,使得平均分为双精度型,并按要求保留小数点位数 ; 输出计算结果 ;,23,3.4 综合案例,C+源程序及说明 #include #include using namespace std; int main() int english,math,computer,sum=0; /成绩及总成绩为整型 double average; /平均分双精度 coutenglish; coutmath; coutcomputer; sum=english+math+computer; /计算总成绩 average=sum/3.0; /得到双精度的平
15、均成绩 cout “总成绩:“sum“t“; /输出总成绩 cout setiosflags(ios:fixed)setprecision(2); /以定点格式输出 cout “平均成绩:“averageendl; return 0; ,24,3.4 综合案例,C源程序及说明 #include void main() int english,math,computer,sum=0; /成绩及总成绩为整型 double average; /平均分双精度 printf(“英语成绩:“); /提示输入成绩 scanf(“%d“, /输出总成绩和平均成绩 ,25,3.4 综合案例, 本章小结,C语言的表达式的写法与数学中表达式的写法不同 printf()/scanf()函数中格式符用来指定各种输出