《第三讲 C++简单程序设计.ppt》由会员分享,可在线阅读,更多相关《第三讲 C++简单程序设计.ppt(55页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、C+简单程序设计简单程序设计北京理工大学计算机系北京理工大学计算机系 金旭亮金旭亮第三讲1/15/20231/15/20231 1北京理工大学计算机系北京理工大学计算机系本讲主要内容本讲主要内容n n标准C+程序示例n n注释n n数据类型n n常量n n变量n n运算符与表达式n n语句n nC+程序开发工具的使用1/15/20231/15/20232 2北京理工大学计算机系北京理工大学计算机系一个简单的一个简单的C+程序程序n n#include n nvoid main(void)n nn n coutHello!n;n n coutWelcome to c+!n;n n1/15/202
2、31/15/20233 3北京理工大学计算机系北京理工大学计算机系用用VC打开打开C+程序程序n nFileOpen1/15/20231/15/20234 4北京理工大学计算机系北京理工大学计算机系编译、调试和运行编译、调试和运行(VC)n n单击工具栏上的图标单击工具栏上的图标n n查看编译信息查看编译信息1/15/20231/15/20235 5北京理工大学计算机系北京理工大学计算机系编译、调试和运行编译、调试和运行(VC)n n运行:单击工具栏上的图标运行:单击工具栏上的图标1/15/20231/15/20236 6北京理工大学计算机系北京理工大学计算机系VC开发控制台程序开发控制台程序
3、n nFile/NewFile/New1/15/20231/15/20237 7北京理工大学计算机系北京理工大学计算机系VC开发控制台程序开发控制台程序1/15/20231/15/20238 8北京理工大学计算机系北京理工大学计算机系VC开发控制台程序开发控制台程序1/15/20231/15/20239 9北京理工大学计算机系北京理工大学计算机系VC开发控制台程序开发控制台程序n n创建新文件创建新文件1/15/20231/15/20231010北京理工大学计算机系北京理工大学计算机系C+示例分析(课本例题2-1)n n1#include n n2 void main(void)n n3 n
4、n4 coutHello!n;n n5 coutWelcome to c+!n;n n6 1/15/20231/15/20231111北京理工大学计算机系北京理工大学计算机系C+示例分析n nC+源文件分为头文件与CPP文件两大类n nMain是程序执行入口点n niostream.h 引入了C+标准库中的例程,使cout可用。Cout是一个C+类试一试:试一试:去掉第一句,再编译结果如何?学会去掉第一句,再编译结果如何?学会调试调试C+C+程序。程序。1/15/20231/15/20231212北京理工大学计算机系北京理工大学计算机系预处理器指示符预处理器指示符n n“”与的区别“”-表明该
5、文件是用户提供的头文件,查找该文件时将从当前文件目录开始-表明这个文件是一个工程或标准头文件,查找过程会检查预定义的目录1/15/20231/15/20231313北京理工大学计算机系北京理工大学计算机系防止多重包含防止多重包含 n n#ifndef BOOKSTORE_Hn n#define BOOKSTORE_Hn n/*bookstore.h的内容*/n n#end if1/15/20231/15/20231414北京理工大学计算机系北京理工大学计算机系cout与与cinn n标准输入:标准输入:cincinn n标准输出:标准输出:coutcoutn n必须包含头文件:必须包含头文件:
6、iostreamiostreamn n从标准输入中读入一个值:从标准输入中读入一个值:intint i;i;cincini;i;1/15/20231/15/20231515北京理工大学计算机系北京理工大学计算机系自我实践自我实践n ncout有许多预定义输出格式的定义符,输出回车endl是一个例子,还有定义输出小数位数等格式定义符,请自行参阅相关C+书籍,MSDN或BCB的帮助手册,自学这部分内容。1/15/20231/15/20231616北京理工大学计算机系北京理工大学计算机系C+程序的组成部分n n注释/-单行注释/*/-多行注释 /注意:因为整数相除结果取整,如果参数写1/5,1/23
7、9,结果就都是0n n空白行空白行n n使程序更可读使程序更可读n n空行,空格和空行,空格和tabtab被称为被称为“空白符(空白符(white-space white-space characterscharacters)”,会被编译器所忽略,会被编译器所忽略1/15/20231/15/20231717北京理工大学计算机系北京理工大学计算机系标准注释格式标准注释格式/*this is multiline note.*这是多行注释的标准格式*/在编程时多加注释,正常情况下注释量不应少于总代码量的5nJava与C,“/”,可以使用XML自动生成程序文档1/15/20231/15/2023181
8、8北京理工大学计算机系北京理工大学计算机系C+数据类型数据类型n nC+数据类型与C基本一样,请同学自行学习课本相关内容,我们只讲述其中值得注意的地方。1/15/20231/15/20231919北京理工大学计算机系北京理工大学计算机系常量常量n n在定义后不能再改变其值n n字符常量:窄字符 char 与 宽字符 wchar的区别为什么引入宽字符?1/15/20231/15/20232020北京理工大学计算机系北京理工大学计算机系字串字串n nC中的字串是字符数组,C+标准库提供了string类。重点把握:“a”,a的区别,区分:空串 空格串 NULL1/15/20231/15/202321
9、21北京理工大学计算机系北京理工大学计算机系符号常量符号常量n n可读性:512是什么意思?干什么的?n n可维护性:如果程序有10000行,512出现了几十次,如果现在需要将512改为1024,这是个头痛的事。问题:for(int index=1;indexb?true:false1/15/20231/15/20232525北京理工大学计算机系北京理工大学计算机系变量变量n n在运行中可以动态赋值在运行中可以动态赋值n n注意:未初始化的局部变量不要直接使用。注意:未初始化的局部变量不要直接使用。int i;示例:UnInitVar.cpp1/15/20231/15/20232626北京理工
10、大学计算机系北京理工大学计算机系运算符与表达式n n+和-I+,+I,-I,I-n+=,/=等na=b=c的含义1/15/20231/15/20232727北京理工大学计算机系北京理工大学计算机系运算符优先级运算符优先级n n操作符顺序 n n一些算术运算优先于其它一些算术运算优先于其它(例如例如,先乘除后加先乘除后加减)减)n n必要时使用括号保证优先级别必要时使用括号保证优先级别n n示例示例:计算计算a a,b b 和和 c c的平均值的平均值的平均值的平均值n n错:错:a+b+c/3a+b+c/3 n n对对 (a+b+c)/3(a+b+c)/31/15/20231/15/20232
11、828北京理工大学计算机系北京理工大学计算机系运算符结合性运算符结合性n nPrecedence of operators()运算符结合性n n除了赋值运算符除了赋值运算符 =,所有的结合性都是从左所有的结合性都是从左到右到右n n例如例如:x=y=zx=y=z 相当于相当于 x=(y=z)x=(y=z)1/15/20231/15/20232929北京理工大学计算机系北京理工大学计算机系优先级与结合性优先级与结合性例题2-2#include void main(void)int year;bool IsLeapYear;cout year;IsLeapYear=(year%4=0&year%1
12、00!=0)|(year%400=0);if(IsLeapYear)cout year is a leap year endl;else cout year is not a leap year endl;1/15/20231/15/20233030北京理工大学计算机系北京理工大学计算机系类型转换类型转换n n隐式转换n n显式转换n n(1)C语言方式(类型名)表达式n(2)C+方式static_cast,const_cast,dynamic_cast,reinterpret_castncast-name(表达式)1/15/20231/15/20233131北京理工大学计算机系北京理工大学计
13、算机系const_castn nExtern char*string_copy(char*);n nconst char*pc_str;n nchar*pc=string_copy(const_cast(pc_str)n n提示:const_cast将转换掉表达式的常量性。1/15/20231/15/20233232北京理工大学计算机系北京理工大学计算机系static_castn ndouble d=97.0n nchar ch=static_cast(d)显式完成编译器隐式执行的任何类型转换。告诉编译器我们不关心精度损失1/15/20231/15/20233333北京理工大学计算机系北京理工
14、大学计算机系reinterpret_castn nVoid*p;n nint*q=reinterpret_cast(p);n n这种转换类型很少用,大家可以去看一下C+文档。1/15/20231/15/20233434北京理工大学计算机系北京理工大学计算机系dynamic_castn n主要用于在运行时刻识别由指针或引用指向的类对象。这在面向对象编程中非常常见。ClassA*pA=new ClassA();ClassB*pB=new ClassB();if(dynamic_cast(pB)1/15/20231/15/20233535北京理工大学计算机系北京理工大学计算机系语句语句n n语句=表
15、达式+分号!1/15/20231/15/20233636北京理工大学计算机系北京理工大学计算机系算法控制结构n n三种基本结构顺序 选择和循环所有高级语言所共有结构1/15/20231/15/20233737北京理工大学计算机系北京理工大学计算机系多分支结构多分支结构 Switchn n例2-4int day;cin day;switch(day)case 0:cout Sunday endl;break;case 6:cout Saturday endl;break;default:cout Day out of range Sunday.Saturday endl;break;1/15/2
16、0231/15/20233838北京理工大学计算机系北京理工大学计算机系算法控制结构-循环语句循环语句n n 基本要求:n理解所有的循环语句等价性,并可以由一种形式转换到另一种形式。1/15/20231/15/20233939北京理工大学计算机系北京理工大学计算机系课堂练习课堂练习n n将例2-5中的while循环转为for循环#includevoid main()int i(1),sum(0);while(i=10)sum+=i;i+;coutsum=sumendl;1/15/20231/15/20234040北京理工大学计算机系北京理工大学计算机系理解嵌套n由内到外,逐步替换1/15/20
17、231/15/20234141北京理工大学计算机系北京理工大学计算机系循环示例循环示例n n例题例题2-92-9:输出一个平行四边形:输出一个平行四边形1/15/20231/15/20234242北京理工大学计算机系北京理工大学计算机系补充补充n n用VS.net开发C+程序n n用BCB开发C+程序1/15/20231/15/20234343北京理工大学计算机系北京理工大学计算机系使用使用VS.net调试调试C+程序程序n n可以使用可以使用VS.netVS.net调试本课程的例题调试本课程的例题1/15/20231/15/20234444北京理工大学计算机系北京理工大学计算机系设置项目属性
18、设置项目属性1/15/20231/15/20234545北京理工大学计算机系北京理工大学计算机系将已有将已有C+文件加入工程文件加入工程1/15/20231/15/20234646北京理工大学计算机系北京理工大学计算机系选择选择C+源文件源文件1/15/20231/15/20234747北京理工大学计算机系北京理工大学计算机系加入了文件后的资源管理器加入了文件后的资源管理器1/15/20231/15/20234848北京理工大学计算机系北京理工大学计算机系调试调试/开始执行(不调试)开始执行(不调试)1/15/20231/15/20234949北京理工大学计算机系北京理工大学计算机系运行结果运
19、行结果1/15/20231/15/20235050北京理工大学计算机系北京理工大学计算机系使用使用BCB开发控制台程序开发控制台程序-1n nFile/newFile/new1/15/20231/15/20235151北京理工大学计算机系北京理工大学计算机系使用使用BCB开发控制台程序开发控制台程序-21/15/20231/15/20235252北京理工大学计算机系北京理工大学计算机系使用使用BCB开发控制台程序开发控制台程序-31/15/20231/15/20235353北京理工大学计算机系北京理工大学计算机系使用使用BCB开发控制台程序开发控制台程序-41/15/20231/15/20235454北京理工大学计算机系北京理工大学计算机系自我实践自我实践n n按本讲脉络自学C+语法中的相应内容,不懂的请问老师或同学;n n学会使用VC或BCB或VS.net开发、调试C+程序n n有兴趣的同学请自学在Linux下用vi编辑C+程序,用gcc编译C+程序n n学完此章后,要求会编写简单的控制台程序。1/15/20231/15/20235555北京理工大学计算机系北京理工大学计算机系
限制150内