C++程序设计 概述 潘荣江 山东大学软件学院
参考书 C++程序设计(第3版) 全国高校出版社优秀畅销书一等奖 作者:谭浩强 定价:49.50元 ISBN:9787302408307 出版日期:2015.08.01 印刷日期:2016.12.05
C++语言发展历史 自从1946年第一台电子数字计算机ENIAC问世以来,随着计算机应用领域的不断扩大,促进了计算机技术的高速发展,尤其是近年来计算机的硬件和软件都是日新月异。 作为应用计算机的一种工具—程序设计语言,得到不断的充实和完善。每年都有新的程序设计语言问世,老的程序设计语言不断地更新换代。
20世纪60年代,Martin Richards在开发系统软件时,使用而开发了BCPL语言(Basic Combined Programming Language)。1970年,Ken Thompson在继承BCPL语言的许多优点基础上发明了B语言。 1972年,贝尔实验室的Dennis Ritchie和Brian Kernighan在B语言的基础上,作了进一步的充实和完善,设计出了C语言。当时,设计C语言是为了编写UNIX操作系统的。以后,C语言经过多次改进,吸收了其它语言的优点逐步成为实用性很强的语言,并开始流行。
C语言的主要特点 1、C语言是一种结构化的程序设计语言,语言本身简洁、使用灵活方便,既适用于设计和编写大的系统程序,又适用于编写小的控制程序,也适用科学计算。 2、它既有高级语言的特点,又具有汇编语言的特点。运算符丰富,除了提供对数据的算术逻辑运算外,还提供了二进制的位运算,提供了灵活的数据结构。用C语言编写的程序表述灵活方便,功能强大。用C语言开发的程序,其结构性好,目标程序质量高,程序执行效率高。
3、程序的可移植性好。用C语言在某一种型号的计算机上开发的程序,基本上可以不作修改,而直接移植到其它型号和不同档次的计算机上运行。 4、程序的语法结构不够严密,程序设计的自由度大。精通C语言的程序设计者,可以设计出高质量的非常通用的程序。但对于初学者来说,要能比较熟练运用C语言来编写程序,并不是一件容易的事情。与其它高级语言相比而言,调试程序比较困难。往往是编好程序输入计算机后,编译时容易通过,而在执行时还会出错。但只要对C语言的语法规则真正领会,编写程序及调试程序还是比较容易掌握的。
随着软件规模的增大,C语言存在的一些不足也开始暴露出来。如: 缺少支持代码重用的结构; 随着软件工程规模的扩大,难以适应开发大型的程序等。
为了克服C语言本身存在的缺点,并保持C语言简洁、高效,与汇编语言接近的特点,1980年,贝尔实验室的Bjarne Stroustrup博士及其同事对C语言进行了改进和扩充,把类的概念引入到C中。 1983年由Rick Maseitti提议正式命名为C++(C Plus Plus)。 后来,又把运算符的重载、引用、虚函数等功能加入到C++中,使C++的功能日趋完善。
早期程序设计语言的历史
C++的产生和标准化 C++是从C语言发展演变而来的,是一个更好的C。 引入了类的机制,最初的C++被称为“带类的C” 1994年制定了ANSI C++标准 1998年11月被国际标准化组织(ISO)批准为国际标准,ANSI和ISO联合 发布 “C++98” 标准,加入STL (Standard Template Library) – 泛型设计 2003年, ISO的C++标准委员会发布 C++03 2011年9月, ISO标准委员会通过了新的C++11 C++14,C++17,C++20 ……
C++的特点 兼容C 支持面向对象 支持泛型程序设计方法。 保持了C的简洁、高效和接近汇编语言等特点 对C的类型系统进行了改革和扩充
程序的开发过程 编辑 编译 连接 运行调试 将源程序输入到计算机中,生成后缀为cpp的磁盘文件。 将程序的源代码转换为机器语言代码,生成obj文件。 连接 将多个obj文件以及库中的某些文件连在一起,生成一个 后缀为exe的可执行文件。 运行调试
高级语言编译过程 在Vitual C++系统中,可直接从源程序编译、连接、运行程序,但依然要生成*.OBJ及*.EXE文件。 库文件 (各种函数) 可执行文件 (二进制文件) *.EXE 源程序 (文本文件) *.CPP 目标文件 (二进制文件) *.OBJ Compile 编译 Link 链接 在Vitual C++系统中,可直接从源程序编译、连接、运行程序,但依然要生成*.OBJ及*.EXE文件。
C++程序的编写和实现 1. 用C++语言编写程序 2. 对源程序进行编译 3. 将目标文件连接 4. 运行程序 5. 分析运行结果
#include <iostream> using namespace std; int main() { cout<<“Hello,Welcome to c++!”; //输出字符串 return 0; } 包含文件 分号,一条语句的结束符 主函数 函数体开始 输出流,在屏幕上打印引号内的字符串 注释或说明 函数体结束 编译执行后,在控制台屏幕上打印出 Hello,Welcome to c++!
l 标识符:程序员声明的单词,它命名程序正文中的一些实体 l 文字:在程序中直接使用符号表示的数据 C++字符集和词法记号 字符集 l 大小写的英文字母:A~Z,a~z l 数字字符:0~9 l 特殊字符: ! # % ^ & * _ + = - ~ < > / \ ‘ “ ; . , : ? ( ) [ ] { } | 词法记号 l 关键字:C++预定义的单词 l 标识符:程序员声明的单词,它命名程序正文中的一些实体 l 文字:在程序中直接使用符号表示的数据 l 分隔符 () {} , : ; 用于分隔各个词法记号或程序正文 l 运算符(操作符): 用于实现各种运算的符号 l 空白符:空格、制表符(TAB键产生的字符)、垂直制表符、换行符、回车符和注释的总称
C++编译环境 Visual Studio 2010支持了部分C++11标准 https://visualstudio.microsoft.com/downloads/ 在 Visual Studio 中安装 c + + 支持 https://docs.microsoft.com/zh-cn/cpp/build/vscpp-step-0-installation?view=vs-2017
用Visual Studio 2017写C++程序--安装VS2017 进到微软官网,下载Visual Studio 2017 Community版本,该版本面向个人开发者是免费授权使用的。
下载一个非常小的Visual Studio Installer(安装器),打开后,选择你要安装的组件,因为VS作为“全宇宙最强大的IDE”,功能组件很多,只需要安装你要用到的功能组件来安装就可以,减小安装后VS的大小。 选择【Desktop Development with C++】,保持右边的选项不用动。确定安装,等待安装完成。
安装完成后打开VS 2017
创建项目 1、选择【文件(File)】→【新建(New)】→【项目(Project)】。
2、在弹出的对话框中,选择【 Visual C++, 其他,空项目】,然后选定保存路径,注意尽量在路径中不出现中文,单击【确定(OK)】。
添加源文件 1、在窗口右侧,【解决方案管理器(Solution Explorer)】窗格中,右击【源文件(Source Files)】
2、选择【C++ File(.cpp)】
编写代码
生成、编译、运行 1、选择【生成(Build)】→【编译(Complie)】,输出框显示编译成功
2、选择【调试(Debug)】→【无需调试直接运行(Start Without Debugging)】
有输入输出的例子 #include <iostream> int main() { std:: cout << “i=”; //显示提示符 int i; //说明变量i std:: cin >>i; //从键盘上输入变量i的值 std:: cout << “i的值为:”<<i<< std:: endl; // 输出变量i的值 return 0; }
小型集成编译环境 Devcpp https://sourceforge.net/projects/orwelldevcpp/
程序的版本 Debug Release
Books C 程序设计语言(第2 版·新版) 作者:(美)Brian W.Kernighan和Dennis M .Ritchie (C语言之父)著
Books 1985年10月, Bjarne完成了经典巨著The C++ Programming Language (第一版) The C++ Programming Language, 4th Edition, Bjarne Stroustrup,Seventh printing, December 2017 | ISBN: 0321563840, 0321958322 | 1132 Pages (C++ Bible, C++之父Bjarne Stroustrup)
语法参考 http://www.cplusplus.com/
软工C++实验 周四晚上9-12节(17:30-21:30),3-10周, 303-305,可以选择9-10或11-12节 与其他课冲突的话,需要提供证明。 考勤 20分,实验报告 80分(每个20分)。 两周完成一个实验,一个实验交一个实验报告。 一个实验的所有小题都放在同一个实验报告中。 程序代码、运行结果(可以是截图,截图中不能 有大块空区域)都放在实验报告中。代码采用缩 进排列格式,有适当的注释说明,不能用截图。 实验报告以“学号_姓名_lab编号.doc”命名,发送 到邮箱:sdu_cpp@163.com