1、 高等学校计算机规划教材 C+程序设计基础 幸莉仙 主编 于海泳 王立军 田志刚 王华英 编著 内 容 简 介 本书针对初学者学习程序设计而编写,通过本书的学习,初学者可以较好地掌握结构化程序设计的3种结构、面向对象的概念和编程思想。本书以 VC+2005 为开发平台,结合大量实例,系统本书介绍 VC+2005的开发环境、基本语法和编程技巧。全书共 11 章:C+与 VC+2005 概述,VC+2005 程序设计基础,流程控制语句,数组和字符串,指针,函数,结构体与联合,类与对象,类的继承、派生与多态,C+流与文件操作,VC+2005 应用程序开发实例。本书配有电子课件、源代码等教学资源。本书
2、可作为普通高等学校 C+程序设计的教学用书,也可作为计算机等级考试的培训教材和 VC+2005的自学用书。未经许可,不得以任何方式复制或抄袭本书之部分或全部内容。版权所有,侵权必究。图书在版编目(CIP)数据 C+程序设计基础/幸莉仙主编北京:电子工业出版社,2011.1 高等学校计算机规划教材 ISBN 978-7-121-12226-2 C 幸 C 语言程序设计高等学校教材 TP312 中国版本图书馆 CIP 数据核字(2010)第 217099 号 策划编辑:史鹏举 责任编辑:史鹏举 印 刷:装 订:出版发行:电子工业出版社 北京市海淀区万寿路 173 信箱 邮编:100036 开 本:
3、7871092 1/16 印张:16 字数:410 千字 印 次:2011 年 1 月第 1 次印刷 定 价:28.00 元 凡所购买电子工业出版社图书有缺损问题,请向购买书店调换。若书店售缺,请与本社发行部联系,联系及邮购电话:(010)88254888。质量投诉请发邮件至 ,盗版侵权举报请发邮件至 。服务热线:(010)88258888。III 前 言 网络时代学习网络版的软件开发工具非常必要。“短视近利,够用就好”不是学习者应有的态度和方法,未来对软件开发环境有太多的需求和挑战,本书采用 Visual Studio 2005.NET作为学习 C+的语言环境正是为了贴近人才市场对学生能力和
4、技能需要。C+语言是当前最流行、最实用的一种计算机高级语言,尽管国内大多数高校都把 C+设定为新生计算机编程知识入门类课程,但长期以来却在讲授单机版的 Turbo C 或 VC+6.0,学生学完后,不会使用目前流行的.NET 开发工具编写应用程序。本书将面向 Visual Studio 2005.NET 的初中级用户,系统地介绍 C+程序开发的基础知识、编程方法和技巧。本书经过精心规划,具有以下特点:1从 VC+2005 最基本的数据类型、概念、语法、简单程序编写开始入手,使读者逐步掌握结构化程序设计的三种基本结构,即顺序结构、选择结构、循环结构;通过介绍面向对象的概念以及在 VC+2005
5、环境下的实现,使读者从基本概念、基础操作的学习上升到对理论的理解,从而领会应用程序开发的实质。2在例题选择上秉承由浅入深、由简到繁的编程规律,对典型例题给出多种算法求解,在习题上力求做到多样化,以培养和提高初学者分析问题和解决问题的能力。3VC+2005 语言系统庞大,知识点前后衔接紧密,为使初学者轻松学习本门课程,掌握程序设计的精髓,本书将所有知识点按章节划分成一个有序的线性结构,内容由易到难、循序渐进。4为使初学者在学习完本课程后能编写出完成的 Windows 应用程序,在第11章介绍了一个完整的应用程序开发实例。5所有例题、习题、函数等程序都在 VC+2005 环境下测试通过。6附录给出
6、了编程中常用的库函数(包括数学函数、字符串函数、常用数学函数的反函数等),以及习题答案,以方便读者学习时使用。本书共分 11 章,依次是:C+与 VC+2005 概述,VC+2005 程序设计基础,流程控制语句,数组和字符串,指针,函数,结构体与联合,类与对象,类的继承、派生与多态,C+流与文件操作,VC+2005 应用程序开发实例。各章之间内容衔接紧密、自然,形成了一个完整的学习体系。本书配有电子课件、源代码等教学资源,需要者可登录华信教育资源网 http:/,免费注册下载。本书由幸莉仙策划和统稿,由幸莉仙、于海泳、王立军、田志刚、王华英共同撰写完成。韩玢、黄慧莲对本书进行了排版和校对工作。
7、由于时间仓促,书中难免有一些疏漏和不足,恳请广大读者和同行不吝赐教,以便及时修订和补充。联系方式:0312-7525111。E-mail: 编 者 V 目 录 第 1 章 C+与 VC+2005 概述(1)1.1 计算机程序设计语言的发展(1)1.1.1 机器语言(1)1.1.2 汇编语言(1)1.1.3 高级语言(2)1.1.4 结构化程序设计语言(2)1.1.5 面向对象语言的产生(3)1.2 C+语言与面向对象程序设计(4)1.2.1 C+概述(4)1.2.2 面向对象程序设计(4)1.3 C+集成开发环境 Visual Studio 2005(7)1.3.1 集成开发环境 IDE(7)
8、1.3.2 Visual Studio 2005 简介(7)1.4 简单的 VC+2005 程序(8)1.4.1 VC+2005 程序的开发过程(8)1.4.2 简单的 VC+2005 程序示例(9)本章小结 (13)习题 1 (13)第 2 章 VC+2005 程序设计基础 (15)2.1 VC+2005 基本语法 (15)2.1.1 字符集(15)2.1.2 词法记号(15)2.2 基本数据类型和表达式 (18)2.2.1 基本数据类型(18)2.2.2 字面常量(19)2.2.3 变量(22)2.2.4 符号常量(24)2.2.5 运算符与表达式(24)2.2.6 语句(32)2.3 数
9、据的输入与输出 (32)2.3.1 I/O 流(32)2.3.2 预定义的插入符和提取符(33)2.3.3 简单的 I/O 格式控制(33)2.4 基于 VC+2005 的简单程序开发(34)VI 2.4.1 一个简单程序设计例程(34)2.4.2 main 函数(35)2.4.3 注释(36)2.4.4 编译预处理(36)2.4.5 命名空间与 using 应用(40)本章小结 (42)习题 2 (43)第 3 章 流程控制语句 (46)3.1 程序的基本控制结构 (46)3.1.1 语句的分类(46)3.1.2 结构化程序控制结构(47)3.2 流程控制语句 (47)3.2.1 if 语句
10、(47)3.2.2 switch 语句(52)3.3 循环控制语句 (54)3.3.1 for 循环(54)3.3.2 do while 循环(56)3.3.3 while 循环(58)3.4 跳转语句 (59)3.4.1 break 语句(59)3.4.2 continue 语句(60)3.4.3 goto 语句(61)3.4.4 return 语句(62)本章小结 (62)习题 3 (62)第 4 章 数组和字符串 (65)4.1 数组的概念 (65)4.2 数组的定义和数组元素表示方法 (65)4.2.1 数组的定义(66)4.2.2 格式举例(67)4.3 数组元素的输入与输出 (67
11、)4.4 数组的应用 (69)4.4.1 统计(70)4.4.2 排序(71)4.4.3 查找(72)4.4.4 数组的其他应用(74)4.5 字符串 (76)4.5.1 字符串的概念(76)4.5.2 字符串函数(78)VII 4.5.3 字符串应用举例(80)本章小结 (82)习题 4 (82)第 5 章 指针 (85)5.1 指针的概念 (85)5.2 指针变量 (85)5.3 指针运算 (86)5.4 指针与数组 (88)5.4.1 指针与一维数组(88)5.4.2 指针与二维数组(90)5.4.3 new 与 delete(91)5.5 引用变量 (92)本章小结 (94)习题 5
12、(94)第 6 章 函数 (97)6.1 函数的定义与调用 (97)6.1.1 函数的定义(97)6.1.2 函数的声明与调用(99)6.2 函数调用方式和参数传递(101)6.2.1 函数调用过程(101)6.2.2 传值调用(101)6.2.3 传址调用(102)6.2.4 数组作为参数调用(103)6.3 变量的作用域(105)6.3.1 作用域分类(106)6.3.2 应用举例(107)6.4 递归函数(109)6.5 重载函数(112)6.6 模板函数(113)6.7 内联函数(116)6.8 函数指针(117)本章小结(121)习题 6(121)第 7 章 结构体与联合(124)7
13、.1 结构体类型(124)7.1.1 结构体的定义(124)7.1.2 结构体变量的定义和初始化(125)7.1.3 结构体变量的引用(126)7.1.4 结构体数组(128)VIII 7.1.5 结构体与函数(130)7.1.6 结构体指针(133)7.1.7 结构体与链表(137)7.2 联合(139)7.2.1 联合的定义(139)7.2.2 联合变量的定义(140)7.2.3 联合变量的引用(142)7.3 枚举类型(143)7.4 结构体与联合应用实例(146)本章小结(148)习题 7(148)第 8 章 类与对象(150)8.1 类的概念与定义(150)8.1.1 面向对象程序设
14、计概述(150)8.1.2 类的声明(155)8.1.3 类的成员函数(157)8.1.4 类与结构体(158)8.2 对象(159)8.2.1 对象的定义(159)8.2.2 对象成员的引用(160)8.3 构造函数(161)8.3.1 构造函数的作用(161)8.3.2 带参数的构造函数(163)8.3.3 构造函数重载(164)8.3.4 拷贝构造函数(166)8.4 析构函数(167)8.5 类的静态成员(168)8.5.1 静态数据成员(169)8.5.2 静态成员函数(170)8.6 友元(172)8.6.1 友元函数(172)8.6.2 友元类(174)8.7 VC+2005 中
15、使用类向导(175)本章小结(178)习题 8(178)第 9 章 类的继承、派生与多态(181)9.1 类的继承与派生(181)9.1.1 继承与派生的概念(181)9.1.2 派生类定义的格式(182)IX 9.1.3 继承方式(186)9.1.4 多重继承(192)9.2 多态与虚函数(194)9.2.1 多态的概念(194)9.2.2 虚函数(197)9.2.3 多态的实现机制(197)9.2.4 纯虚函数与抽象类(199)本章小结(201)习题 9(202)第 10 章 C+流与文件操作(205)10.1 C+流的概念(205)10.2 输入/输出标准流类(205)10.2.1 C+
16、中的 I/O 流库(205)10.2.2 标准输入/输出流对象(205)10.3 文件操作(210)10.3.1 文件的打开与关闭(210)10.3.2 文本文件的读写操作(211)10.3.3 二进制文件的读写操作(213)10.4 应用举例(216)本章小结(220)习题 10(220)第 11 章 VC+2005 应用程序开发实例(223)11.1 MFC 应用程序(223)11.1.1 创建应用程序(223)11.1.2 应用程序的运行(224)11.1.3 应用程序类和源文件(225)11.1.4 应用程序的控制流程(226)11.2 调用 Windows 公共对话框的实例(227)11.2.1 使用对话框编辑器(227)11.2.2 编写代码(228)11.3 利用 VC+2005 连接数据库实例(230)11.3.1 建立工程 DAOAccess(230)11.3.2 建立 Access 文件(230)11.3.3 修改主窗体界面(230)11.3.4 添加代码(231)附录 A ASCII 码表(234)附录 B 习题答案(236)附录 C 常用库函数(239)附录 D