Menu Expand
Engineering Problem Solving  with C++

Engineering Problem Solving with C++

Delores M. Etter | Jeanine A. Ingber

(2014)

Additional Information

Book Details

Abstract

For one/two semester courses in Engineering and Computer Science at the freshman/sophomore level.

 

This text is a clear, concise introduction to problem solving and the C++ programming language. The authors’ proven five-step problem solving methodology is presented and then incorporated in every chapter of the text. Outstanding engineering and scientific applications are used throughout; all applications are centered around the theme of engineering challenges in the 21st century.



Table of Contents

Section Title Page Action Price
Cover\r Cover
Contents 4
Preface 11
Chapter 1: Introduction to Computing and Engineering Problem Solving\r 18
1.1 Historical Perspective\r 19
1.2 Recent Engineering Achievements\r 23
Changing Engineering Environment 25
1.3 Computing Systems\r 27
Computer Hardware 27
Computer Software 28
1.4 Data Representation and Storage\r 32
Number Systems 33
Data Types and Storage 39
1.5 An Engineering Problem-Solving Methodology\r 42
Summary\r 45
Chapter 2: Simple C++ Programs\r 50
Engineering Challenge: Vehicle Performance\r 50
2.1 Program Structure\r 51
2.2 Constants and Variables\r 55
Scientific Notation 57
Numeric Data Types 58
Boolean Data Type 60
Character Data Type 60
String Data 62
Symbolic Constants 63
2.3 C++ Classes\r 64
Class Declaration 64
Class Implementation 65
2.4 C++ Operators\r 68
Assignment Operator 68
Arithmetic Operators 70
Precedence of Operators 72
Overflow and Underflow 74
Increment and Decrement Operators 75
Abbreviated Assignment Operators 76
2.5 Standard Input and Output\r 77
The cout Object\r 77
Stream Objects 78
Manipulators 80
The cin Object\r 83
2.6 Building C++ Solutions with IDEs: NetBeans\r 85
NetBeans 85
2.7 Basic Functions Included in the C++ Standard Library\r 92
Elementary Math Functions 93
Trigonometric Functions 94
Hyperbolic Functions\r 96
Character Functions 97
2.8 Problem Solving Applied: Velocity Computation\r 97
2.9 System Limitations\r 101
Summary\r 102
Chapter 3: Control Structures: Selection\r 110
Engineering Challenge: Global Change\r 110
3.1 Algorithm Development\r 111
Top-Down Design 111
3.2 Structured Programming\r 113
Pseudocode 113
Evaluation of Alternative Solutions 115
3.3 Conditional Expressions\r 115
Relational Operators 115
Logical Operators 116
Precedence and Associativity 119
3.4 Selection Statements: if Statement\r 120
Simple if Statements 120
if/else Statement 123
3.5 Numerical Technique: Linear Interpolation\r 127
3.6 Problem Solving Applied: Freezing Temperature of Seawater\r 131
3.7 Selection Statements: switch Statement\r 135
3.8 Building C++ Solutions with IDEs: NetBeans\r 138
NetBeans 138
3.9 Defining Operators for Programmer-Defined Data Types\r 144
Summary\r 149
Chapter 4: Control Structures: Repetition\r 154
Engineering Challenge: Data Collection\r 154
4.1 Algorithm Development\r 155
Pseudocode and Flowchart Description 156
4.2 Repetition Structures\r 156
while Loop\r 157
do/while Loop\r 161
for Loop\r 164
4.3 Problem Solving Applied: GPS\r 169
4.4 break and continue Statements\r 173
4.5 Structuring Input Loops\r 174
Counter-Controlled Loops 174
Sentinel-Controlled Loop 176
End-Of-Data Loop 177
4.6 Problem Solving Applied: Weather Balloons\r 179
4.7 Building C++ Solutions with IDEs: Microsoft Visual C++\r 184
Microsoft Visual C 186
Summary\r 190
Chapter 5: Working with Data Files\r 196
Engineering Challenge: Weather Prediction\r 196
5.1 Defining File Streams\r 197
Stream Class Hierarchy 197
ifstream Class\r 200
ofstream Class\r 201
5.2 Reading Data Files\r 203
Specified Number of Records 204
Trailer or Sentinel Signals 206
End-of-File 208
5.3 Generating a Data File\r 211
5.4 Problem Solving Applied: Data Filters.Modifying an HTML File\r 214
5.5 Error Checking\r 218
The Stream State\r 219
5.6 Numerical Technique: Linear Modeling\r 224
5.7 Problem Solving Applied: Ozone Measurements\r 227
Summary\r 233
Chapter 6: Modular Programming with Functions\r 240
Engineering Challenge: Simulation\r 240
6.1 Modularity\r 241
6.2 Programmer-Defined Functions\r 244
Function Definition 247
Solution 1 250
Solution 2 251
Function Prototype 254
6.3 Parameter Passing\r 255
Pass by Value 256
Pass by Reference 258
Storage Class and Scope 264
6.4 Problem Solving Applied: Calculating a Center of Gravity\r 266
6.5 Random Numbers\r 270
Integer Sequences 270
Floating-Point Sequences 274
6.6 Problem Solving Applied: Instrumentation Reliability\r 275
6.7 Defining Class Methods\r 282
Public Interface 283
Accessor Methods 284
Mutator Methods 285
6.8 Problem Solving Applied: Design of Composite Materials\r 290
Solution 1\r 292
Solution 2\r 293
6.9 Numerical Technique: Roots of Polynomials\r 296
Polynomial Roots 296
Incremental-Search Technique 298
6.10 Problem Solving Applied: System Stability\r 300
Newton–Raphson Method\r 306
6.11 Numerical Technique: Integration\r 309
Integration Using the Trapezoidal Rule 309
Summary\r 313
Chapter 7: One-Dimensional Arrays\r 324
Engineering Challenge: Tsunami Warning Systems\r 324
7.1 Arrays\r 325
Definition and Initialization\r 326
Pseudocode\r 328
Computation and Output\r 331
Function Arguments\r 335
7.2 Problem Solving Applied: Hurricane Categories\r 340
7.3 Statistical Measurements\r 346
Simple Analysis 346
Variance and Standard Deviation 348
Custom Header Files 351
7.4 Problem Solving Applied: Speech Signal Analysis\r 351
7.5 Sorting and Searching Algorithms\r 357
Selection Sort\r 358
Search Algorithms\r 359
Unordered Lists\r 360
Ordered Lists\r 360
7.6 Problem Solving Applied: Tsunami Warning Systems\r 362
7.7 Character Strings\r 368
C Style String Definition and I/O\r 368
String Functions\r 370
7.8 The string Class\r 371
7.9 The vector class\r 373
Parameter Passing\r 376
7.10 Problem Solving Applied: Calculating Probabilities\r 378
Summary\r 391
Chapter 8: Two-Dimensional Arrays\r 398
Engineering Challenge: Terrain Navigation\r 398
8.1 Two-Dimensional Arrays\r 399
Declaration and Initialization\r 400
Computations and Output 405
Function Arguments 408
8.2 Problem Solving Applied: Terrain Navigation\r 414
8.3 Two-Dimensional Arrays and the vector class\r 419
Function Arguments\r 422
8.4 Matrices\r 423
Determinant\r 423
Transpose 424
Matrix Addition and Subtraction 425
Matrix Multiplication 426
8.5 Numerical Technique: Solution to Simultaneous Equations\r 428
Graphical Interpretation 428
Gauss Elimination 432
8.6 Problem Solving Applied: Electrical Circuit Analysis\r 434
8.7 Higher Dimensional Arrays\r 440
Summary\r 442
Chapter 9: An Introduction to Pointers\r 450
Engineering Challenge: Weather Patterns\r 450
9.1 Addresses and Pointers\r 451
Address Operator 452
Pointer Assignment 454
Pointer Arithmetic 457
9.2 Pointers to Array Elements\r 460
One-Dimensional Arrays 461
Character Strings 463
Pointers as Function Arguments 464
9.3 Problem Solving Applied: El Nino-Southern Oscillation Data\r 469
9.4 Dynamic Memory Allocation\r 472
The new Operator 472
Dynamically Allocated Arrays 474
The delete Operator 474
9.5 Problem Solving Applied: Seismic Event Detection\r 476
9.6 Common Errors Using new and delete\r 482
9.7 Linked Data Structures\r 484
Linked Lists 484
Stacks 486
Queue 486
9.8 The C++ Standard Template Library\r 488
The list class\r 488
The stack class\r 490
The queue class\r 491
9.9 Problem Solving Applied: Concordance of a Text File\r 493
Summary\r 498
Chapter 10: Advanced Topics\r 504
Engineering Challenge: Artificial Intelligence\r 504
10.1 Generic Programming\r 505
Function Templates \r 506
10.2 Data Abstraction\r 510
Overloading Operators 510
The Pixel class 511
Arithmetic Operators 512
friend Functions 517
Validating Objects 522
Bitwise Operators 526
10.3 Problem Solving Applied: Color Image Processing\r 529
10.4 Recursion\r 535
Factorial Function 536
Fibonacci Sequence 538
The BinaryTree class 540
10.5 Class Templates\r 552
10.6 Inheritance\r 558
The Rectangle class\r 558
The Square class\r 561
The Cube class\r 564
10.7 virtual Methods\r 567
10.8 Problem Solving Applied: Iterated Prisoner's Dilemma\r 570
Summary\r 579
Appendix A: C++ Standard Library\r 584
Appendix B: ASCII Character Codes\r 592
Appendix C: Using MATLAB to Plot Data from ASCII Files\r 596
C++ Program to Generate a Data File 596
ASCII Data File Generated by the C++ Program 597
Generating a Plot with MATLAB 597
Appendix D: References\r 599
Appendix E: Practice! Solutions\r 600
Index 617