Engineering Problem Solving with C++, 4th edition

Published by Pearson (March 8, 2016) © 2017

  • Delores M Etter Southern Methodist University
  • Jeanine A. Ingber University of New Mexico


ISBN-13: 9780134444291
Engineering Problem Solving With C++
Published 2016


  • A print text
  • Free shipping

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


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


Need help? Get in touch