C++:An Introduction to Computing, 3/e
Joel Adams, Larry Nyhoff
I think it's well written and intelligently presented. It's a good introduction not only to C++ programming, but also to computer science as a whole.
- Larry Herman, UNITEC Institute of Technology
This book has a very large number of exercises, with a large variety of types. It is one the things that attracted me to the text. I am pleased with the quantity and quality of the exercises in this book.
- Cary Laxer, Computer Science, Rose-Hulman Institute of Technology
Joel Adams and Larry Nyhoff address two key goals for first-year computing courses: to give students programming skills in a specific language, and to introduce them to the larger field of computer science. In this third edition of their best-selling book, these experienced educators offer a well-rounded approach to the methodologies and techniques of C++, while presenting students with a general overview of computing as a discipline, allowing them to put their learning into a broader context.
- Provides carefully selected Part of the Picture presentations by computing experts as an overview of the discipline of computer science
- Offers 500 Quick Quiz questions with answers and 800 written exercises to be used for written assignments
- Includes more than 300 programming problems drawn from a wide range of application areas
NEW TO THIS EDITION
- A new chapter on data structures
- Learning objectives listed at the beginning of each chapter
- End-of-chapter summaries with key words and notes to help students identify the main concepts of each chapter
- Case studies featuring problems with complete solutions, including both design and program code
- Special optional OBJECTive Thinking sections to present classes and objects
- Prentice Hall Companion Website at http://www.prenhall.com/adams and authors' website at http://cs.calvin.edu/books/c++/intro/3e/
Table of Contents
0. Beginning Snapshots.PART OF THE PICTURE: What Is Computer Science? PART OF THE PICTURE: The History of Computing. PART OF THE PICTURE: Introduction to Computer Systems.
1. Problem Solving and Software Engineering.Welcome to the World of C++. Problem Solving through Software Engineering. Case Study: Revenue Calculation. OBJECTive Thinking: Spheres As Objects. PART OF THE PICTURE: Ethics and Issues.
2. Types.Introductory Example: Computing Student Pay. Types and Declarations. PART OF THE PICTURE: Data Representation. OBJECTive Thinking: Attribute Variables.
3. Operations and Expressions.Introductory Example: Einstein's Equation. Numeric Expressions. Boolean Expressions. Character Expressions. Assignment Expressions. Input/Output Expressions. Example: Truck Fleet Accounting. OBJECTive Thinking: Initialization and Constructors.
4. Functions.Introductory Example: Temperature Conversion with Expressions. Introductory Example: Temperature Conversion with Functions. Functions That Use Selection. Functions That Use Repetition. PART OF THE PICTURE: Computability Theory. Case Study: An 8-Function Calculator. An Introduction to Libraries. OBJECTive Thinking: Class Methods.
5. Using Classes.Introductory Example: “The Farmer in the Dell.” Introduction to Classes. The istream and ostream Classes. Computing with string Objects. Case Study: Decoding Phone Numbers. PART OF THE PICTURE: Simulation. OBJECTive Thinking: Instance Methods.
6. Selection.Introductory Example: School Mascots. Selection: The if Statement. Selection: The switch Statement. Example: Computing Letter Grades. Selection: Conditional Expressions. PART OF THE PICTURE: Boolean Logic and Digital Design. PART OF THE PICTURE: Computer Architecture. OBJECTive Thinking: Mutator Methods.
7. Repetition.Introductory Example: The Punishment of Gauss. Repetition: The for Loop. Repetition: The while Loop. Repetition: The do Loop. Input Loops. Choosing the Right Loop. Case Study: Calculating Depreciation. PART OF THE PICTURE: Introduction to Algorithm Analysis. OBJECTive Thinking: Code. Reuse Through Inheritance.
8. Functions in Depth.Introductory Example: One-Step Integer Division. Parameters in Depth. Examples of Parameter Usage. Inline Functions. Scope, Overloading, and Templates. A Brief Introduction to Recursion. PART OF THE PICTURE: Numerical Methods. OBJECTive Thinking: Class Variables, Instance Variables, and Scope.
9. Files and Streams.Introductory Example: Weather Data Analysis. ifstream and ofstream Objects. Example: Scanning for a Virus. Additional Stream Features. PART OF THE PICTURE: Database Systems. OBJECTive Thinking: Objects and Streams.
10. Arrays and Vector “T” s.Introductory Example: Quality Control. C-Style Arrays. Sorting. Searching. Example: Processing Employee Information. The vector“T” Class Template. Example: Processing Test Scores. OBJECTive Thinking: Objects and Sequences.
11. Building Classes.Introductory Example: Modeling Temperatures. Designing a Class. Implementing Class. Attributes. Implementing Class Operations. Example: Retrieving Student Information. OBJECTive Thinking: Operator Overloading and Friends.
12. Enumerations.Introductory Example: Wavelengths of Colors. C-Style Enumerations. Object-Oriented Enumerations. Example: Geological Classification. PART OF THE PICTURE: The C++ Type Hierarchy. OBJECTive Thinking: Inheritance and Polymorphism.
13. Multidimensional Arrays.Introductory Example: Mileage between Cities. C-Style Multidimensional Arrays. Multidimensional vector“T” Objects. A vector “T” -Based Matrix Library. PART OF THE PICTURE: Computer Graphics. OBJECTive Thinking: The Matrix Class Revisited.
14. Pointers and Run-Time Allocation.Introduction to Pointer Variables. Run-Time Allocation Using new and delete. The STL list Class Template. Pointers and Command-Line Arguments. PART OF THE PICTURE: Algorithm Efficiency. OBJECTive Thinking: Pointers and Polymorphism.
15. Data Structures.Introductory Example: The Binary Representation of Integers. The Queue Container. Recursion Revisited. An Introduction to Trees. Trees in STL. PART OF THE PICTURE: Expert Systems.