内容推荐
梁勇编著的《C++程序设计(英文版第3版)》保持了liang博士系列丛书中一贯的标志性的教与学的哲学:以实例教,由实践学。通过使用他所提出的已经经过实践检验的“基础先行”的方法,liang博士在本书中通过大量实例阐明了基本的C++特性,使得学生可以通过实践来更有效地进行学习。
在引入面向对象程序设计思想之前,liang博士使用清晰简明的语言介绍了C++语言的基础概念和基本的程序设计技术,如循环、逐步求精等。这些概念都是使用简短且吸引人的实例来进行阐明的。他还在实例研究中给出了一些较大规模的例子,对这些实例,进行了整体的分析讨论和详细的逐行注解。
《C++程序设计(英文版第3版)》可以帮助学生循序渐进地学习所有必须和重要的基本概念,然后再进入到面向对象程序设计方法的学习,*终掌握构建具有异常处理和输入输出功能的有意义的应用程序的方法。贯穿全书的实例和练习都以问题求解为中心,试图培养学生开发可重用组件并创建实际项目的意识。
目录
Chapter 1 Introduction to Computers, Programs, and C++
1.1 introduction
1.2 What is a Computer?
1.3 Programming Languages
1.4 Operating Systems
1.5 History of C++
1.6 A Simple C++ Program
1.7 C++ Program-Development cycle
1.8 Programming Style and Documentation
1.9 Programming Errors
Chapter 2 Elementary Programming
2.1 Introduction
2.2 Writing a Simple Program
2.3 Reading Input from the Keyboard
2.4 Identifiers
2.5 Variables
2.6 Assignment Statements and Assignment Expressions
2.7 Named Constants
2,8 Numeric Data Types and Operations
2.9 Evaluating Expressions and Operator Precedence
2.10 Case Study: Displaying the Current Time
2,11 Augmented Assignment Operators
2.12 Increment and Decrement Operators
2.13 Numeric Type Conversions
2.14 Software Development Process
2.15 Case Study: Counting Monetary Units
2.16 Common Errors
Chapter 3 Selections
3,1 Introduction
3.2 The boo] Data Type
3.3 if Statements
3,4 Two-Way if-else Statements
3,5 Nested if and Multi-Way if-else Statements
3.6 Common Errors and Pitfalls
3.7 Case Study: Computing Body Mass Index
3.8 Case Study: Computing Taxes
3.9 Generating Random Numbers
3.10 Logical Operators
3.11 Case Study: Determining Leap Year
3.12 Case Study: Lottery
3.13 switch Statements
3.14 Conditional Expressions
3.15 Operator Precedence and Associativity
3.16 Debugging
Chapter 4 Mathematical Functions, Characters, and Strings
4.1 Introduction
4.2 Mathematical Functions
4.3 Character Data Type and Operations
4.4 Case Study: Generating Random Characters
4.5 Case Study: Guessing Birthdays
4.6 Character Functions
4.7 Case Study: Converting a Hexadecimal Digit to a Decimal Value
4.8 The string Type
4.9 Case Study: Revising the Lottery Program Using Strings
4.10 Formatting Console Output
4.11 Simple File Input and Output
Chapter 5 Loops
5.1 Introduction
5.2 The while Loop
5.3 The do-while Loop
5.4 The for Loop
5.5 Which Loop to Use?
5.6 Nested Loops
5.7 Minimizing Numeric Errors
5.8 Case Studies
5.9 Keywords break and continue
5.10 Case Study: Checking Palindromes
5.11 Case Study: Displaying Prime Numbers
Chapter 6 Functions
6.1 Introduction
6.2 Defining a Function
6.3 Calling a Function
6.4 void Functions
6.5 Passing Arguments by Value
6.6 Modularizing Code
6.7 Overloading Functions
6.8 Function Prototypes
6.9 Default Arguments
6.10 Inline Functions
6.11 Local, Global, and Static Local Variables
6.12 Passing Arguments by Reference
6.13 Constant Reference Parameters
6.14 Case Study: Converting Hexadecimals to Decimals
6.15 Function Abstraction and Stepwise Refinement
Chapter 7 Single-Dimensional Arrays and C-Strings
7.1 Introduction
7.2 Array Basics
7.3 Problem: Lotto Numbers.
7.4 Problem: Deck of Cards
7.5 Passing Arrays to Functions
7.6 Preventing Changes of Array Arguments in Functions
7.7 Returning Arrays from Functions
7.8 Problem: Counting the Occurrences of Each Letter
7.9 Searching Arrays
7.10 Sorting Arrays
7.11 C-Strings
Chapter 8 Multidimensional Arrays
8.1 Introduction
8.2 Declaring Two-Dimensional Arrays
8.3 Processing Two-Dimensional Arrays
8.4 Passing Two-Dimensional Arrays to Functions
8.5 Problem: Grading a Multiple-Choice Test
8.6 Problem: Finding a Closest Pair
8.7 Problem: Sudoku
8.8 Multidimensional Arrays
Chapter 9 Objects and Classes
9.1 Introduction
9.2 Defining Classes for Objects
9.3 Example: Defining Classes and Creating Objects
9.4 Constructors
9.5 Constructing and Using Objects
9.6 Separating Class Definition from Implementation
9.1 Preventing Multiple Inclusions
9.8 Inline Functions in Classes
9.9 Data Field Encapsulation
9.10 The Scope of Variables
9.11 Class Abstraction and Encapsulation
Chapter 10 Object-Oriented Thinking
10.1 Introduction
10.2 The string Class
10.3 Passing Objects to Functions
10.4 Array of Objects
10.5 Instance and Static Members
10.6 Constant Member Functions
I0.7 Thinking in Objects
10.8 Object Composition
10.9 Case Study: The StackOfIntegers Class
10.10 Class Design Guidelines
Chapter H Pointers and Dynamic Memory Management
11.1 Introduction
11.2 Pointer Basics
11.3 Defining Synonymous Types Using the typedef Keyword
11.4 Using const with Pointers
11.5 Arrays and Pointers
11.6 Passing Pointer Arguments in a Function Call
11.7 Returning a Pointer from Functions
11.8 Useful Array Functions
11.9 Dynamic Persistent Memory Allocation
11.10 Creating and Accessing Dynamic Objects
11.11 The this Pointer
11.12 Destructors
11.13 Case Study: The Course Class
11.14 Copy Constructors
11.15 Customizing Copy Constructors
Chapter 12 Templates, Vectors, and Stacks
12.1 Introduction
12.2 Templates Basics
12.3 Example: A Generic Sort
12.4 Class Templates
12.5 Improving the Stack Class
12.6 The C++ vector Class
12.7 Replacing Arrays Using the vector Class
12.8 Case Study: Evaluating Expressions
Chapter 13 File Input and Output
13.1 Introduction
13.2 Text I/O
13.3 Formatting Output
13.4 Functions: getline, get, and put
13.5 fstream and File Open Modes
13.6 Testing Stream States
13.7 Binary IIO
13.8 Random Access File
13.9 Updating Files
Chapter 14 Operator Overloading
14.1 Introduction
14.2 The Rational Class
14.3 Operator Functions
14.4 Overloading the Subscript Operator []
14.5 Overloading Augmented Assignment Operators
14.6 Overloading the Unary Operators
14.7 Overloading the ++ and -- Operators
14.8 friend Functions and friend Classes
14.9 Overloading the << and >> Operators
14.10 Automatic Type Conversions
14.11 Defining Nonmember Functions for Overloading Operators
14.12 The Rational Class with Overloaded Function Operators
14.13 Overloading the = Operators
Chapter 15 Inheritance and Polymorphism
15.1 Introduction
15.2 Base Classes and Derived Classes
15.3 Generic Programming
15.4 Constructors and Destructors
15.5 Redefining Functions
15.6 Polymorphism
15.7 Virtual Functions and Dynamic Binding
15.8 The protected Keyword
15.9 Abstract Classes and Pure Virtual Functions
15.10 Casting: stati ccast versus dynami c_cast
Chapter 16 Exception Handling
16.1 Introduction
16.2 Exception-Handling Overview
16.3 Exception-Handling Advantages
16.4 Exception Classes
16.5 Custom Exception Classes
16.6 Multiple Catches
16.7 Exception Propagation
16.8 Rethrowing Exceptions
16.9 Exception Specification
16.10 When'to Use Exceptions
Chapter 17 Recursion.
17.1 Introduction
17.2 Example: Factorials
17.3 Case Study: Fibonacci Numbers
17.4 Problem Solving Using Recursion
17.5 Recursive Helper Functions
17.6 Towers of Hanoi
17.7 Eight Queens
17.8 Recursion versus Iteration
17.9 Tail Recursion
The following bonus chapters are on the book's Companion Website at
www.pearsonhighered.com/liang.
Chapter 18 Devdoping Efficient Algorithms
Chapter 19 Sorting
Chapter 20 Linked Lists, Queues, and Priority Queues
Chapter 21 Binary Search Trees
Chapter 22 STL Containers
Chapter 23 STL Algorithms
Chapter 24 Graphs and Applications
Chapter 25 Weighted Graphs and Applications
Chapter 26 AVL Trees and Splay Trees
APPENDIXES
Appendix A C++ Keywords
Appendix B The ASCII Character Set
Appendix C Operator Precedence Chart
Appendix D Number Systems
Appendix E Bitwise Operations
INDEX
CREDIT