Home Page Icon
Home Page
Table of Contents for
Cover Page
Close
Cover Page
by Chip Weems, Nell Dale
Programming and Problem Solving with C++: Brief Edition, 5th Edition
Cover Page
Title Page
Copyright Page
Contents
Preface
1 - Overview of Programming and Problem Solving
1.1 Overview of Programming
What Is Programming?
How Do We Write a Program?
What Is an Algorithm?
What Is a Programming Language?
1.2 How Does a Computer Run a Program?
What Kinds of Instructions Can Be Written in a Programming Language?
What Is Software Maintenance?
Software Maintenance Case Study: An Introduction to Software Maintenance
1.3 What's Inside the Computer?
1.4 Ethics and Responsibilities in the Computing Profession
Software Piracy
Privacy of Data
Use of Computer Resources
Software Engineering
1.5 Problem-Solving Techniques
Ask Questions
Look for Things That Are Familiar
Solve by Analogy
Means-Ends Analysis
Divide and Conquer
The Building-Block Approach
Merging Solutions
Mental Blocks: The Fear of Starting
Algorithmic Problem Solving
Problem-Solving Case Study: Leap Year Algorithm
Summary
Quick Check
Answers
Exam Preparation Exercises
Programming Warm-Up Exercises
Case Study Follow-Up
Line Number
2 - C++ Syntax and Semantics, and the Program Development Process
2.1 The Elements of C++ Programs
C++ Program Structure
Syntax and Semantics
Syntax Templates
Naming Program Elements: Identifiers
Data and Data Types
Naming Elements: Declarations
Taking Action: Executable Statements
Beyond Minimalism: Adding Comments to a Program
2.2 Program Construction
Blocks (Compound Statements)
The C++ Preprocessor
Software Maintenance Case Study: Adding Titles to Names
2.3 More about Output
Creating Blank Lines
Inserting Blanks within a Line
Special Characters
2.4 Program Entry, Correction, and Execution
Entering a Program
Compiling and Running a Program
Problem-Solving Case Study: Printing a Chessboard
Testing and Debugging
Summary
Quick Check
Answers
Exam Preparation Exercises
Programming Warm-Up Exercises
Programming Problems
Case Study Follow-Up
3 - Numeric Types, Expressions, and Output
3.1 Overview of C++ Data Types
3.2 Numeric Data Types
Integral Types
Floating-Point Types
3.3 Declarations for Numeric Types
Named Constant Declarations
Variable Declarations
3.4 Simple Arithmetic Expressions
Arithmetic Operators
Increment and Decrement Operators
3.5 Compound Arithmetic Expressions
Precedence Rules
Type Coercion and Type Casting
Software Maintenance Case Study: Precedence Error
3.6 Function Calls and Library Functions
Value-Returning Functions
Library Functions
Void Functions
3.7 Formatting Output
Integers and Strings
Floating-Point Numbers
3.8 Additional string Operations
The length and size Functions
The find Function
The substr Function
Accessing Characters Within a String: The at Function
Converting to Lowercase and Uppercase
Problem-Solving Case Study: Mortgage Payment Calculator
Testing and Debugging
Summary
Quick Check
Answers
Exam Preparation Exercises
Programming Warm-Up Exercises
Programming Problems
Case Study Follow-Up
4 - Program Input and the Software Design Process
4.1 Getting Data into Programs
Input Streams and the Extraction Operator (>>)
The Reading Marker and the Newline Character
Reading Character Data with the get Function
Skipping Characters with the ignore Function
Reading String Data
4.2 Interactive Input/Output
4.3 Noninteractive Input/Output
4.4 File Input and Output
Files
Using Files
Software Maintenance Case Study: Adding File Input/Output to a Program
Run-Time Input of File Names
4.5 Input Failure
4.6 Software Design Methodologies
4.7 Functional Decomposition
Modules
Implementing the Design
A Perspective on Design
Problem-Solving Case Study: Displaying a Name in Multiple Formats
Testing and Debugging
Testing and Debugging Hints
Summary
Quick Check
Answers
Exam Preparation Exercises
Programming Warm-Up Exercises
Programming Problems
Case Study Follow-Up
5 - Conditions, Logical Expressions, and Selection Control Structures
5.1 Flow of Control
Selection
5.2 Conditions and Logical Expressions
The bool Data Type
Logical Expressions
5.3 The If Statement
The If-Then-Else Form
Blocks (Compound Statements)
The If-Then Form
A Common Mistake
Software Maintenance Case Study: Incorrect Output
5.4 Nested If Statements
The Dangling else
5.5 Logical Operators
Precedence of Operators
Relational Operators with Floating-Point Types
5.6 Testing the State of an I/O Stream
Problem-Solving Case Study: BMI Calculator
Testing and Debugging
Testing in the Problem-Solving Phase: The Algorithm Walk-Through
Testing in the Implementation Phase
The Test Plan
Tests Performed Automatically During Compilation and Execution
Testing and Debugging Hints
Summary
Quick Check
Answers
Exam Preparation Exercises
Programming Warm-Up Exercises
Programming Problems
Case Study Follow-Up
6 - Looping
6.1 The While Statement
6.2 Phases of Loop Execution
6.3 Loops Using the While Statement
Count-Controlled Loops
Event-Controlled Loops
Looping Subtasks
Software Maintenance Case Study: Make a Program General
6.4 How to Design Loops
Designing the Flow of Control
Designing the Process Within the Loop
The Loop Exit
6.5 Nested Logic
Designing Nested Loops
Problem-Solving Case Study: Recording Studio Design
Testing and Debugging
Loop-Testing Strategy
Test Plans Involving Loops
Testing and Debugging Hints
Summary
Quick Check
Answers
Exam Preparation Exercises
Programming Warm-Up Exercises
Programming Problems
Case Study Follow-Up
7 - Additional Control Structures
7.1 The Switch Statement
7.2 The Do-While Statement
7.3 The For Statement
Software Maintenance Case Study: Changing a Loop Implementation
7.4 The Break and Continue Statements
7.5 Guidelines for Choosing a Looping Statement
7.6 Additional C++ Operators
Assignment Operators and Assignment Expressions
Increment and Decrement Operators
Bitwise Operators
The Cast Operation
The sizeof Operator
The ?: Operator
Operator Precedence
Type Coercion in Arithmetic and Relational Expressions
Problem-Solving Case Study: The Rich Uncle
Testing and Debugging
Testing and Debugging Hints
Summary
Quick Check
Answers
Exam Preparation Exercises
Programming Warm-Up Exercises
Programming Problems
Case Study Follow-Up
8 - Functions
8.1 Functional Decomposition with Void Functions
When to Use Functions
Why Do Modules Need an Interface Design?
Designing Interfaces
Writing Modules as Void Functions
8.2 An Overview of User-Defined Functions
Flow of Control in Function Calls
Function Parameters
8.3 Syntax and Semantics of Void Functions
Function Call (Invocation)
Function Declarations and Definitions
Local Variables
The Return Statement
8.4 Parameters
Value Parameters
Reference Parameters
Software Maintenance Case Study: Refactoring a Program
Using Expressions with Parameters
A Last Word of Caution About Argument and Parameter Lists
Writing Assertions as Function Documentation
Problem-Solving Case Study: Lawn Care Company Billing
Testing and Debugging
The assert Library Function
Testing and Debugging Hints
Summary
Quick Check
Answers
Exam Preparation Exercises
Programming Warm-Up Exercises
Programming Problems
Case Study Follow-Up
9 - Scope, Lifetime, and More on Functions
9.1 Scope of Identifiers
Scope Rules
Variable Declarations and Definitions
Namespaces
9.2 Lifetime of a Variable
Initializations in Declarations
Software Maintenance Case Study: Debug a Simple Program
9.3 Interface Design
Side Effects
Global Constants
9.4 Value-Returning Functions
Complete Example
Boolean Functions
Interface Design and Side Effects
When to Use Value-Returning Functions
9.5 Type Coercion in Assignments, Argument Passing, and Return of a Function Value
Problem-Solving Case Study: Health Profile
Testing and Debugging
Stubs and Drivers
Testing and Debugging Hints
Summary
Quick Check
Answers
Exam Preparation Exercises
Programming Warm-Up Exercises
Programming Problems
Case Study Follow-Up
10 - User-Defined Data Types
10.1 Built-In Simple Types
Numeric Types
Characters
10.2 User-Defined Simple Types
The Typedef Statement
Enumeration Types
Named and Anonymous Data Types
10.3 Simple Versus Structured Data Types
10.4 Records (Structs)
Accessing Individual Components
Aggregate Operations on Structs
More About Struct Declarations
Binding Like Items
Software Maintenance Case Study: Changing a Loop Implementation
10.5 Hierarchical Records
10.6 Unions
Problem-Solving Case Study: Stylistical Analysis of Text
Testing and Debugging
Coping with Input Errors
Testing and Debugging Hints
Summary
Quick Check
Answers
Exam Preparation Exercises
Programming Warm-Up Exercises
Programming Problems
Case Study Follow-Up
11 - Arrays
11.1 One-Dimensional Arrays
Declaring Arrays
Accessing Individual Components
Out-of-Bounds Array Indexes
Initializing Arrays in Declarations
(Lack of) Aggregate Array Operations
Examples of Declaring and Accessing Arrays
Passing Arrays as Arguments
Commenting Arrays
Software Maintenance Case Study: Modularizing a Program
Using Typedef with Arrays
11.2 Arrays of Records
Arrays of Records
11.3 Special Kinds of Array Processing
Subarray Processing
Indexes with Semantic Content
11.4 Two-Dimensional Arrays
11.5 Passing Two-Dimensional Arrays as Arguments
11.6 Processing Two-Dimensional Arrays
Sum the Rows
Sum the Columns Revised
Sum the Columns
Initialize the Array
Print the Array
11.7 Another Way of Defining Two-Dimensional Arrays
11.8 Multidimensional Arrays
11.9 Sorting and Searching in an Array
Sorting
Searching
Problem-Solving Case Study: Calculating Exam Statistics
Problem-Solving Case Study: Favorite Rock Group
Testing and Debugging
One-Dimensional Arrays
Complex Structures
Multidimensional Arrays
Sorting and Searching
Testing and Debugging Hints
Summary
Quick Check
Answers
Exam Preparation Exercises
Programming Warm-Up Exercises
Programming Problems
Case Study Follow-Up
12 - Classes and Abstraction
12.1 Abstract Data Types
12.2 C++ Classes
Implementing the Member Functions
Classes, Objects, and Members
Built-in Operations on Objects
Class Scope
12.3 Information Hiding
User-Written Header Files
Specification and Implementation Files
Compiling and Linking a Multifile Program
12.4 What Is an Object?
12.5 Class Design Principles
Encapsulation
Abstraction
Designing for Modifiability and Reuse
Mutability
Software Maintenance Case Study: Comparing Two TimeOfDay Objects
12.6 The Name ADT
Specification of the ADT
Implementation File
12.7 Composition
Design of an Entry Class
12.8 UML Diagrams
Diagramming a Class
Diagramming Composition of Classes
Problem-Solving Case Study: Create an Array of Name Objects
Testing and Debugging
Testing and Debugging Hints
Summary
Quick Check
Answers
Exam Preparation Exercises
Programming Warm-Up Exercises
Programming Problems
Case Study Follow-Up
13 - Recursion
13.1 What Is Recursion?
13.2 Recursive Algorithms with Simple Variables
13.3 Towers of Hanoi
13.4 Recursive Algorithms with Structured Variables
13.5 Recursion or Iteration?
Software Maintenance Case Study: Substituting Binary Search for Linear Search
Testing and Debugging
Testing and Debugging Hints
Summary
Quick Check
Answers
Exam Preparation Exercises
Programming Warm-Up Exercises
Programming Problems
Case Study Follow-Up
Appendices
Index
Search in book...
Toggle Font Controls
Playlists
Add To
Create new playlist
Name your new playlist
Playlist description (optional)
Cancel
Create playlist
Sign In
Email address
Password
Forgot Password?
Create account
Login
or
Continue with Facebook
Continue with Google
Sign Up
Full Name
Email address
Confirm Email Address
Password
Login
Create account
or
Continue with Facebook
Continue with Google
Next
Next Chapter
Title Page
Add Highlight
No Comment
..................Content has been hidden....................
You can't read the all page of ebook, please click
here
login for view all page.
Day Mode
Cloud Mode
Night Mode
Reset