梁勇(Y.Daniel
Liang),普度大学终身教授,阿姆斯特朗亚特兰大州立大学计算机科学系教授他所编写的Java教程在美国大学Java课程中采用率极高,同时他还兼任Prentice
Hall Java系列丛书的编辑。
目錄:
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
1.10 Creating and Accessing Dynamic Objects
1.11 The this Pointer
1.12 Destructors
1.13 Case Study: The Course Class
1.14 Copy Constructors
1.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 IO
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.comliang.
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