Chapter 1 Introduction to Computers, the Internet and World Wide Web 1.1 Introduction 1.2 What Is a Computer? 1.3 Computer Organization 1.4 Early Operating Systems 1.5 Personal, Distributed and Client/Server Computing 1.6 The Imemet and the World Wide Web 1.7 Machine Languages, Assembly Languages and High-Level Languages 1.8 History of C and C++ 1.9 C++ Standard Library 1.10 History of Java 1.11 FORTRAN, COBOL, Pascal and Ada 1.12 Basic, Visual Basic, Visual C++, C# and .NET 1.13 Key Software Trend: Object Technology 1.14 Typical C++ Development Environment 1.15 Notes About C++ and C++ How to Program, 5/e 1.16 Test-Driving a C++ Application 1.17 Software Engineering Case Study: Introduction to Object Technology and the UML (Required) 1.18 Wrap-Up 1.19 Web Resources Chapter 2 Introduction to C++ Programming 2.1 Introduction 2.2 First Program in C++: Printing a Line of Text 2.3 Modifying Our First C++ Program 2.4 Another C++ Program: Adding Integers 2.5 Memory Concepts 2.6 Arithmetic 2.7 Decision Making: Equality and Relational Operators 2.8 (Optional) Software Engineering Case Study: Examining the ATM Requirements Document 2.9 Wrap-Up Chapter 3 Introduction to Classes and Objects 3.1 Introduction 3.2 Classes, Objects, Member Functions and Data Members 3.3 Overview of the Chapter Examples 3.4 Defining a Class with a Member Function 3.5 Defining a Member Function with a Parameter 3.6 Data Members, set Functions and get Functions 3.7 Initializing Objects with Constructors 3.8 Placing a Class in a Separate File for Reusability 3.9 Separating Interface from Implementation 3.10 Validating Data with set Functions 3. 11 (Optional) Software Engineering Case Study: Identifying the Classes in the ATM Requirements Document 3.12 Wrap-Up Chapter 4 Control Statements: Part 1 4.1 Introduction 4.2 Algorithms 4.3 Pseudocode 4.4 Control Structures 4.5 if Selection Statement 4.6 if… else Double-Selection Statement 4.7 while Repetition Statement 4.8 Formulating Algorithms: Counter-Controlled Repetition 4.9 Formulating Algorithms: Sentinel-Controlled Repetition 4.10 Formulating Algorithms: Nested Control Statements 4.11 Assignment Operators 4.12 Increment and Decrement Operators 4.13 (Optional) Software Engineering Case Study: Identifying Class Attributes in the ATM System... 4.14 Wrap-Up Chapter 5 Control Statements: Part 2 5.1 Introduction 5.2 Essentials of Counter-Controlled Repetition 5.3 for Repetition Statement 5.4 Examples Using the for Statement 5.5 do... while Repetition Statement 5.6 switch Multiple-Selection Statement 5.7 break and continue Statements 5.8 Logical Operators 5.9 Confusing Equality (=) and Assignment (=) Operators 5.10 Structured Programming Summary 5.11 (Optional) Software Engineering Case Study: Identifying Objects States and Activities in the ATM System 5.12 Wrap-Up Chapter 6 Functions and an Introduetion to Reeursiun 6.1 Introduction 6.2 Program Components in C++ 6.3 Math Library Functions 6.4 Function Definitions with Multiple Parameters 6.5 Function Prototypes and Argument Coercion 6.6 C++ Standard Library Header Files 6.7 Case Study: Random Number Generation 6.8 Case Study: Game of Chance and Introducing enum 6.9 Storage Classes 6.10 Scope Rules 6.11 Function Call Stack and Activation Records 6.12 Functions with Empty Parameter Lists 6.13 Inline Functions 6.14 References and Reference Parameters 6.15 Default Arguments 6.16 Unary Scope Resolution Operator 6.17 Function Overloading 6.18 Function Templates 6.19 Recursion 6.20 Example Using Recursion: Fibonacci Series 6.21 Recursion vs. Iteration 6.22 (Optional) Software Engineering Case Study: Identifying Class Operations in the ATM System ... 6.23 Wrap-Up Chapter 7 Arrays and Vectors 7.1 Introduction 7.2 Arrays 7.3 Declaring Arrays 7.4 Examples Using Arrays 7.5 Passing Arrays to Functions 7.6 Case Study: Class GradeBook Using an Array to Store Grades 7.7 Searching Arrays with Linear Search 7.8 Sorting Arrays with Insertion Sort 7.9 Multidimensional Arrays 7.10 Case Study: Class GradeBook Using a Two-Dimensional Array 7.11 Introduction to C++ Standard Library Class Template vector 7.12 (Optional) Software Engineering Case Study: Collaboration Among Objects in the ATM System. 7.13 Wrap-Up Chapter 8 Pointers and Pointer-Based Strings 8.1 Introduction 8.2 Pointer Variable Declarations and Initialization 8.3 Pointer Operators 8.4 Passing Arguments to Functions by Reference with Pointers 8.5 Using const with Pointers 8.6 Selection Sort Using Pass-by-Reference 8.7 sizeof Operators 8.8 Pointer Expressions and Pointer Arithmetic 8.9 Relationship Between Pointers and Arrays 8.10 Arrays of Pointers 8.11 Case Study: Card Shuffling and Dealing Simulation 8.12 Function Pointers 8.13 Introduction to Pointer-Based String Processing 8.13.1 Fundamentals of Characters and Pointer-Based Strings 8.13.2 String Manipulation Functions of the String-Handling Library 8.14 Wrap-Up Chapter 9 Classes: A Deeper Look, Part 1 9.1 Introduction 9.2 Time Class Case Study 9.3 Class Scope and Accessing Class Members 9.4 Separating Interface from Implementation 9.5 Access Functions and Utility Functions 9.6 Time Class Case Study: Constructors with Default Arguments 9.7 Destructors 9.8 When Constructors and Destructors Are Called 9.9 Time Class Case Study: A Subtle Trap —— Returning a Reference to a private Data Member 9.10 Default Memberwise Assignment 9.11 Software Reusability 9.12 (Optional) Software Engineering Case Study: Starting to Program the Classes of the ATM System 9.13 Wrap-Up Chapter 10 Classes: A Deeper Look, Part 2 10.1 Introduction 10.2 const (Constant) Objects and const Member Functions 10.3 Composition: Objects as Members of Classes 10.4 friend Functions and friend Classes 10.5 Using the this Pointer 10.6 . Dynamic Memory Management with Operators new and delete 10.7 static Class Members 10.8 Data Abstraction and Information Hiding 10.8.1 Example: Array Abstract Data Type 10.8.2 Example: String Abstract Data Type 10.8.3 Example: Queue Abstract Data Type 10.9 Container Classes and Iterators 10.10 Proxy Classes 10.11 Wrap-Up Chapter 11 Operator Overloading; String and Array Objects 11.1 Introduction 11.2 Fundamentals of Operator Overloading : 11.3 Restrictions on Operator Overloading 11.4 Operator Functions as Class Members vs. Global Functions 11.5 Overloading Stream Insertion and Stream Extraction Operators 11.6 Overloading Unary Operators 11.7 Overloading Binary Operators 11.8 Case Study: Array Class 11.9 Converting between Types 11.10 Case Study: String Class 11.11 Overloading ++ and ——. 11.12 Case Study: A Date Class 11.13 Standard Library Class string 11.14 explicit Constructors 11.15 Wrap-Up Chapter 12 Objeet-Orientetl Programming: Inheritance 12.1 Introduction 12.2 Base Classes and Derived Classes 12.3 protected Members 12.4 Relationship between Base Classes and Derived Classes 12.4.1 Creating and Using a CommissionEmployee Class 12.4.2 Creating a BasePlusCommissionEmployee Class Without Using Inheritance 12.4.3 Creating a Commission Employee-BasePlus Commission Employee Inberitance Hierarchy 12.4.4 Commission Employee-BasePlus Commission Employee Inheritance Hierarchy Using protected Data 12.4.5 CommissionEmployee-BasePlusCommissionEmployee Inheritance Hierarchy Using private Data