Book description
The best-selling Programming and Problem Solving with C++, now in it's Sixth Edition, remains the clearest introduction to C++, object-oriented programming, and software development available. Renowned author team Nell Dale and Chip Weems are careful to include all topics and guidelines put forth by the ACM/IEEE to make this text ideal for the one- or two-term CS1 course. Their philosophy centers on making the difficult concepts of computer science programming accessible to all students, while maintaining the breadth of detail and topics covered.
Key Features:
-The coverage of advanced object-oriented design and data structures has been moved to later in the text.
-Provides the highly successful concise and student-friendly writing style that is a trademark for the Dale/Weems textbook series in computer science.
-Introduces C++ language constructs in parallel with the appropriate theory so students see and understand its practical application.
-Strong pedagogical elements, a hallmark feature of Dale/Weems' successful hands-on teaching approach, include Software Maintenance case studies, Problem-Solving case studies, Testing & Debugging exercises, Exam Preparation exercises, Programming Warm-up exercises, Programming Problems, Demonstration Projects, and Quick Check exercises.
-A complete package of student and instructor resources include a student companion website containing all the source code for the programs and exercises in the text, additional appendices with C++ reference material and further discussion of topics from the text, and a complete digital lab manual in C++. Instructors are provided all the solutions to the exercises in the text, the source code, a Test Bank, and PowerPoint Lecture Outlines organized by chapter.
Table of contents
- Cover
- Title Page
- Copyright
- Contents
- Preface
-
1 Overview of Programming and Problem Solving
- 1.1 Overview of Programming
- 1.2 How Does a Computer Run a Program?
- Software Maintenance Case Study: An Introduction to Software Maintenance
- 1.3 What’s Inside the Computer?
- 1.4 Ethics and Responsibilities in the Computing Profession
- 1.5 Problem-Solving Techniques
- Problem-Solving Case Study: Leap Year Algorithm
- Summary
- Quick Check Answers
- Exam Preparation Exercises
- Programming Warm-Up Exercises
- Case Study Follow-Up
- Line Number
-
2 C++ Syntax and Semantics, and the Program Development Process
- 2.1 The Elements of C++ Programs
- 2.2 Program Construction
- Software Maintenance Case Study: Adding Titles to Names
- 2.3 More About Output
- 2.4 Program Entry, Correction, and Execution
- Problem-Solving Case Study: Printing a Chessboard
- Testing and Debugging
- Summary
- Quick Check Answers
- Exam Preparation Exercises
- Programming Warm-Up Exercises
- Programming Problems
- Case Study Follow-Up
-
3 Numeric Types, Expressions, and Output
- 3.1 Overview of C++ Data Types
- 3.2 Numeric Data Types
- 3.3 Declarations for Numeric Types
- 3.4 Simple Arithmetic Expressions
- 3.5 Compound Arithmetic Expressions
- Software Maintenance Case Study: Precedence Error
- 3.6 Function Calls and Library Functions
- 3.7 Formatting Output
- 3.8 Additional string Operations
- Problem-Solving Case Study: Mortgage Payment Calculator
- Testing and Debugging
- Summary
- Quick Check Answers
- Exam Preparation Exercises
- Programming Warm-Up Exercises
- Programming Problems
- Case Study Follow-Up
-
4 Program Input and the Software Design Process
- 4.1 Getting Data into Programs
- 4.2 Interactive Input/Output
- 4.3 Noninteractive Input/Output
- 4.4 File Input and Output
- Software Maintenance Case Study: Adding File Input/Output to a Program
- 4.5 Input Failure
- 4.6 Software Design Methodologies
- 4.7 Functional Decomposition
- Problem-Solving Case Study: Displaying a Name in Multiple Formats
- Testing and Debugging
- Summary
- Quick Check Answers
- Exam Preparation Exercises
- Programming Warm-Up Exercises
- Programming Problems
- Case Study Follow-Up
-
5 Conditions, Logical Expressions, and Selection Control Structures
- 5.1 Flow of Control
- 5.2 Conditions and Logical Expressions
- 5.3 The If Statement
- Software Maintenance Case Study: Incorrect Output
- 5.4 Nested If Statements
- 5.5 Logical Operators
- 5.6 Testing the State of an I/O Stream
- Problem-Solving Case Study: BMI Calculator
- Testing and Debugging
- Summary
- Quick Check Answers
- Exam Preparation Exercises
- Programming Warm-Up Exercises
- Programming Problems
- Case Study Follow-Up
-
6 Looping
- 6.1 The While Statement
- 6.2 Phases of Loop Execution
- 6.3 Loops Using the While Statement
- Software Maintenance Case Study: Make a Program General
- 6.4 How to Design Loops
- 6.5 Nested Logic
- Problem-Solving Case Study: Recording Studio Design
- Testing and Debugging
- Summary
- Quick Check Answers
- Exam Preparation Exercises
- Programming Warm-Up Exercises
- Programming Problems
- Case Study Follow-Up
-
7 Additional Control Structures
- 7.1 The Switch Statement
- 7.2 The Do-While Statement
- 7.3 The For Statement
- Software Maintenance Case Study: Changing a Loop Implementation
- 7.4 The Break and Continue Statements
- 7.5 Guidelines for Choosing a Looping Statement
- 7.6 Additional C++ Operators
- Problem-Solving Case Study: The Rich Uncle
- Testing and Debugging
- Summary
- Quick Check Answers
- Exam Preparation Exercises
- Programming Warm-Up Exercises
- Programming Problems
- Case Study Follow-Up
-
8 Functions
- 8.1 Functional Decomposition with Void Functions
- 8.2 An Overview of User-Defined Functions
- 8.3 Syntax and Semantics of Void Functions
- 8.4 Parameters
- Software Maintenance Case Study: Refactoring a Program
- Problem-Solving Case Study: Lawn Care Company Billing
- Testing and Debugging
- Summary
- Quick Check Answers
- Exam Preparation Exercises
- Programming Warm-Up Exercises
- Programming Problems
- Case Study Follow-Up
-
9 Scope, Lifetime, and More on Functions
- 9.1 Scope of Identifiers
- 9.2 Lifetime of a Variable
- Software Maintenance Case Study: Debug a Simple Program
- 9.3 Interface Design
- 9.4 Value-Returning Functions
- 9.5 Type Coercion in Assignments, Argument Passing, and Return of a Function Value
- Problem-Solving Case Study: Health Profile
- Testing and Debugging
- Summary
- Quick Check Answers
- Exam Preparation Exercises
- Programming Warm-Up Exercises
- Programming Problems
- Case Study Follow-Up
-
10 User-Defined Data Types
- 10.1 Built-In Simple Types
- 10.2 User-Defined Simple Types
- 10.3 Simple Versus Structured Data Types
- 10.4 Records (Structs)
- Software Maintenance Case Study: Changing a Loop Implementation
- 10.5 Hierarchical Records
- 10.6 Unions
- 10.7 Pointers
- 10.8 Reference Types
- Problem-Solving Case Study: Stylistical Analysis of Text
- Testing and Debugging
- Summary
- Quick Check Answers
- Exam Preparation Exercises
- Programming Warm-Up Exercises
- Programming Problems
- Case Study Follow-Up
-
11 Arrays
- 11.1 One-Dimensional Arrays
- Software Maintenance Case Study: Modularizing a Program
- 11.2 Arrays of Records
- 11.3 Special Kinds of Array Processing
- 11.4 Two-Dimensional Arrays
- 11.5 Passing Two-Dimensional Arrays as Arguments
- 11.6 Processing Two-Dimensional Arrays
- 11.7 Another Way of Defining Two-Dimensional Arrays
- 11.8 Multidimensional Arrays
- Problem-Solving Case Study: Calculating Exam Statistics
- Problem-Solving Case Study: Favorite Rock Group
- Testing and Debugging
- Summary
- Quick Check Answers
- Exam Preparation Exercises
- Programming Warm-Up Exercises
- Programming Problems
- Case Study Follow-Up
-
12 Classes and Abstraction
- 12.1 Abstract Data Types
- 12.2 C++ Classes
- 12.3 Information Hiding
- 12.4 What Is an Object?
- 12.5 Class Design Principles
- Software Maintenance Case Study: Comparing Two TimeOfDay Objects
- 12.6 The Name ADT
- 12.7 Composition
- 12.8 UML Diagrams
- Problem-Solving Case Study: Create an Array of Name Objects
- Testing and Debugging
- Summary
- Quick Check Answers
- Exam Preparation Exercises
- Programming Warm-Up Exercises
- Programming Problems
- Case Study Follow-Up
-
13 Array-Based Lists
- 13.1 What Is a List?
- 13.2 The List as an Abstract Data Type
- 13.3 Implementation of List ADT
- Software Maintenance Case Study: Enhancing Class List with a Sort
- 13.4 Sorted Lists
- 13.5 Sorted List of Classes
- 13.6 More on UML Diagrams
- Problem-Solving Case Study: Calculating Exam Statistics Revisited
- Testing and Debugging
- Summary
- Quick Check Answers
- Exam Preparation Exercises
- Programming Warm-Up Exercises
- Programming Problems
- Case Study Follow-Up
-
14 Dynamic Data and Linked Lists
- 14.1 Dynamic Data
- 14.2 Sequential Versus Linked Structures
- 14.3 Creating a Dynamic Linked List: A Walk-Through Example
- 14.4 Dynamic Implementation of ADT List
- 14.5 Destructors and Copy Constructors
- 14.6 Sorted Linked List
- Problem-Solving Case Study: Creating a Sorted List of Entry Objects
- Testing and Debugging
- Summary
- Quick Check Answers
- Exam Preparation Exercises
- Programming Warm-Up Exercises
- Programming Problems
- Case Study Follow-Up
-
15 Inheritance, Polymorphism, and Object-Oriented Design
- 15.1 Object-Oriented Programming
- 15.2 Inheritance
- Software Maintenance Case Study: Extending TimeOfDay with Support for a Time Zone
- 15.3 Dynamic Binding and Virtual Functions
- 15.4 Object-Oriented Design
- 15.5 Implementing a Design
- Problem-Solving Case Study: Creating an Appointment Calendar
- Testing and Debugging
- Summary
- Quick Check Answers
- Exam Preparation Exercises
- Programming Warm-Up Exercises
- Programming Problems
- Case Study Follow-Up
-
16 Templates, Operator Overloading, and Exceptions
- 16.1 Template Classes
- 16.2 Generic Functions
- 16.3 Operator Overloading
- 16.4 Exceptions
- Software Maintenance Case Study: Adding Exceptions to the Date Class
- Problem-Solving Case Study: Starship Weight and Balance
- Testing and Debugging
- Summary
- Quick Check Answers
- Exam Preparation Exercises
- Programming Warm-Up Exercises
- Programming Problems
- Case Study Follow-Up
-
17 Introduction to Data Structures Using the Standard Template Library
- 17.1 Abstract Data Structures versus Implementations
- 17.2 Additional Linear Structures
- 17.3 Bidirectional Linear Structures
- 17.4 An Introduction to the STL
- Software Maintenance Case Study: Appointment Calendar Using STL List
- 17.5 Nonlinear Structures
- 17.6 Associative Containers
- Problem-Solving Case Study: Creating a Deck of Cards
- Testing and Debugging
- Summary
- Quick Check Answers
- Exam Preparation Exercises
- Programming Warm-Up Exercises
- Programming Problems
- Case Study Follow-Up
-
18 Recursion
- 18.1 What Is Recursion?
- 18.2 Recursive Algorithms with Simple Variables
- 18.3 Towers of Hanoi
- 18.4 Recursive Algorithms with Structured Variables
- Software Maintenance Case Study: Substituting Binary Search for Linear Search
- 18.5 Recursion Using Pointer Variables
- 18.6 Recursion or Iteration?
- Problem-Solving Case Study: Quicksort
- Testing and Debugging
- Summary
- Quick Check Answers
- Exam Preparation Exercises
- Programming Warm-Up Exercises
- Programming Problems
- Case Study Follow-Up
-
Appendices
- Appendix A: Reserved Words
- Appendix B: Operator Precedence
- Appendix C: A Selection of Standard Library Routines
- Appendix D: Using This Book with a Prestandard Version of C++
- Appendix E: Character Sets
- Appendix F: Program Style, Formatting, and Documentation
- Appendix G: More on Floating-Point Numbers
- Appendix H: Using C Strings
- Appendix I: C++ char Constants
- Index
Product information
- Title: Programming and Problem Solving with C++: Comprehensive, 6th Edition
- Author(s):
- Release date: March 2013
- Publisher(s): Jones & Bartlett Learning
- ISBN: 9781449694272
You might also like
book
Programming and Problem Solving with C++: Brief, 6th Edition
Based off the best-selling Programming and Problem Solving with C++, which Dale is famous for, the …
book
Programming and Problem Solving with C++: Brief Edition, 5th Edition
Based off the highly successful Programming and Problem Solving with C++ which Dale is famous for, …
book
Programming and Problem Solving with C++, 5th Edition
Completely revised and updated with the latest version of C++, the new Fifth Edition of Programming …
book
Exploring C++ 11, Second Edition
Exploring C++ divides C++ up into bite-sized chunks that will help you learn the language one …