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 |