1 第二讲 C++ 编程基础. 2 主要内容 C++ 语言概述 C++ 编程基础 数据的简单输入输出 C++ 的发展 C++ 源程序结构与书写规范 C++ 编译器和集成开发环境.

Slides:



Advertisements
Similar presentations
1 第 3 章 C++ 中的条件与循环 第 3 次见面! acm.nefu.edu.cn/C++_03.ppt.
Advertisements

C语言程序设计 主讲教师 :张群燕 电话:
第 2 章 初探 C++.
第一章 C语言概述 计算机公共教学部.
第九讲 类与对象 (I)面向对象基础.
第4章 数组 数组是由一定数目的同类元素顺序排列而成的结构类型数据 一个数组在内存占有一片连续的存储区域 数组名是存储空间的首地址
趙靖宇時間-專治你的Monday blue
C++程序设计 王希 图书馆三楼办公室.
資料大樓 --談指標與陣列 綠園.
.NET 程式設計入門(使用 C#) 講師:鄧智鴻.
函數(一) 自訂函數、遞迴函數 綠園.
C++程序设计 第二讲 清华大学软件学院.
结构体和共用体 2 梁春燕 华电信息管理教研室.
C++语言程序设计 C++语言程序设计 第六章 指针和引用 第十一组 C++语言程序设计.
第一章 程序的基本结构. 第一章 程序的基本结构 教材及授课结构 本章目标 基本内容 扩展阅读 上机指导 应用举例 习题.
授课老师:龚涛 信息科学与技术学院 2018年3月 教材: 《Visual C++程序员成长攻略》 《C++ Builder程序员成长攻略》
Object-Oriented Programming in C++ 第一章 C++的初步知识
第12章 從C到C++語言 12-1 C++語言的基礎 12-2 C++語言的輸出與輸入 12-3 C++語言的動態記憶體配置
第 6 章 函式.
2 C++ 的基本語法和使用環境 親自撰寫和執行程式是學好程式語言的不二法門。本章藉由兩個簡單的程式,介紹C++ 程式的基本結構和開發環境,讓初學者能逐漸建立使用C++ 的信心。
第一章 C++编程简介 丘志杰 电子科技大学 计算机学院 软件学院.
第3讲 C++程序控制结构 3.1 顺序结构 3.2 分支结构 3.3 循环结构 3.4 转向控制 3.5 综合案例分析.
C++语言程序设计 第二章 C++简单程序设计.
明解C++教學手冊 柴田望洋 博士 著 書號:PG20269
3 數學運算 3.1 鍵盤輸入 輸入函數cin 多重輸入cin 輸出格式化 3-3
第三节 整数类型.
切換Dev c++顯示語言 工具->環境選項(V)->介面->language (Chinese TW)
2.1 C语言的数据类型 2.2 常量与变量 2.3 变量赋初值 2.4 各类数值型数据间的混合运算 2.5 C语言的运算符和表达式
第1章 概述 本章要点: C语言程序结构和特点 C语言程序的基本符号与关键字 C语言程序的编辑及运行 学习方法建议:
序及第0章.
C++ 程式設計 基礎篇 張啟中 Chang Chi-Chung.
C++大学基础教程 第3章 C++控制语句 北京科技大学 信息基础科学系.
C语言程序设计.
第十章 用户自定义数据类型 目录 学生信息管理系统的开发 结构体数据类型的概述 结构体变量的使用 结构体数组
Name1..hour //加班時數 name2..hour //請假時數
第二章 基本数据类型及运算 C数据类型概述 基本数据类型 运算符和表达式 混合运算与类型转换 数据的输入输出 顺序程序设计举例.
第1讲 C语言基础 要求: (1) C程序的组成 (2) C语言的标识符是如何定义的。 (3) C语言有哪些基本数据类型?各种基本数
C++语言程序设计 C++语言程序设计 第五章 函数 第十一组 C++语言程序设计.
第2章 数据类型及表达式 本章导读 本章主要知识点 《 C语言程序设计》 (Visual C++ 6.0环境)
2011 邀请中国姐妹学校韩国语研修团项目 申请时间: ~5月 27日 / 项目地点: 汉阳大学 安山校区 / 项目时间: (星期日) ~ 7.22(星期五) 费用: 100万元(韩币/人 (包含项目 - 学费, 教材费, 宿舍费, 接机费用及所有文化体验活动项目费用)
第 二 章 数据类型、运算符与表达式.
C++语言程序设计 C++语言程序设计 第三章 控制语句 第十一组 C++语言程序设计.
物件導向程式設計 CH2.
第11章 從C到C++語言 11-1 C++語言的基礎 11-2 C++語言的資料型態與運算子 11-3 C++語言的輸出與輸入
C++语言程序设计 C++语言程序设计 第二章 基本数据类型与表达式 第十一组 C++语言程序设计.
C语言程序设计 李祥 QQ:
C++语言程序设计教程 第2章 数据类型与表达式 第2章 数据类型与表达式 制作人:杨进才 沈显君.
<编程达人入门课程> 本节内容 为什么要使用变量? 视频提供:昆山爱达人信息技术有限公司 官网地址: 联系QQ:
C++程式設計入門 變數與運算子 作者:黃建庭.
第2章 数据类型、运算符与表达式 2.1 程序设计概述
第3章 数据类型、运算符与表达式.
第2章 数据类型、运算符与表达式 本章要点: 基本数据类型 常量和变量 算术运算符和算术表达式 关系运算符和关系表达式
第2章 基本数据及其运算 本章学习的目标: 1、掌握基本数据的各种表示,基本数据常数的书写方法;
第二章 类型、对象、运算符和表达式.
第2章 数据类型与表达式 学习目的与要求: 掌握C 语言的基本数据类型及使用方法 掌握C程序中常用的运算符和表达式 了解数据类型的转换.
第二章 基本数据类型 ——数据的表示.
第二讲 基本数据类 型及数组等 此为封面页,需列出课程编码、课程名称和课程开发室名称。
#include <iostream.h>
第3章 最简单的C程序设计 3.1 顺序程序设计举例 3.2 数据的表现形式及其运算 3.3 C语句 3.4 数据的输入输出.
C++语言程序设计 C++语言程序设计 第二章 基本数据类型与表达式 第十一组 C++语言程序设计.
1.4WIN32中的宽字符.
本章主題 C++的程式結構 資料型態與宣告 算術運算 簡易的輸入輸出指令 程式編譯(Compile)的過程與原理.
《数据结构与算法设计》第一部分 面向对象的C++程序设计基础.
C++程序设计 概述 潘荣江 山东大学软件学院.
第二章 数据类型、运算符和表达式 §2.1 数据与数据类型 §2.2 常量、变量和标准函数 §2.3 基本运算符及其表达式 目 录 上一章
C/C++基礎程式設計班 C語言入門、變數、基本處理與輸入輸出 講師:林業峻 CSIE, NTU 3/7, 2015.
基本資料型態 變數與常數 運算子 基本的資料處理 授課:ANT 日期:2014/03/03.
變數與資料型態  綠園.
第六章 复合数据类型 指针的声明与使用 数组的声明与使用 指针与数组的相互引用 字符串及相关库函数 new与delete
C++语言程序设计 C++语言程序设计 第二章 基本数据类型与表达式 第十一组 C++语言程序设计.
Presentation transcript:

1 第二讲 C++ 编程基础

2 主要内容 C++ 语言概述 C++ 编程基础 数据的简单输入输出 C++ 的发展 C++ 源程序结构与书写规范 C++ 编译器和集成开发环境

3 C++ 语言概述 C++ 的发展 - C++ 是从 C 语言发展演变而来,可以看成是 C 的超集 年由 Bjarne Stroustrup 开发创建 年正式取名为 C++ , 1989 年开始 C++ 的标准化工作 年制定了 ANSI C++ 标准草案 年由 ISO 批准为国际标准,通称 C 目前的 C++ 最新标准是 C++14 ( 2014 年 8 月通过) ANSI - American National Standards Institute / 美国国家标准协会 ISO - International Organization for Standardization / 国际标准化组织

4 C++ 语言概述 关于 C 和 C++ 的更多介绍见课程主页的相关链接

5 一个简单的 C++ 程序 #include using namespace std; int main() { cout << "Hello!" << endl; cout << "Welcome to C++! " << endl; return 0; } 注:所有标点符号必须在英文状态下输入

6 C++ 程序结构 C++ 源程序结构 一个 C++ 源程序由一个或多个源文件组成 每个源文件可由一个或多个函数组成 一个源程序有且只能有一个 main 函数,即主函数 程序执行从 main 开始,在 main 中结束 源程序中可以有预处理命令,通常应放在源文件或 源程序的最前面 一行可以写多个语句,一个语句可以分几行书写

7 C++ 程序书写规范 每个说明和每个语句都必须以分号 “ ; ” 结尾, 但预处理命令,函数头和花括号 “ } ” 之后不能加分号 标识符,关键字之间必须至少加一个空格表示间隔, 若已有明显的间隔符,也可不再加空格来间隔 习惯用小写字母,区分大小写 注释: // 和 /* */ 为注释符 常用锯齿形书写格式 所有标点符号必须在英文状态下输入 源程序书写规范 书写漂亮的程序:  { } 要对齐  一行写一个语句  一个语句写一行  使用 TAB 缩进  有足够的注释  有合适的空行

8 程序分析 #include // 预处理指令,载入头文件 using namespace std; // 使用标准的命名空间 int main() { cout << "Hello!" << endl; cout << "Welcome to C++! " << endl; return 0; } cout :标准输出,通常指屏幕 主函数 endl :换行并刷新流 << :插入

9 C++ 编译器 编译器就是将 “ 高级语言 ” 翻译为 “ 机器语言 ” 的程序 编译器 常见的 C++ 编译器 源代码目标代码可执行程序 编译链接 一个现代编译器的主要工作流程: Visual C++ Windows 平台上最流行的编译器,集成在 Visual Studio 中 GNU C++ 开源免费, Linux/Unix 平台上的首选,非常优秀的编译器 Intel C++ Intel 的编译器,对自家硬件的支持很好, Win/Linux 都有相应版本

10 IDE Integrated Development Environment IDE ( 集成开发环境 ) 常见的 C++ 集成开发环境 用于程序开发的应用程序 / 软件,一般包括代码编辑器、 编译器、调试器和图形用户界面工具等 - Visual Studio : Windows 平台上最流行的商业 C++ 集成开发环境 - Dev C++ : 小巧,免费, win 下的 gcc ,非常适合学习 C++ - Code::Blocks : 开放源码的全功能跨平台集成开发环境,免费

11 主要内容 C++ 语言概述 C++ 编程基础 数据的简单输入输出 C++ 字符集:标识符,关键字 C++ 数据类型与类型转换 变量、常量、符号常量 枚举数据类型 运算符、运算优先级 语句与表达式

12 字符集 字母(大写和小写,共 52 个) 数字( 0 到 9 共 10 个) 空白符(空格符、制表符、换行符) 标点和特殊字符 C++ 字符集 注:这里的标点符号都是指在英文状态下的标点 !#%^&*() [] {} _ +=-~<> /\'";.,

13 词法记号 / 词汇 标识符: 用来标识变量名、函数名、对象名等的字符序列 - 由字母、数字、下划线组成,第一个字符必须是字母或下划线 - 区分大小写,不能用关键字 - C++ 不限制标识符长度,实际长度与编译器有关,通常不要超过 32 个 - 命名原则:见名知意、不宜混淆 运算符(详见后面介绍) 分隔符: 逗号、冒号、分号、空格、 ( ) 、{} 注释符:以 “ /* ” 开头并以 “ */ ” 结尾;或 “ // ” 开头 文字:直接用字符表示的数据,即常量,如数字、字符串等 关键字: 具有特定意义的字符串,通常也称为保留字 - 类型说明符、语句定义符(控制命令)、预处理命令等

14 C++ 数据类型 整型 实型 字符型 (char) 整型 (int) 短整型 (short) 长整型 (long) 单精度 (float) 双精度 (double) 基本类型 C++ 数 据 类 型 布尔型 (bool) 无符号 (unsigned) 有符号 自定义数据类型 或扩展数据类型 或派生数据类型 或导出数据类型 数组型 枚举型 指针型 … 类

15 基本数据类型 类型关键字所占字节数表示范围 整型 short ~ int2 / ~ / ~ long4 / ~ / ~ unsigned int2 0 ~ unsigned short2 0 ~ unsigned long4 0 ~ 实型 float 4 (6-7) ~ double 8 (15-16) ~ long double 16 (18-19) ~ 布尔型 bool1 true, false 字符型 char1 C++ 标准没有规定每种数据类型的字节数和表示范围,只 规定大小顺序,具体长度由处理器和编译器决定。 ex02_sizeof.cpp

16 数据类型的转换 自动转换 / 隐式转换 不同类型的数据进行运算,需先转换成同一类型 转换按数据长度增加的方向进行,以保证精度不降低 所有的浮点运算都是以双精度进行的 char 型和 short 型参与运算时,必须先转换成 int 型 赋值号两边的数据类型不同时,右边的类型将转换为左边的 char  short  int  unsigned  long  unsigned long  float  double 例: int i=2; double x=3.2, y; y=i+x; ex02_datetype_01.cpp

17 数据类型的转换 强制转换 / 显示转换 类型说明符 ( 表达式 ) // C++ 风格 ( 类型说明符 ) 表达式 // C 风格 将表达式的 值 转换成指定的数据类型 int i=2, a=3; double y, z; y=double(i)/a; // y=static_cast (i)/a z=double(i/a); 类型转换不会改变变量的数据类型! 例:

18 数据类型的转换 转换规则 浮点型转整型:直接丢掉小数部分 字符型转整型:取字符的 ASCII 码 整型转字符型: ASCII 对应的字符 int i; char a; i=3.6; cout << "i=" << i << endl; i=-3.6; cout << "i=" << i << endl; i='m'; cout << "i=" << i << endl; a=90; cout << "a=" << a << endl; 例:

19 变量 变量名:要求与标识符相同 变量类型:整型、实型、字符型、布尔型 变量必须先声明,后使用 用于存储数据,值可以改变 变量的声明 数据类型 变量名列表 ; int i, j, k=0; double a, b=3.1415, x(3); char c; 变量的初始化:有两种方式 例:

20 常量(常数) 整型常量:整数,后面加 l 或 L 表示长整型, 后面加 u 或 U 表示无符号整型 实型常量:缺省为双精度实数, 后面加 f 或 F 表示单精度,加 l 或 L 表示 long double 字符型常量:用单引号括起来的单个字符和转义字符 字符串常量:用双引号括起来的字符序列 布尔常量: true 和 false 在程序运行中值不能改变的量 例: 123, -456, 123L, 456U; 1.2, 1.2F, 1.2L, 1.2e8, 1.2e8F, 1.2e-8L 'M', 'A', 'T', 'H', '?', '$'

21 符号常量 符号常量:用标识符代表常量 const 数据类型 标识符 = 常量值 ; 例: const float PI= ; 符号常量在声明时必须初始化 符号常量的值在程序中不能被修改(不能重新赋值)

22 typedef typedef :为一个已有的数据类型另外命名(取别名) typedef 已有类型名 新类型名表 ; 例: typedef double area, volume; typedef int natural; natural i, j; area s; volume v; 可以同时取多个别名

23 枚举类型 enum enum :枚举,定义新的数据类型 enum 枚举类型名 { 变量可取值列表,即枚举元素 }; 例: enum weekday {sun, mon, tue, wed, thu, fri, sat}; 将变量所能取的值一一列举出来 几点说明: 对枚举元素按常量处理,不能对它们赋值 枚举元素具有默认值,依次为: 0,1,2,... 也可以在声明时指定枚举元素的值,如: enum weekday {sun=7,mon=1,tue,wed,thu,fri,sat}; 枚举值可以进行关系运算 整数值不能直接赋给枚举变量,需进行强制类型转换

24 运算符 算术运算符: + 、 - 、 * 、 / 、 % 、 ++ ( 自增 ) 、 -- ( 自减 ) 赋值运算符: = 、 += 、 -= 、 *= 、 /= 、 %= 、 &= 、 |= 、 ^= 、 >>= 、 <<= 逗号运算符:, ( 把若干表达式组合成一个表达式 ) 求字节数运算符: sizeof ( 计算数据类型所占的字节数 ) 关系运算符:用于比较运算, > 、 = 、 <= 、 != 逻辑运算符:用于逻辑运算, && 、 || 、 ! 条件运算符:是一个三目运算符,用于条件求值 ( ? : ) 指针运算符: * ( 取内容 ) 、 & ( 取地址 ) 位操作运算符:按二进制位进行运算 & 、 | 、 ^ ( 异或 ) 、 ~ ( 取反 ) 、 > ( 右移 )

25 赋值运算 标准赋值语句: int i=10, j, k; j = i++; k = ++i; ex02_datatype_02.cpp 自增自减(前置和后置) ++ 、 -- 变量 = 表达式 x++;x = x+1; ++x;x = x+1; x = 3; x = y = 3; y = 3; x = y; y=x++*x;y=x*x; x=x+1; y=++x*x; x=x+1; y=x*x; 例: 前置:先自增自减,然后使用 后置:先使用,然后自增自减 不要在同一语句中包含一个变量的多个 ++ 或 -- ,因为它们的解释在 C/C++ 标准中没 有规定,完全取决于编译器的个人行为 注:这种方式不能用于变量初始化!

26 赋值与逗号运算 int a, b, c, d, e; a = 5; b = a + 3; a = a + (c=6); d = e = f = a; e *= d; f /= c - 2; ex02_datatype_03.cpp 其他常见赋值运算符 += 、 -= 、 *= 、 /= 、 %= x += 3;x = x+3; x /= 3;x = x/3; 逗号运算符: int a=2, b; a = 3*5, a+10; b = (3*5, a+10); ex02_datatype_04.cpp - 先计算 表达式 1 的值,再计算 表达式 2 的值, 并将 表达式 2 的值作为整个表达式的结果 表达式 1 ,表达式 2 注意运算的优先级! 例:

27 赋值与逗号运算 其运算符的使用方法见后面的讲义 位操作运算符:按二进制位进行运算 & 、 | 、 ^ ( 异或 ) 、 ~ ( 取反 ) 、 > ( 右移 ) short a=5, b=14; short c1,c2,c3,c4,c5,c6; c1 = a & b; c2 = a | b; C3 = ~ a; C4 = a ^ b; C5 = a << 3; C6 = a >> 2; 例: a : b : ex02_datatype_05.cpp / 补码 a&b a | b ~ a a ^ b a<<3 a>>2 : : : : : :

28 运算优先级 () ++ ( 后置 ) --( 后置 ) 强制类型转换 ! ++ ( 前置 ) ––( 前置 ) + ( 正号 ) – ( 负号 ) * / % + – >= == != && || 赋值 ( = += –= *= /= 等 ) 逗号运算 (, ) 高 低 详见课程主页或教材 常见运算符的优先级

29 常用数学函数 abs(x) | x | exp(x) e x log(x) ln x log10(x) lg x sqrt(x) pow(x,y) x y 需加入 cmath 头文件 : #include 取整函数: ceil, floor, round, trunc 三角函数: sin, cos, tan, asin, acos, atan 双曲三角函数: sinh,cosh,tanh,asinh,acosh,atanh

30 空语句(只有分号) 声明语句 表达式语句(赋值表达式) 复合语句(将多个语句用 { } 括起来组成的一个语句) 选择语句 循环语句 跳转语句 语句 程序由语句构成, C++ 的语句包括:

31 表达式语句 表达式与表达式语句 表达式:运算符连接常量、变量、函数所组成的式子 表达式语句:表达式; a+b*ca+b*c; 表达式可以包含在其它表达式中,但表达式语句不行! a+(b=3;)*c X 表达式中的运算符含赋值运算符 a+(b=3)*c 赋值表达式的值是赋值号左边变量的值

32 sizeof 求字节数运算符: int a, b, c; a = sizeof(int); b = sizeof(3 + 5); c = sizeof(3.0L + 5); ex02_datatype_06.cpp sizeof( 数据类型 ) sizeof( 表达式 ) 返回数据类型对应的变量所占的字节数 返回表达式结果的数据类型对应的变量所占的字节数 例:

33 主要内容 C++ 语言概述 C++ 编程基础 数据的简单输入输出

34 简单的输入输出 输出到标准输出设备(显示器): cout x = ; cout << "x=" << x << endl; 几个常用转义字符() \a 响铃 \r 回车 \\ 反斜杠 \b 退后一格 \t 水平制表符 \' 单引号 \n 换行 \v 垂直制表符 \" 双引号 cout << "The double quotation mark is \" \n"; x = ; y = ; cout << "x=" << x << "\t y=" << y << "\n"; ex02_IO_01.cpp 例:

35 简单的输入输出 从标准输入设备(键盘)中输入: cin cin >> x ; ex02_IO_02.cpp 例: 在输入语句前通常需要输出一些提示信息 cout << "Please input x: "; cin >> x ; 例:

36 操纵符 含义 endl 插入换行符,并刷新流 setw(n) 设置域宽 setfill( 字符 ) 设置填充 fixed 使用定点方式输出 scientific 使用指数形式 setprecision(n) 设置输出的有效数字个数;若在 fixed 或 scientific 后使用,则设置小数位数 left 左对齐 right 右对齐(缺省方式) 需加入头文件 iomanip

37 操纵符 double x= , y= ; cout << setprecision(5); cout << "x=" << x << endl; cout << "y=" << y << endl; cout << fixed; cout << setprecision(5); cout << "x=" << x << endl; cout << "y=" << y << endl; cout <<left; cout << "x=" << setw(20) << x << "MATH" <<endl; cout << setw(20) << "x=" << x << "MATH" <<endl; ex02_IO_03.cpp 例: setw : 只对紧随其后的输出起作用 其它操纵符 : 直至下一个同类型命令为止 操纵符的作用范围: 详细使用方法见第七讲

38 举例:贷款问题 例:银行贷款问题 已知贷款总额,贷款年利率和贷款年限,计算每月需偿还 的金额和偿还总额 每月还款计算公式: 等额本息贷款计算公式 等额本金贷款计算公式 L :贷款总额 r m :月利率 y :还贷年限 R :已还款的本金总额

39 举例:贷款问题 // 等额本息 #include #include // 数学函数 using namespace std; int main() { double Loan, rate_year, rate_month, year; double payment_month, payment_total; cout << "input loan amount: " ; cin >> Loan; cout << "input yearly interest rate: "; cin >> rate_year; rate_month = rate_year/1200; cout << "input number of years: "; cin >> year; // 见下页

40 举例:贷款问题 // 接上页 // 计算每月需还款金额 double vtmp = pow(1+rate_month,12*year); payment_month=Load*rate_month*vtmp/(vtmp-1); payment_total=payment_month*year*12; cout << "Monthly payment: " << payment_month << ", "; cout << "Total payment: " << payment_total; return 0; } ex02_loan.cpp

41 举例:显示时间 例:显示系统当前时间 头文件 ctime 中函数 time(0) 或 time(NULL) 返回当前时间与 1970 年 1 月 1 日零时的时间差(格林威治时间,以秒为单位) 北京时间:格林威治时间 + 8 小时

42 举例:显示时间 // 显示当前时间(时 : 分 : 秒) #include using namespace std; int main() { long Second, Minute, Hour; Second = time(NULL); Minute = Second / 60; Hour = Minute / 60; cout << " 当前北京时间是 "; cout << (Hour+8) % 24 << ":" << Minute % 60 << ":" << Second % 60 << endl ; return 0; } ex02_showtime.cpp

43 课后练习 课后练习(自己练习) 教材第二章: p p p , 2.14, 2.15, 2.16, 2.17 p , 2.24 p , 2.26, 2.27, 2.29

44 上机作业 3 、(思考题,选做) 修改程序 ex02_showtime.cpp ,使得输出的时、分、秒都占两个位置, 如: 14 点 25 分 10 秒显示为 14:25:10 , 9 点 8 分 5 秒显示为 09:08:05 2 、银行提供两种 5 年定期存款方式: 一年期方式:年利率 10%, 每年到期后, 自动将本年度的 利息加入本金中 ; 五年期方式:年利率 11%, 五年后本金和利息一起归还储户。 编写程序,分别以两种方式存入 100 万元,输出五年后各得多少? (程序取名 hw02_02.cpp ) 1 、编写程序,从键盘读入圆柱体的半径和高度,用下面的公式计算其面 积和体积:(程序取名 hw02_01.cpp ) area = radius  radius   volume = area  hight (程序取名 hw02_03.cpp )