In this brief version of Starting Out with C++, Gaddis takes a problem-solving approach, inspiring students to understand the logic behind developing quality programs while introducing the C++ programming language. This style of teaching builds programming confidence and enhances each student's development of programming skills. This edition in the Starting Out Series covers the core programming concepts that are introduced in the first semester introductory programming course. As with all Gaddis texts, clear and easy-to-read code listings, concise and practical real-world examples, and an abundance of exercises appear in every chapter.
Author(s): Tony Gaddis
Edition: 6
Publisher: Addison-Wesley Longman
Year: 2009
Language: English
Pages: 960
Cover
Title Page
Copyright
Contents
Table of Location of videonotes
Preface
CHAPTER 1 Introduction to Computers and Programming
1.1 Why Program?
1.2 Computer Systems: Hardware and Software
1.3 Programs and Programming Languages
1.4 What Is a Program Made of?
1.5 Input, Processing, and Output
1.6 The Programming Process
1.7 Procedural and Object-Oriented Programming
CHAPTER 2 Introduction to C++
2.1 The Parts of a C++ Program
2.2 The cout Object
2.3 The #include Directive
2.4 Variables and Literals
2.5 Identifiers
2.6 Integer Data Types
2.7 The char Data Type
2.8 Floating-Point Data Types
2.9 The bool Data Type
2.10 Determining the Size of a Data Type
2.11 Variable Assignments and Initialization
2.12 Scope
2.13 Arithmetic Operators
2.14 Comments
2.15 Focus on Software Engineering: Programming Style
2.16 If You Plan to Continue in Computer Science: Standard and Prestandard C++
CHAPTER 3 Expressions and Interactivity
3.1 The cin Object
3.2 Mathematical Expressions
3.3 When You Mix Apples and Oranges: Type Conversion
3.4 Overflow and Underflow
3.5 Type Casting
3.6 Named Constants
3.7 Multiple Assignment and Combined Assignment
3.8 Formatting Output
3.9 Formatted Input
3.10 Focus on Object-Oriented Programming: More About Member Functions
3.11 More Mathematical Library Functions
3.12 Focus on Debugging: Hand Tracing a Program
3.13 Focus on Problem Solving: A Case Study
3.14 Introduction to File Input and Output
CHAPTER 4 Making Decisions
4.1 Relational Operators
4.2 The if Statement
4.3 Flags
4.4 Expanding the if Statement
4.5 The if/else Statement
4.6 Nested if Statements
4.7 The if/else if Statement
4.8 Menus
4.9 Logical Operators
4.10 Checking Numeric Ranges with Logical Operators
4.11 Focus on Software Engineering: Validating User Input
4.12 More About Variable Definitions and Scope
4.13 Comparing Strings
4.14 The Conditional Operator
4.15 The switch Statement
4.16 Testing for File Open Errors
CHAPTER 5 Looping
5.1 The Increment and Decrement Operators
5.2 Introduction to Loops: The while Loop
5.3 Using the while Loop for Input Validation
5.4 Counters
5.5 The do-while Loop
5.6 The for Loop
5.7 Keeping a Running Total
5.8 Sentinels
5.9 Using a Loop to Read Data from a File
5.10 Focus on Software Engineering: Deciding Which Loop to Use
5.11 Nested Loops
5.12 Breaking Out of a Loop
5.13 The continue Statement
CHAPTER 6 Functions
6.1 Focus on Software Engineering: Modular Programming
6.2 Defining and Calling Functions
6.3 Function Prototypes
6.4 Sending Data into a Function
6.5 Passing Data by Value
6.6 Focus on Software Engineering: Using Functions in a Menu-Driven Program
6.7 The return Statement
6.8 Returning a Value from a Function
6.9 Returning a Boolean Value
6.10 Local and Global Variables
6.11 Static Local Variables
6.12 Default Arguments
6.13 Using Reference Variables as Parameters
6.14 Overloading Functions
6.15 The exit() Function
6.16 Stubs and Drivers
CHAPTER 7 Arrays
7.1 Arrays Hold Multiple Values
7.2 Accessing Array Elements
7.3 No Bounds Checking in C++
7.4 Array Initialization
7.5 Processing Array Contents
7.6 Focus on Software Engineering: Using Parallel Arrays
7.7 Arrays as Function Arguments
7.8 Two-Dimensional Arrays
7.9 Arrays of Strings
7.10 Arrays with Three or More Dimensions
7.11 Focus on Problem Solving and Program Design: A Case Study
7.12 If You Plan to Continue in Computer Science: Introduction to the STL vector
CHAPTER 8 Searching and Sorting Arrays
8.1 Focus on Software Engineering: Introduction to Search Algorithms
8.2 Focus on Problem Solving and Program Design: A Case Study
8.3 Focus on Software Engineering: Introduction to Sorting Algorithms
8.4 Focus on Problem Solving and Program Design: A Case Study
8.5 If You Plan to Continue in Computer Science: Sorting and Searching vectors
CHAPTER 9 Pointers
9.1 Getting the Address of a Variable
9.2 Pointer Variables
9.3 The Relationship Between Arrays and Pointers
9.4 Pointer Arithmetic
9.5 Initializing Pointers
9.6 Comparing Pointers
9.7 Pointers as Function Parameters
9.8 Focus on Software Engineering: Dynamic Memory Allocation
9.9 Focus on Software Engineering: Returning Pointers from Functions
9.10 Focus on Problem Solving and Program Design: A Case Study
CHAPTER 10 Characters, Strings, and the string Class
10.1 Character Testing
10.2 Character Case Conversion
10.3 Review of the Internal Storage of C-Strings
10.4 Library Functions for Working with C-Strings
10.5 String/Numeric Conversion Functions
10.6 Focus on Software Engineering: Writing Your Own C-String-Handling Functions
10.7 The C++ string Class
10.8 Focus on Problem Solving and Program Design: A Case Study
CHAPTER 11 Structured Data
11.1 Abstract Data Types
11.2 Focus on Software Engineering: Combining Data into Structures
11.3 Accessing Structure Members
11.4 Initializing a Structure
11.5 Arrays of Structures
11.6 Focus on Software Engineering: Nested Structures
11.7 Structures as Function Arguments
11.8 Returning a Structure from a Function
11.9 Pointers to Structures
11.10 Focus on Software Engineering: When to Use ., When to Use ->, and When to Use *
11.11 Unions
11.12 Enumerated Data Types
CHAPTER 12 Advanced File Operations
12.1 File Operations
12.2 File Output Formatting
12.3 Passing File Stream Objects to Functions
12.4 More Detailed Error Testing
12.5 Member Functions for Reading and Writing Files
12.6 Focus on Software Engineering: Working with Multiple Files
12.7 Binary Files
12.8 Creating Records with Structures
12.9 Random-Access Files
12.10 Opening a File for Both Input and Output
CHAPTER 13 Introduction to Classes
13.1 Procedural and Object-Oriented Programming
13.2 Introduction to Classes
13.3 Defining an Instance of a Class
13.4 Why Have Private Members?
13.5 Focus on Software Engineering: Separating Class Specification from Implementation
13.6 Inline Member Functions
13.7 Constructors
13.8 Passing Arguments to Constructors
13.9 Destructors
13.10 Overloading Constructors
13.11 Private Member Functions
13.12 Arrays of Objects
13.13 Focus on Problem Solving and Program Design: An OOP Case Study
13.14 Focus on Object-Oriented Programming: Creating an Abstract Array Data Type
13.15 Focus on Object-Oriented Design: The Unified Modeling Language (UML)
13.16 Focus on Object-Oriented Design: Finding the Classes and Their Responsibilities
CHAPTER 14 More About Classes
14.1 Instance and Static Members
14.2 Friends of Classes
14.3 Memberwise Assignment
14.4 Copy Constructors
14.5 Operator Overloading
14.6 Object Conversion
14.7 Aggregation
14.8 Focus on Object-Oriented Design: Class Collaborations
CHAPTER 15 Inheritance, Polymorphism, and Virtual Functions
15.1 What Is Inheritance?
15.2 Protected Members and Class Access
15.3 Constructors and Destructors in Base and Derived Classes
15.4 Redefining Base Class Functions
15.5 Class Hierarchies
15.6 Polymorphism and Virtual Member Functions
15.7 Abstract Base Classes and Pure Virtual Functions
15.8 Multiple Inheritance
Appendix A: The ASCII Character Set
Appendix B: Operator Precedence and Associativity
Index
A
B
C
D
E
F
G
H
I
J
K
L
M
N
O
P
R
S
T
U
V
W
X
Z