Home > Store > Programming > C/C++

Engineering Problem Solving With C++, 4th Edition

Register your product to gain access to bonus material or receive a coupon.

Engineering Problem Solving With C++, 4th Edition


  • Your Price: $138.21
  • List Price: $162.60
  • Usually ships in 24 hours.



About the Book

  • Real-world engineering and scientific examples and application problems are emphasized throughout the text.  This emphasis is centered around a theme of engineering challenges, which include
    • Understanding weather patterns, climate, and global change
    • Computerized speech understanding
    • Image processing
    • Artificial intelligence
    • Enhanced oil and gas recovery
    • Simulation
  • The five-step process for problem-solving reinforces the development of problem-solving skills. Each of these five steps is clearly identified each time a complete engineering problem is solved. In addition, top-down design and stepwise refinement  are presented with the use of decomposition outlines, pseudocode, and flowcharts. The five steps are:
    • State the problem clearly
    • Describe the input and output information and determine data types
    • Work a simple exercise by hand
    • Develop an algorithm and convert it to a computer program
    • Test the solution with a variety of data. The steps are clearly identified each time that a complete engineering problem is solved.
  • Extensive pedagogy — Chapters contain Practice! problems, Modify!exercises, Exam Practice! and programming problems.
  • Readability and  documentation are stressed in the development of programs. Because engineers and scientists are expected to develop and implement user-friendly and reusable  computer solutions, learning software engineering techniques is crucial.
  • Standard C++ library — Utilizes the first international standard language published by the IOS (International Standards Organization) and ANSI (American National Standards Institute). By using Standard C++, students learn to write portable  code that can be transferred from one computer platform to another.  Additional components of the C++ Standard Library are discussed in Appendix A.
  • Study and programming aids include Statement Boxes, Memory Snapshots, Program Traces, Structure Charts and Flowcharts, and provide easily accessible visual illustrations of important concepts.
  • Margin notes help the reader identify the important concepts, but also easily locate specific topics. In addition, margin notes are used to identify programming style guidelines and debugging information.
  • Style guidelines show students how to write C++ programs that incorporate good software discipline; debugging sections help students recognize common errors so that they can avoid them. The programming style notes are indicated with the margin note Style,  and the debugging notes with a bug  icon. Object-oriented features of C++ display an OOP icon to help students recognize these features early in the text. Each Chapter Summary contains a  summary of the style notes and  debugging notes, plus a list of the  Key Terms from the chapter and a  C++ Statement
  • Reference of the new statements make the book easy to use as a reference.
  • Numerical techniques that are commonly used in solving engineering problems are also presented, and include interpolation, linear modeling (regression), root finding, numerical integration, and the solution to  simultaneous equations. The concept of a matrix  is also introduced and then illustrated using a number of examples. All of these topics are presented assuming only a trigonometry and college algebra background.
  • Optional chapter sections on numerical techniques — Include interpolation, linear modeling (regression), root finding, numerical integration, solution to simultaneous equations, and an introduction to the concept of a  matrix.
  • Appendices — Include components in the Standard C++ library; ASCII character codes; and a list of references.
  • Instructor's Resource CD-ROM — Includes solutions to most programming exercises; data files; a test bank; and a complete set of PowerPoint slide lecture notes.
  • NEW! C++11 features including the range-based “for” statement.
  • NEW! Multiple IDEs including
    • NetBeans
    • MS Visual Studio
    • Xcode
  • NEW! Engineering applications using vegetation maps and weather data.
  • NEW! Coverage of binary file input and output.
  • Expanded! Coverage of vectors and programmer-defined data types.
  • Expanded! Coverage of classes early in the text as optional chapter sections, for flexibility.
  • NEW! Numbering of all Practice and Modify sections for clarity.
  • Additional!  Statement Boxes, Memory Snapshots, Structure Charts and
  • Flowcharts.
  • Available online! Student Resources and an Instructor’s Resource Center (IRC) at www.pearsonhighered.com/cs-resources


  • Copyright 2017
  • Dimensions: 7-3/8" x 9-1/8"
  • Pages: 696
  • Edition: 4th
  • Book
  • ISBN-10: 0-13-444429-9
  • ISBN-13: 978-0-13-444429-1

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.

Sample Content

Table of Contents

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


2 Simple C++ Programs


 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


 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


The cin  Object

2.7  Building C++ Solutions with IDEs: 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


3 Control Structures: Selection


 3.1 Algorithm Development

Top-Down Design

 3.2 Structured Programming


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


 3.9 Defining Operators for Programmer-Defined Data Types


4 Control Structures: Repetition


 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++


5 Working with Data Files


 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


 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


6 Modular Programming with Functions


 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


7 One-Dimensional Arrays

ENGINEERING CHALLENGE: Tsunami Warning Systems

 7.1 Arrays

Definition and Initialization


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


8 Two-Dimensional Arrays


 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



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


9 An Introduction to Pointers


 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


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


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


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


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



Submit Errata

More Information

Unlimited one-month access with your purchase
Free Safari Membership