C++程序设计 王希 bnuep06@163.com 图书馆三楼办公室
为什么学习这门课? 进一步理解如何从计算机的角度思考问题 学习面向对象的设计思想 培养学习能力
课程目标 了解C++程序设计语言的重要概念 能够读懂C++的典型代码 能够独立编写简单的C++程序 了解面向对象程序设计 具备一定分析问题、解决问题的能力与自学能力
课堂要求 按时到课,注意课堂纪律与气氛 听课时认真做笔记并及时总结知识点 在讲课期间未经允许不得使用计算机 按照要求独立完成程序练习 课下注意复习与练习 不懂的地方及时提出,不要让问题越积越多
总评组成 期末闭卷考试50% 平时50% 20%上机考试 20%课堂表现 10%大作业
对大家的期望 积极主动地完成课堂布置的任务 多钻研问题,多探讨问题 老师需要做的 学生需要做的 提出学生力所能及的任务要求 学生需要做的 相信自己,独立完成老师的要求 在机房上课是一种新的尝试,希望我们能够通过本学期的学习,共同进步
其他 教材与参考书 嵌入式C++程序设计的特点 教学进度
编程与问题求解 学会了英文语法是否一定能写出优美的英文文章?
编程与问题求解 难点:解决问题的方案——算法 求解步骤 算法必须符合的条件 确定任务以及输入输出 设计算法并检查 编码实现 测试
什么是C++? 贝尔实验室Bjarne Stroustrup开发的一种语言 带类的C?
我们要学VC++还是C++??? VC++是微软公司提供的集成开发环境 本课程以学习标准C++为主
第一个C++程序 Hello World 程序框架 字符串输出 如何让一个程序运行
基本框架 int main() { return 0; }
输出 根据数据移动的方向记忆箭头方向,双箭头中间没有空格 可以多组混合使用 算式要用括号括起来 换行
使用标准库 #include<iostream> using namespace std; 究竟有没有.h? <>与””的区别 using namespace std;
如何让一个程序运行 编译 链接 定址
复杂一点的问题 N人分M梨,每人分几个? 错误 编译错误 运行时错误 逻辑错误
变量 变量 用于记录数据的小黑板 变量的值可以改变 小黑板可以擦写 变量总是有值 前一个小黑板的使用者遗留下来的内容
变量的命名规则 由字母与数字组成 第一个字符必须是字母 下划线被认为是字母 大小写敏感 不能使用关键字 注意不要使用容易出错的名字 尽量使用有意义的名字
以下划线开始的变量 尽量留给编译器使用 __LINE__ __FILE__ __TIME__ __DATE__
变量的使用 声明 初始化 在声明时进行 等号法和括号法 赋值修改 使用其内容
数据类型 在声明变量时,需要说明数据类型,以便使编译器确定分配多大空间,如何解读该片空间 以分配的第一个字节作为地址 同样的数据类型在不同的机器上分配的大小有可能不同 用sizeof确定大小 <limits> numeric_limits<int>::max()
数据类型 整型int 双精度double 字符型char 布尔型 通常是一个字长,目前常见为32位 long不比int短,VC提供int64,gcc提供long long 双精度double 尽量避免使用float 更大的long double 科学计数法 字符型char 通常为一个字节,使用单引号 布尔型 新增类型
类型转换 尽量避免进行类型转换 显示转换与隐式转换 C++中使用的转换方法 好处? static_cast<类型名>(变量名) const_cast dynamic_cast reinterpret_cast 好处?
类型转换——处处陷阱 其他类型转bool bool转整数 小数转整数是否四舍五入? char无符号还是有符号? 数据丢失 尽量避免转换 非0则为true 0为false bool转整数 true为1 false为0 小数转整数是否四舍五入? char无符号还是有符号? 数据丢失 尽量避免转换
输入 输入与输出——不再需要%s,%d,& cin>>输入 回车才能使内容被输入 注意分隔输入内容 输入字符与输入整型
算术运算符 +, -, *, /, % /的陷阱
练习 从键盘输入钱数,单位为分 将钱数翻倍,从屏幕输出,单位为元 常量 整型与浮点型的区别
常量 int与long的区分 float与double的区分 有符号与无符号的区分 十进制与八、十六进制的区分 转义字符 枚举类型
const 一定要初始化,不能再进行修改 与#define相比?
关系运算符与逻辑运算符 >,>,>=,<=,==,!= &&,||,! 短路表达式
练习 从键盘输入一个整数x 从键盘输入三个整数x,y,z 从键盘输入一个浮点数f 如果0<=x<=9,在屏幕输出”digit” 如果x不小于100,在屏幕输出”too big” 从键盘输入三个整数x,y,z 如果三个数相等,在屏幕输出”equal” 从键盘输入一个浮点数f 如果f等于0,在屏幕输出”zero”
练习 6>5>4 1<5>3 2==2==2 2==2==1 7==(6||7||8)
其他运算符 简单赋值运算符与复合赋值运算符 三目运算符 逗号运算符 运算符的优先级与结合性 使用括号 操作数的计算次序不确定
位操作 <<, >> &,|,^,~ 注意符号位的处理
练习 打印2的幂次表 输出指定位 将指定位设1,设0,翻转 思考 十进制数转二进制数 实现循环移位