For one/two semester courses in Engineering and Computer Science at the freshman/sophomore level. This introduction to engineering problem solving with ANSI C++ programming language employs an easy-to-read problem solving methodology to consider a diverse range of Grand Challenges. The emphasis on engineering and scientific problem solving remains an integral part of the text. An object-based programming approach is utilized starting with Chapter 8.
"synopsis" may belong to another edition of this title.
Best-selling author Delores M. Etter and computer science and engineering educator coauthor Jeanine A. Ingber provide an introduction to engineering problem solving with an object-based programming approach using the ANSI C++ programming language. The authors employ an easy-to-use problem solving methodology to consider a diverse range of grand challenges, including prediction of weather, climate, and global change; computerized speech understanding; mapping of the human genome; improvement in vehicle performance; enhanced oil and gas recovery; and engineering simulation. The emphasis on engineering and scientific problem solving remains as an integral part of the text.
Introduces engineering problem solving with the following objectives:
Object-based programming is used in many fields of engineering and science and is likely to be seen in the workplace. C++ is an object-based programming language derived from the C programming language, which makes it a good choice for an introduction to computing course for engineers and scientists. Using C++, object-based design and programming can be introduced early while focusing on the basic control structures, data structures, and functions necessary for scientific programming. The features of the C programming language that make it attractive for system-level operations are supported by C++, making the latter one of the most powerful and versatile programming languages available. This text was written to introduce engineering problem solving with an object-based programming approach. Our objectives are the following:
To accomplish these objectives, Chapter 1 presents a five-step process that is used consistently in the rest of the text for solving engineering problems. Chapter 2 introduces the use of predefined objects and member functions in the discussion of data types and standard input and output. Chapters 3-5 present the fundamental capabilities of C++ for solving engineering problems, including control structures, data files, and functions. Chapters 6 and 7 present arrays and introduce the reader to function templates and the vector class. Chapter 8 is an introduction to programmer-defined classes. Chapter 9 introduces the use of pointers, dynamic memory allocation, and classes defined in the Standard C++ library to implement dynamic data structures. Chapter 10 provides a more in-depth look at classes, including overloading operators, inheritance, and virtual functions. Throughout all these chapters, we present a large number of examples from many different engineering, science, and computer science disciplines. The solutions to these examples are developed using the five-step process and Standard C++.
No prior experience with the computer is assumed. The mathematical prerequisites are college algebra and trigonometry. Of course, the initial material can be covered much faster if the student has used other computer languages or software tools.
The material in these chapters was selected to provide the basis for a one-term course in engineering and scientific computing. These chapters contain the essential topics of mathematical computations, character data, control structures, functions, arrays, classes, and pointers. Students with background in another computer language should be able to complete this material in one semester. A minimal course that provides only an introduction to C++ can be designed using the nonoptional sections of the text. (Optional sections are indicated in the Contents with an *.) Three ways to use the text, along with the recommended chapter sections, are
The chapters in this text were designed to give the instructor flexibility in the ordering of topics, especially regarding the decision of when to cover classes: before or after arrays. The introductory chapter on classes does not depend on the chapters on arrays, and the chapters on arrays do not depend on the introductory chapter on classes. The dependency chart on the next page illustrates the dependency of chapters.
The emphasis on engineering and scientific problem solving is an integral part of the text. Chapter 1 introduces a five-step process for solving engineering problems using the computer:
To reinforce the development of problem-solving skills, each of these five steps is clearly identified each time that 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.
Engineering and Scientific Applications
Throughout the text, emphasis is placed on incorporating real-world engineering and scientific examples and problems. This emphasis is centered around a theme of grand challenges, which include
Each chapter begins with a photograph and a discussion of some aspect of one of these grand challenges that provides a glimpse of some of the exciting and interesting areas in which engineers might work. Later in the chapter, we solve a problem that not only relates to the introductory problem, but also has applications in other problem solutions. The grand challenges are also referenced in many of the other examples and problems.
The statements presented and all programs developed use C++ standards developed by the International Standards Organization and American National Standards Institute (ISO/ANSI) C++ Standards committee. ISO and ANSI together have published the first international standard for the C++ programming language. By using Standard C++, students learn to write portable code that can be transferred from one computer platform to another. Many of the standard capabilities of the C++ programming language are discussed in the text. Additional components of the C++ standard library are discussed in Appendix A.
Software Engineering Concepts
Engineers and scientists are expected to develop and implement user-friendly and reusable computer solutions. Learning software engineering techniques is therefore crucial to successfully developing these computer solutions. Readability and documentation are stressed in the development of programs. Additional topics that relate to software engineering issues are discussed throughout the text and include issues such as software life cycle, portability, maintenance, modularity, recursion, abstraction, reusability, structured programming, validation, and verification.
Four Types of Problems
Learning any new skill requires practice at a number of different levels of difficulty. We have developed four types of exercises that are used throughout the text to develop problem-solving skills. The first set of exercises is Practice! problems. These are short-answer questions that relate to the section of material just presented. Most sections are immediately followed by a set of Practice! problems so that students can determine if they are ready to continue to the next section. Complete solutions to all the Practice! problems are included at the end of the text.
The Modify! problems are designed to provide hands-on experiences with the programs developed in the Problem-Solving Applied sections. In these sections, we develop a complete C++ program using the five-step process. The Modify! problems ask students to run the program (which is available on our Instructor's Resource CD) with different sets of data to test their understanding of how the program works and of the relationships among the engineering variables. These exercises also ask the students to make simple modifications to the program and then run the program to test their changes.
Most chapters end with a set of Exam Practice! problems, and every chapter includes a set of Programming Problems. The Exam Practice! problems are short-answer questions that relate to the material covered in the chapter. These problems help students determine how well they understand the features of C++ presented in the chapter. The Programming Problems are new problems that relate to a variety of engineering applications, and the level of difficulty ranges from very straightforward to longer project assignments. Each programming problem requires that the student develop a c...
"About this title" may belong to another edition of this title.
Book Description Prentice Hall, 2002. Paperback. Book Condition: New. Bookseller Inventory # P110130912662
Book Description Prentice Hall. PAPERBACK. Book Condition: New. 0130912662 New Condition. Bookseller Inventory # NEW6.0045329
Book Description Prentice Hall, 2002. Paperback. Book Condition: New. Bookseller Inventory # DADAX0130912662