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
$159.99

  • Hardcover, paperback or looseleaf edition
  • Affordable rental option for select titles
  • Free shipping on looseleafs and traditional textbooks

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.

  • Real-world engineering and scientific examples and application problems are emphasised throughout the text.  This emphasis is centered around a theme of engineering challenges, which include
    • Understanding weather patterns, climate, and global change
    • Computerised 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 — Utilises 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 recognise 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 recognise 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.

About the Book

  • NEW! C++11 features including the range-based “for” statement.
  • NEW! Multiple IDEs including
    • NetBean
    • 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

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

 

 

Need help? Get in touch

Video
Play
Privacy and cookies
By watching, you agree Pearson can share your viewership data for marketing and analytics for one year, revocable by deleting your cookies.

Pearson eTextbook: What’s on the inside just might surprise you

They say you can’t judge a book by its cover. It’s the same with your students. Meet each one right where they are with an engaging, interactive, personalized learning experience that goes beyond the textbook to fit any schedule, any budget, and any lifestyle.