Adobe® Digital Editions software.
This eBook requires the freeBefore downloading this DRM-encrypted PDF, be sure to:
Also available in other formats.
Register your product to gain access to bonus material or receive a coupon.
This is the eBook of the printed book and may not include any media, website access codes, or print supplements that may come packaged with the bound book.
For one/two semester courses in Engineering and Computer Science at the freshman/sophomore level.
Engineering Problem Solving With C++, Fourth Edition provides a clear, concise introduction to engineering problem solving with C++ as well as the object-oriented features of the C++ programming language. The authors’ proven five-step problem solving methodology is presented and then incorporated in every chapter of the text. The chapters in this text are designed to give the instructor flexibility in the ordering of topics with chapter topics covering the essentials of mathematical computations, character data, control structures, functions, arrays, classes, and pointers. Outstanding engineering and scientific applications are used throughout; all applications are centered around the theme of engineering challenges in the 21st century with an emphasis on incorporating real-world engineering and scientific examples and problems.
Introduction to Computing and Engineering
1 Problem Solving
1.1 Historical Perspective
1.2 Recent Engineering Achievements
Changing Engineering Environment
1.3 Computing Systems
Computer Hardware
Computer Software
1.4 Data Representation and Storage
Number Systems
Data Types and Storage
1.5 An Engineering Problem-Solving Methodology
Summary
2 Simple C++ Programs
ENGINEERING CHALLENGE: Vehicle Performance
2.1 Program Structure
2.2 Constants and Variables
Scientific Notation
Numeric Data Types
Boolean Data Type
Character Data Type
String Data
Symbolic Constants
Auto Type Specifier
2.3 C++ Classes
Class Declaration
Class Implementation
2.4 Building C++ Solutions with IDEs: Xcode
Xcode
2.5 C++ Operators
Assignment Operator
Arithmetic Operators
Precedence of Operators
Overflow and Underflow
Increment and Decrement Operators
Abbreviated Assignment Operators
2.6 Standard Input and Output
The cout Object
Stream Objects
Manipulators
The cin Object
2.7 Building C++ Solutions with IDEs: NetBeans
NetBeans
2.8 Basic Functions Included in the C++ Standard Library
Elementary Math Functions
Trigonometric Functions
Hyperbolic Functions*
Character Functions
2.9 Problem Solving Applied: Velocity Computation
2.10 System Limitations
Summary
3 Control Structures: Selection
ENGINEERING CHALLENGE: Global Change
3.1 Algorithm Development
Top-Down Design
3.2 Structured Programming
Pseudocode
Evaluation of Alternative Solutions
3.3 Conditional Expressions
Relational Operators
Logical Operators
Precedence and Associativity
3.4 Selection Statements: if Statement
Simple if Statements
if/else Statement
3.5 Numerical Technique: Linear Interpolation
3.6 Problem Solving Applied: Freezing Temperature of Seawater
3.7 Selection Statements: switch Statement
3.8 Building C++ Solutions with IDEs: NetBeans
NetBeans
3.9 Defining Operators for Programmer-Defined Data Types
Summary
4 Control Structures: Repetition
ENGINEERING CHALLENGE: Data Collection
4.1 Algorithm Development
Pseudocode and Flowchart Description
4.2 Repetition Structures 156
while Loop
do/while Loop
for Loop
4.3 Problem Solving Applied: GPS
4.4 break and continue Statements
4.5 Structuring Input Loops
Counter-Controlled Loops
Sentinel-Controlled Loop
End-Of-Data Loop
4.6 Problem Solving Applied: Weather Balloons
4.7 Building C++ Solutions with IDEs: Microsoft Visual C++
Microsoft Visual C++
Summary
5 Working with Data Files
ENGINEERING CHALLENGE: Weather Prediction
5.1 Defining File Streams
Stream Class Hierarchy
ifstream Class
ofstream Class
5.2 Reading Data Files
Specified Number of Records
Trailer or Sentinel Signals
End-of-File
5.3 Generating a Data File
5.4 Problem Solving Applied: Data Filters–Modifying an HTML File
5.5 Error Checking
The Stream State
5.6 Numerical Technique: Linear Modeling
5.7 Problem Solving Applied: Ozone Measurements
5.8 Building C++ Solutions with IDEs: Xcode-Weather Patterns
Summary
6 Modular Programming with Functions
ENGINEERING CHALLENGE: Simulation
6.1 Modularity
6.2 Programmer-Defined Functions
Function Definition
Solution 1
Solution 2
Function Prototype
6.3 Parameter Passing
Pass by Value
Pass by Reference
Storage Class and Scope
6.4 Problem Solving Applied: Calculating a Center of Gravity
6.5 Random Numbers
Integer Sequences
Floating-Point Sequences
6.6 Problem Solving Applied: Instrumentation Reliability
6.7 Defining Class Methods
Public Interface
Accessor Methods
Mutator Methods
6.8 Problem Solving Applied: Design of Composite Materials
Solution 1:
Solution 2:
6.9 Numerical Technique: Roots of Polynomials
Polynomial Roots
Incremental-Search Technique
6.10 Problem Solving Applied: System Stability
Newton—Raphson Method
6.11 Numerical Technique: Integration
Integration Using the Trapezoidal Rule
Summary
7 One-Dimensional Arrays
ENGINEERING CHALLENGE: Tsunami Warning Systems
7.1 Arrays
Definition and Initialization
Pseudocode
Range-based for Statement
Computation and Output
Function Arguments
7.2 Problem Solving Applied: Hurricane Categories 357
7.3 Statistical Measurements
Simple Analysis
Variance and Standard Deviation
Custom Header Files
7.4 Problem Solving Applied: Speech Signal Analysis
7.5 Sorting and Searching Algorithms
Selection Sort
Search Algorithms
Unordered Lists
Ordered Lists
7.6 Problem Solving Applied: Tsunami Warning Systems
7.7 Character Strings
C Style String Definition and I/O
String Functions
7.8 The string Class
7.9 Building C++ Solutions with IDEs: Xcode Vegetation Maps
7.10 The vector class
Parameter Passing
7.11 Problem Solving Applied: Calculating Probabilities
Summary
8 Two-Dimensional Arrays
ENGINEERING CHALLENGE: Terrain Navigation
8.1 Two-Dimensional Arrays
Declaration and Initialization
Computations and Output
Function Arguments
8.2 Problem Solving Applied: Terrain Navigation
8.3 Two-Dimensional Arrays and the vector class
Function Arguments
8.4 Matrices
Determinant
Transpose
Matrix Addition and Subtraction
Matrix Multiplication
8.5 Numerical Technique: Solution to Simultaneous Equations
Graphical Interpretation
Gauss Elimination
8.6 Problem Solving Applied: Electrical Circuit Analysis
8.7 Higher-Dimensional Arrays
Summary
9 An Introduction to Pointers
ENGINEERING CHALLENGE: Weather Patterns
9.1 Addresses and Pointers
Address Operator
Pointer Assignment
Pointer Arithmetic
9.2 Pointers to Array Elements
One-Dimensional Arrays
Character Strings
Pointers as Function Arguments
9.3 Problem Solving Applied: El Niño-Southern Oscillation Data
9.4 Dynamic Memory Allocation
The new Operator
Dynamically Allocated Arrays
The delete Operator
9.5 Problem Solving Applied: Seismic Event Detection
9.6 Common Errors Using new and delete
9.7 Linked Data Structures
Linked Lists
Stacks
Queue 518
9.8 The C++ Standard Template Library
The list class
The stack class
The queue class
9.9 Problem Solving Applied: Concordance of a Text File 525
Summary
10 Advanced Topics
ENGINEERING CHALLENGE: Artificial Intelligence
10.1 Data Abstraction
Overloading Operators
The Pixel class
\Arithmetic Operators
friend Functions
Validating Objects
Bitwise Operators
10.2 Building C++ Solutions with IDEs: Xcode Image Files
10.3 Binary File Input and Output
Opening Binary Files
Reading and Writing Binary Files
Contents
10.4 Problem Solving Applied: Color Image Processing
10.5 Recursion
Factorial Function
Fibonacci Sequence
The BinaryTree class
10.6 Generic Programming
Function Templates
Class Templates
10.7 Inheritance
The Rectangle class
The Square Class
The Cube class
10.8 virtual Methods
10.9 Problem Solving Applied: Iterated Prisoner’s Dilemma
Summary
C++ Standard Library
B ASCII Character Codes
C Using MATLAB to Plot Data from ASCII Files
C++ Program to Generate a Data File
ASCII Data File Generated by the C++ Program 649
Generating a Plot with MATLAB
D References
E PRACTICE! Solutions
Index