₹895.50 ₹995.00 Save: ₹99.50 (10%)
Go to cartISBN: 9789380108506
Bind: Paperback
Year: 2010
Pages: 1070
Size: 5.5 x 8.5 Inch
Publisher: Jones & Bartlett Learning
Published in India by: Jones & Bartlett India
Exclusive Distributors: Viva Books
Sales Territory: India, Nepal, Pakistan, Bangladesh, Sri Lanka, Bhutan
Description:
Completely revised and updated with the latest version of C++, the new Fifth Edition of Programming and Problem Solving with C++ provides 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. A new Chapter on Data Structures makes this text ideal for the one-or two-term course. New Software Maintenance Case Studies teach students how to read coke in order to debug, alter, or enhance existing class or code segments.
Key features include:
Target Audience:
This text assumes no prior programming experience and is most appropriate for introductory programming courses using
Contents:
Chapter 1: Overview of Programming and Problem Solving • Overview of Programming: What Is Programming? • How Do We Write a Program? • What Is an Algorithm? • What Is a Programming Language? • How Does a Computer Run a Program? : What Does of Instruction Can Be Written in a Programming Language? • What Is Software Maintenance? • Software Maintenance Case Study: An Introduction to Software Maintenance • What's Inside the Computer? • Ethics and Responsibilities in the Computing Profession • Software Piracy: Privacy of Data • Use of Computer Resources: Software Engineering • Problem-solving Techniques • Ask Questions: Look for Things That Are Familiar: Sole by Analogy: Means-Ends Analysis: Divide and Conquer: The Building-Block Approach: Merging Solutions: Mental Blocks; The Fear of Starting: Algorithmic Problem Solving • Problem-Solving Case study: Leap Year Algorithm: Summary • Quick Check • Answers • Exam Preparation Exercise • Programming Warm-Up Exercises • Case Study Follow-Up • Line Number.
Chapter 2: C++ Syntax and Semantics, and the Program Development Process • The Elements of C++ Programs • C++ Program Structure • Syntax and Semantics • Syntax Templates • Naming Program Elements: Identifiers • Data and Data Types • Naming Elements: Declarations • Taking Action: Executable Statements • Beyond Minimalism: Adding Comments to a Program • Program Construction • Blocks (Compound Statements) • The C++ Preprocessor • Software Maintenance Case Study: Adding Titles to Names • More about Output: Creating Black Lines • Inserting Blanks within a Line • Special Characters • Program Entry, Correction, and Execution? Entering a Program • Compiling and Running a Program • Problem-Solving Case Study: Printing Chessboard • Testing and Debugging • Summary • Quick Check • Answers • Exam Preparation Exercises • Programming Warm-Up Exercises • Programming Problems • Case Study Follow-Up.
Chapter 3: Numeric Types, Expressions, and Output • Overview of C++ Data Types • Numeric Data Types • Integral Types • Floating-Point Types • Declarations for Numeric Types: Named Constant Declaration • Variable Declaration • Simple Arithmetic Expression: • Arithmetic Operators • Increment and Decrement Operators • Compound Arithmetic Expressions: Precedence Rules • Type Coercion and Types Casting • Software Maintenance Case Study: Precedence Error • Function Calls and Library Functions: Value-Returning Functions • Library Functions • Void Functions • Formation • Formatting Output: Integers and Strings • Floating-Point Numbers • Additional String Operations: The length and size Functions • The find Function • The Subset Function • Accessing Characters Within a String: The at Function • Converting to Lowercase and Uppercase • 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.
Chapter 4: Program Input and the Software Design Process • Getting Data into Programs • Input Streams and the Extraction Operator (>>) • The Reading Marker and the New line Character • Reading Character Data with the get Function • Skipping Characters with the ignore Function • Reading String Data • Interactive Input/output • No interactive Input/Out • File Input and Output: Files • Using Files • Software Maintenance Case Study: Adding File Input/output to a Program • Run-Time Input Output of File Names • Input Failure • Software Design Methodologies • Functional Decomposition • Modules • Implementing the Design • A Perspective on Design • Problem-Solving Case Study: Displaying a Name in Multiple Formats • Testing and Debugging • Testing and Debugging Hints • Summary • Quick Check • Answers • Exam Preparation Exercises • Programming Warm-Up Exercises • Programming Problems • Case Study Follow-up.
Chapter 5: Conditions, Logical Expression, and Selection Control Structures • Flow of Control • Selection • Conditions and Logical Expressions • The bolo Data Types • Logical Expressions • The if Statement • The If-Them-Else Form • Blocks (Compound Statements) • The If-Then Form • A Common Mistake • Software Maintenance Case Study: Incorrect Output • Nested IF Statements • THE Dangling else • Logical Operators • Relational Operators with Floating-Point Types • Testing the Sate of an I/O Stream • Problem-Solving Case Study: BMI Calculator • Testing and Debugging? Testing in the Problem-Solving Phase: The Algorithm Walk-Through • Testing in the Implementation Phase • The test plan • Tests Performed Automatically During Compilation and Execution • Testing and Debugging Hints • Summary • Quick Check • Answers • Exam Preparation • Programming Warm-Up Exercises • Programming Problems • Case Study Follow-up.
Chapter 6: Looping • The While Statement • Phases of Loop Execution • Loops Using The While Statements • Cont-Controlled Loops • Event-Controlled • Loops • Loping Subtasks • Software Maintenance Case Study: Make a Program General • How to Design Loops • Designing the Flow of Control • Designing the Process Within the Loop • The Loop Exit • Nested Logic • Designing Nested Loops • Problem-solving Case Study: Recording Studio Design • Testing and Debugging • Loop-Testing Strategy • Test Plans Involving Loops • Testing and Debugging Hints • Summary • Quick Check • Answers • Exam Preparation Exercises • Programming Warm-Up Exercises • Programming Problem? Case Study Follow Up.
Chapter 7: Additional Control Structures • The Switch Statement • The Do-While Statement • The For statement • Software Maintenance Case Study: Changing a Loop Implementation • The Brake and Continue Statements • Guidelines of Choosing a Looping Statement • Additional C++ Operators • Assignment Operators and Assignment Expressions • Increment and Decrement Operators • Bitwise Operators • The Cast Operation • The size Operator • The?: Operator • Operator Precedence • Type Coercion in Arithmetic and Relational Expressions • Problem-Solving Case Study: The Rich Uncle • Testing and Debugging • Testing and Debugging Hint Testing and Debugging Summary • Quick Check • Answers • Exercises Preparation Exercises • Programming Warm-Up Exercises • Programming Problems • Case Study Follow-Up,
Chapter 8: Functions • Functional Decomposition with Void Functions • When to Use Functions • Why Do Modules Need an Interface Design? • Designing Interface • Writing Modules as Void Functions • An Overview of Use-Defined Functions • Flow of Control in Function Calls • Function Parameters • Syntax and Semantics of Void Functions • Function Call (Invocation) • Function Declarations and Definitions • Local Variables • The Return Statement • Parameters • Value Parameters • Reference Parameters • Software Maintenance Case Study: Refactoring a Program • Using Expressions with Parameter • A Last Word of Caution About Argument and Parameter Lists • Writing Assertions as Function Documentation Problem-Solving Case Study: Lawn Care Company Billing • Testing and Debugging • The assert Library Function • Testing and Debugging Hints • Summary • Quick Check • Answers • Exam Preparation Exercises • Programming Warm-Up Exercises • Programming Problems • Case Study Follow-up.
Chapter 9: Scope, lifetime, and More on Functions • Scope of Identifiers • Scope Rules • Variable Declarations and Definitions • Namespaces • Lifetime of a Variable • Initializations in Declarations • Software Maintenance Case Study: Debug a Simple Program • Interface Design • Side Effects • Global Constants • Value-Returning Functions • Complete Example • Boolean Functions • Interface Design and Side Effects • When to Use Value-Returning Functions • Type Coercion in Assignments, Argument Passing, and Return of a Function Vale • Problem-Solving Case Study: Health Profile • Testing and Debugging • Stubs and Drivers • Testing and Debugging Hints • Summary • Quick Check • Answers • Exam Preparation Exercises • Programming Warm-Up Exercises • Programming Problems • Case Study Follow-up.
Chapter 10: User-Defined Data Types • Built-In Simple Types • Numeric Types • Characters • User-Defined Simple Types • The Typedef Statement • Enumeration Types • Named and Anonymous Data Types • Simple Versus Structured Data Types • Records (Structs) • Accessing Individual Components • Aggregate Operations on Structs • More About Struct Declarations • Binding Like Items • Software Maintenance Case Study: Changing a Loop Implementation • Hierarchical Records • Unions • Problem-Solving Case Study: Stylistical Analysis of Text • Testing and Debugging • Coping With Input Errors • Testing and Debugging Hints • Summary • Quick Check • Answers • Exam Preparation Exercises • Programming Warm-Up Exercises • Programming Problems • Case Study Follow-Up.
Chapter 11: Arrays • One-Dimensional Arrays • Declaring Arrays • Accessing Individual Components of an Array • Out-of-Bounds Array Indexes • Initializing Arrays in Declarations • (Lock of ) Aggregate Array Operations • Examples of Declaring and Accessing Arrays • Passing Arrays as Arguments • Commenting Arrays • Software Maintenance Case Study: Modularizing a Program • Using Typedef with Arrays • Arrays of Records • Arrays of Records • Special Kids of Array Processing • Subarray Processing • Indexes with Semantic Content • Two-Dimensional Arrays • Passing Two-Dimensional Arrays as Arguments • Processing Two-Dimensional Arrays • Sum the Rows • Sum the Columns Revised • Sum the Columns • Initialize the Array • Print the Array • Another Way of Defining Two-Dimensional Arrays • Multidimensional Arrays • Problem-Solving Case Study: Calculating Exam Statistics • Problem-Solving Case Study: Favorite Rock Group • Testing and Debugging • One-Dimensional Arrays • Complex Structures • Multidimensional Arrays • Testing and Debugging Hints • Summary • Quick Check • Answers • Exam Preparation Exercises • Programming Warm-Up Exercises • Programming Problems • Case Study Follow-up.
Chapter 12: Classes and Abstraction • Abstract Data Types • C++ Classes • Implementing the Member Functions • Classes, objects, and Members • Built-in Operations on Objects • Class Scope • Information Hiding • User-Written Header Files • Specification and Implementation Files • Compiling and Linking a Multifile Program • What Is an Object? • Class Design Principles • Encapsulation • Abstraction • Designing for Modifiability and Reuse • Mutability • Software Maintenance Case Study: Comparing Two Timeofday Objects • The Name ADT • Specification of the ADT • Implementation File? Composition • Design of an Entry Class • UML Diagrams • Diagramming a Class • Diagramming Composition of Classes • Problem-Solving Case Study: Create an Array of Name Oblects • Testing and Debugging • Testing and Debugging Hints • Summary • Quick Check • Answers • Exam Preparation Exercises • Programming Warm-Up Exercises • Programming Problems • Case Study Follow-up.
Chapter 13: Array-Based Lists • What is list? • The List as an Abstract Data Type • Refining Responsibilities • Data Representation • Example Program • Implementation of List ADT • Basic Operations • Insertion and Deletion • Sequential Search • Integrators • Software Maintenance Case Study: Enhancing Class list with a Sort • Sorted Lists • Basic Operations • Insertion • Sequential Search • Binary Search • Deletion • Sorted List of Classes • Is There • Insert and Delete • More on UML Diagrams • Problem-Solving Case Study: Calculating Exam Statistics Revisited • Testing and Debugging • Testing and Debugging Hints • Summary • Quick Check • Answers • Exam Preparation Exercises • Programming Warm-Up Exercises • Programming Problems • Case Study Follow-up.
Chapter 14: Pointes and Linked Lists • Pointers • Pointer Variables • Pointer Expressions • Reference Types • Dynamic Data • Allocating Dynamic Data • Deleting Dynamic Data • Constants and Dynamic Data • Sequential Versus Linked Structures • Creating a Dynamic Linked List: A walk: Through Example • Dynamic Implementation of ADT List • Creating an Empty Linked List • Inserting into a Linked List • Traversals of a Linked List • Deleting from a Linked List • Resetting the Linked List • Getting the Next Item • Testing for the Full Linked List • Search the List • Destructors and Copy Constructors • Destructor • Shallow Versus Deep Copying • Copy-Constructors • Sorted Linked List • Insert (20) • Insert (60) (pick up with loop) • Insert (100) • Deleting form a Linked List • Delete (30) • Delete (50) • Problem-Solving Case Study: Creating a Sorted List of Entry Objects • Testing and Debugging • Testing and Debugging Hints • Summary • Quick Check • Answers • Exam Preparation • Exercises • Programming Warm-Up Exercises • Programming Problems • Case Study Follow up.
Chapter 15: Inheritance, Polymorphism, and Object-Oriented Design • Object-Oriented Programming • Inheritance • An Analogy] • Inheritance and the Object-Oriented Design Process • Deriving One Class from Another Class • Specification of the ExpandedEntry Class • Implementation of the expanded Entry Class • Constructor Execution Order • Software Maintenance Case Study: Extending Timeofday with Support for a Time Zone • Dynamic Binding and virtual Functions: The Slicing Problem • Virtual Functions • Object-Oriented Design: Brainstorming: Filtering • Scenario Exploration • Responsibility Algorithms • A Find Word • Implementing a Design: Problem-Solving Case Study: Creating an Appointment Calendar • Testing and Debugging: Testing and Debugging Hints • Summary • Quick Check • Answers • Exam Preparation Exercises • Programming Warm-Up Exercises • Programming Problems • Case Study Follow up.
Chapter 16: Templates, Operator Overloading, and Exceptions • Template Classes • Defining a Class Template • Instantiating a Class Template • Another Way of Implementing Incoming Parameters: const References • Organization of Program Code • A Word of Caution • Generic Functions: Function Overloading • Defining a Function Template • Operator Overloading Using *this • Exceptions: The Throw Statement: The try-catch Statement: Nonlocal Exception Handlers: Rethrowing an Exception: Standard Exceptions • Software Maintenance Case Study: Adding Exceptions to the Data Class • Problem-Solving Case Study: Starship Weight and Balance • Testing and Debugging: Testing and Debugging Hints • Summary • Quick Check • Answers • Exam Preparation Exercises • Programming Warm-Up Exercises • Programming Problems Case Study Follow up.
Chapter 17: Introduction to Data Structures Using the Standard Template Library • Abstract Data Structures versus Implementations • Additional Linear Structures • Sacks • Queues • Priority Queues • Bidirectional Linear Structures: Bidirectional Lists • Defuse • An Introduction to the STL: Integrators • The vector Template • The list Template • The queue Template • The priority queue Template • The deuce Template • Software Maintenance Case Study: Appointment Calendar Using STL List • Nonlinear Structures: Binary Trees • Hash Tables • Associative Containers • The set Template • The map Template • Problem-Solving Case Study: Creating a Deck of Cards • Testing and Debugging Hints • Summary • Quick Check • Answers • Exam Preparation Exercises • Programming Warm-Up Exercises • Programming Problems • Case Study Follow up.
Chapter 18: Recursion • What Is Recursion? • Recursive Algorithms with Simple Variables • Towers of Hanoi • Recursive Algorithms with Structured Variables • Software Maintenance Case Study: Substituting Binary Search for Linear Search • Recursion Using Pointer Variables • Printing Dynamic Linked List in Reverse Order • Coping a Dynamic Linked List • Recursion or Iteration? • Problem-Solving Case Study: Quick sort • Testing and Debugging • Testing and Debugging Hints • Summary • Quick Check • Answers • Exam Preparation Exercises • Programming Warm-Up Exercises • Programming Problems • Case Study Follow up.
Chapter 2: C++ Syntax and Semantics, and the Program Development Process • The Elements of C++ Programs • C++ Program Structure • Syntax and Semantics • Syntax Templates • Naming Program Elements: Identifiers • Data and Data Types • Naming Elements: Declarations • Taking Action: Executable Statements • Beyond Minimalism: Adding Comments to a Program • Program Construction • Blocks (Compound Statements) • The C++ Preprocessor • Software Maintenance Case Study: Adding Titles to Names • More about Output: Creating Black Lines • Inserting Blanks within a Line • Special Characters • Program Entry, Correction, and Execution? Entering a Program • Compiling and Running a Program • Problem-Solving Case Study: Printing Chessboard • Testing and Debugging • Summary • Quick Check • Answers • Exam Preparation Exercises • Programming Warm-Up Exercises • Programming Problems • Case Study Follow-Up.
Chapter 3: Numeric Types, Expressions, and Output • Overview of C++ Data Types • Numeric Data Types • Integral Types • Floating-Point Types • Declarations for Numeric Types: Named Constant Declaration • Variable Declaration • Simple Arithmetic Expression: • Arithmetic Operators • Increment and Decrement Operators • Compound Arithmetic Expressions: Precedence Rules • Type Coercion and Types Casting • Software Maintenance Case Study: Precedence Error • Function Calls and Library Functions: Value-Returning Functions • Library Functions • Void Functions • Formation • Formatting Output: Integers and Strings • Floating-Point Numbers • Additional String Operations: The length and size Functions • The find Function • The Subset Function • Accessing Characters Within a String: The at Function • Converting to Lowercase and Uppercase • 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.
Chapter 4: Program Input and the Software Design Process • Getting Data into Programs • Input Streams and the Extraction Operator (>>) • The Reading Marker and the New line Character • Reading Character Data with the get Function • Skipping Characters with the ignore Function • Reading String Data • Interactive Input/output • No interactive Input/Out • File Input and Output: Files • Using Files • Software Maintenance Case Study: Adding File Input/output to a Program • Run-Time Input Output of File Names • Input Failure • Software Design Methodologies • Functional Decomposition • Modules • Implementing the Design • A Perspective on Design • Problem-Solving Case Study: Displaying a Name in Multiple Formats • Testing and Debugging • Testing and Debugging Hints • Summary • Quick Check • Answers • Exam Preparation Exercises • Programming Warm-Up Exercises • Programming Problems • Case Study Follow-up.
Chapter 5: Conditions, Logical Expression, and Selection Control Structures • Flow of Control • Selection • Conditions and Logical Expressions • The bolo Data Types • Logical Expressions • The if Statement • The If-Them-Else Form • Blocks (Compound Statements) • The If-Then Form • A Common Mistake • Software Maintenance Case Study: Incorrect Output • Nested IF Statements • THE Dangling else • Logical Operators • Relational Operators with Floating-Point Types • Testing the Sate of an I/O Stream • Problem-Solving Case Study: BMI Calculator • Testing and Debugging? Testing in the Problem-Solving Phase: The Algorithm Walk-Through • Testing in the Implementation Phase • The test plan • Tests Performed Automatically During Compilation and Execution • Testing and Debugging Hints • Summary • Quick Check • Answers • Exam Preparation • Programming Warm-Up Exercises • Programming Problems • Case Study Follow-up.
Chapter 6: Looping • The While Statement • Phases of Loop Execution • Loops Using The While Statements • Cont-Controlled Loops • Event-Controlled • Loops • Loping Subtasks • Software Maintenance Case Study: Make a Program General • How to Design Loops • Designing the Flow of Control • Designing the Process Within the Loop • The Loop Exit • Nested Logic • Designing Nested Loops • Problem-solving Case Study: Recording Studio Design • Testing and Debugging • Loop-Testing Strategy • Test Plans Involving Loops • Testing and Debugging Hints • Summary • Quick Check • Answers • Exam Preparation Exercises • Programming Warm-Up Exercises • Programming Problem? Case Study Follow Up.
Chapter 7: Additional Control Structures • The Switch Statement • The Do-While Statement • The For statement • Software Maintenance Case Study: Changing a Loop Implementation • The Brake and Continue Statements • Guidelines of Choosing a Looping Statement • Additional C++ Operators • Assignment Operators and Assignment Expressions • Increment and Decrement Operators • Bitwise Operators • The Cast Operation • The size Operator • The?: Operator • Operator Precedence • Type Coercion in Arithmetic and Relational Expressions • Problem-Solving Case Study: The Rich Uncle • Testing and Debugging • Testing and Debugging Hint Testing and Debugging Summary • Quick Check • Answers • Exercises Preparation Exercises • Programming Warm-Up Exercises • Programming Problems • Case Study Follow-Up,
Chapter 8: Functions • Functional Decomposition with Void Functions • When to Use Functions • Why Do Modules Need an Interface Design? • Designing Interface • Writing Modules as Void Functions • An Overview of Use-Defined Functions • Flow of Control in Function Calls • Function Parameters • Syntax and Semantics of Void Functions • Function Call (Invocation) • Function Declarations and Definitions • Local Variables • The Return Statement • Parameters • Value Parameters • Reference Parameters • Software Maintenance Case Study: Refactoring a Program • Using Expressions with Parameter • A Last Word of Caution About Argument and Parameter Lists • Writing Assertions as Function Documentation Problem-Solving Case Study: Lawn Care Company Billing • Testing and Debugging • The assert Library Function • Testing and Debugging Hints • Summary • Quick Check • Answers • Exam Preparation Exercises • Programming Warm-Up Exercises • Programming Problems • Case Study Follow-up.
Chapter 9: Scope, lifetime, and More on Functions • Scope of Identifiers • Scope Rules • Variable Declarations and Definitions • Namespaces • Lifetime of a Variable • Initializations in Declarations • Software Maintenance Case Study: Debug a Simple Program • Interface Design • Side Effects • Global Constants • Value-Returning Functions • Complete Example • Boolean Functions • Interface Design and Side Effects • When to Use Value-Returning Functions • Type Coercion in Assignments, Argument Passing, and Return of a Function Vale • Problem-Solving Case Study: Health Profile • Testing and Debugging • Stubs and Drivers • Testing and Debugging Hints • Summary • Quick Check • Answers • Exam Preparation Exercises • Programming Warm-Up Exercises • Programming Problems • Case Study Follow-up.
Chapter 10: User-Defined Data Types • Built-In Simple Types • Numeric Types • Characters • User-Defined Simple Types • The Typedef Statement • Enumeration Types • Named and Anonymous Data Types • Simple Versus Structured Data Types • Records (Structs) • Accessing Individual Components • Aggregate Operations on Structs • More About Struct Declarations • Binding Like Items • Software Maintenance Case Study: Changing a Loop Implementation • Hierarchical Records • Unions • Problem-Solving Case Study: Stylistical Analysis of Text • Testing and Debugging • Coping With Input Errors • Testing and Debugging Hints • Summary • Quick Check • Answers • Exam Preparation Exercises • Programming Warm-Up Exercises • Programming Problems • Case Study Follow-Up.
Chapter 11: Arrays • One-Dimensional Arrays • Declaring Arrays • Accessing Individual Components of an Array • Out-of-Bounds Array Indexes • Initializing Arrays in Declarations • (Lock of ) Aggregate Array Operations • Examples of Declaring and Accessing Arrays • Passing Arrays as Arguments • Commenting Arrays • Software Maintenance Case Study: Modularizing a Program • Using Typedef with Arrays • Arrays of Records • Arrays of Records • Special Kids of Array Processing • Subarray Processing • Indexes with Semantic Content • Two-Dimensional Arrays • Passing Two-Dimensional Arrays as Arguments • Processing Two-Dimensional Arrays • Sum the Rows • Sum the Columns Revised • Sum the Columns • Initialize the Array • Print the Array • Another Way of Defining Two-Dimensional Arrays • Multidimensional Arrays • Problem-Solving Case Study: Calculating Exam Statistics • Problem-Solving Case Study: Favorite Rock Group • Testing and Debugging • One-Dimensional Arrays • Complex Structures • Multidimensional Arrays • Testing and Debugging Hints • Summary • Quick Check • Answers • Exam Preparation Exercises • Programming Warm-Up Exercises • Programming Problems • Case Study Follow-up.
Chapter 12: Classes and Abstraction • Abstract Data Types • C++ Classes • Implementing the Member Functions • Classes, objects, and Members • Built-in Operations on Objects • Class Scope • Information Hiding • User-Written Header Files • Specification and Implementation Files • Compiling and Linking a Multifile Program • What Is an Object? • Class Design Principles • Encapsulation • Abstraction • Designing for Modifiability and Reuse • Mutability • Software Maintenance Case Study: Comparing Two Timeofday Objects • The Name ADT • Specification of the ADT • Implementation File? Composition • Design of an Entry Class • UML Diagrams • Diagramming a Class • Diagramming Composition of Classes • Problem-Solving Case Study: Create an Array of Name Oblects • Testing and Debugging • Testing and Debugging Hints • Summary • Quick Check • Answers • Exam Preparation Exercises • Programming Warm-Up Exercises • Programming Problems • Case Study Follow-up.
Chapter 13: Array-Based Lists • What is list? • The List as an Abstract Data Type • Refining Responsibilities • Data Representation • Example Program • Implementation of List ADT • Basic Operations • Insertion and Deletion • Sequential Search • Integrators • Software Maintenance Case Study: Enhancing Class list with a Sort • Sorted Lists • Basic Operations • Insertion • Sequential Search • Binary Search • Deletion • Sorted List of Classes • Is There • Insert and Delete • More on UML Diagrams • Problem-Solving Case Study: Calculating Exam Statistics Revisited • Testing and Debugging • Testing and Debugging Hints • Summary • Quick Check • Answers • Exam Preparation Exercises • Programming Warm-Up Exercises • Programming Problems • Case Study Follow-up.
Chapter 14: Pointes and Linked Lists • Pointers • Pointer Variables • Pointer Expressions • Reference Types • Dynamic Data • Allocating Dynamic Data • Deleting Dynamic Data • Constants and Dynamic Data • Sequential Versus Linked Structures • Creating a Dynamic Linked List: A walk: Through Example • Dynamic Implementation of ADT List • Creating an Empty Linked List • Inserting into a Linked List • Traversals of a Linked List • Deleting from a Linked List • Resetting the Linked List • Getting the Next Item • Testing for the Full Linked List • Search the List • Destructors and Copy Constructors • Destructor • Shallow Versus Deep Copying • Copy-Constructors • Sorted Linked List • Insert (20) • Insert (60) (pick up with loop) • Insert (100) • Deleting form a Linked List • Delete (30) • Delete (50) • Problem-Solving Case Study: Creating a Sorted List of Entry Objects • Testing and Debugging • Testing and Debugging Hints • Summary • Quick Check • Answers • Exam Preparation • Exercises • Programming Warm-Up Exercises • Programming Problems • Case Study Follow up.
Chapter 15: Inheritance, Polymorphism, and Object-Oriented Design • Object-Oriented Programming • Inheritance • An Analogy] • Inheritance and the Object-Oriented Design Process • Deriving One Class from Another Class • Specification of the ExpandedEntry Class • Implementation of the expanded Entry Class • Constructor Execution Order • Software Maintenance Case Study: Extending Timeofday with Support for a Time Zone • Dynamic Binding and virtual Functions: The Slicing Problem • Virtual Functions • Object-Oriented Design: Brainstorming: Filtering • Scenario Exploration • Responsibility Algorithms • A Find Word • Implementing a Design: Problem-Solving Case Study: Creating an Appointment Calendar • Testing and Debugging: Testing and Debugging Hints • Summary • Quick Check • Answers • Exam Preparation Exercises • Programming Warm-Up Exercises • Programming Problems • Case Study Follow up.
Chapter 16: Templates, Operator Overloading, and Exceptions • Template Classes • Defining a Class Template • Instantiating a Class Template • Another Way of Implementing Incoming Parameters: const References • Organization of Program Code • A Word of Caution • Generic Functions: Function Overloading • Defining a Function Template • Operator Overloading Using *this • Exceptions: The Throw Statement: The try-catch Statement: Nonlocal Exception Handlers: Rethrowing an Exception: Standard Exceptions • Software Maintenance Case Study: Adding Exceptions to the Data Class • Problem-Solving Case Study: Starship Weight and Balance • Testing and Debugging: Testing and Debugging Hints • Summary • Quick Check • Answers • Exam Preparation Exercises • Programming Warm-Up Exercises • Programming Problems Case Study Follow up.
Chapter 17: Introduction to Data Structures Using the Standard Template Library • Abstract Data Structures versus Implementations • Additional Linear Structures • Sacks • Queues • Priority Queues • Bidirectional Linear Structures: Bidirectional Lists • Defuse • An Introduction to the STL: Integrators • The vector Template • The list Template • The queue Template • The priority queue Template • The deuce Template • Software Maintenance Case Study: Appointment Calendar Using STL List • Nonlinear Structures: Binary Trees • Hash Tables • Associative Containers • The set Template • The map Template • Problem-Solving Case Study: Creating a Deck of Cards • Testing and Debugging Hints • Summary • Quick Check • Answers • Exam Preparation Exercises • Programming Warm-Up Exercises • Programming Problems • Case Study Follow up.
Chapter 18: Recursion • What Is Recursion? • Recursive Algorithms with Simple Variables • Towers of Hanoi • Recursive Algorithms with Structured Variables • Software Maintenance Case Study: Substituting Binary Search for Linear Search • Recursion Using Pointer Variables • Printing Dynamic Linked List in Reverse Order • Coping a Dynamic Linked List • Recursion or Iteration? • Problem-Solving Case Study: Quick sort • Testing and Debugging • Testing and Debugging Hints • Summary • Quick Check • Answers • Exam Preparation Exercises • Programming Warm-Up Exercises • Programming Problems • Case Study Follow up.
About the Author:
Nell Dale received a B.S. in Mathematics and Psychology from the University of Houston, a M.A. in Mathematics, from the University of Texas at Austin, and a Ph.D. in Computer Sciences from the University of Texas at Austin. Nell Dale has been on the faculty at the University of Texas, Austin since 1975. She teaches occasionally but concentrates computer science, education, writing, traveling, tennis, and bridge and her family of course.
About the Author:
Nell Dale received a B.S. in Mathematics and Psychology from the University of Houston, a M.A. in Mathematics, from the University of Texas at Austin, and a Ph.D. in Computer Sciences from the University of Texas at Austin. Nell Dale has been on the faculty at the University of Texas, Austin since 1975.