|
Starting Out with C++: from Control Structures Through Objects: Brief (5th Revised International ed)
Principal author of the 'Starting Out' programming series, Tony Gaddis, has a distinguished writing style like no other that is overwhelmingly popular with beginning programmers. He motivates student learning with an accessible step-by-step way that is easy to follow and understand. In the brief version of Starting Out with C++, Gaddis takes a problem-solving
approach, inspiring students to understand the logic behind developing quality programs while introducing the C++ programming language. This style of teaching builds programming confidence and enhances each student's development of programming skills. This edition in the 'Starting Out' Series covers the core programming concepts that are introduced in the first semester introductory programming course.
Contents:
Preface CHAPTER 1 Introduction to Computers and Programming 1.1 Why Program? 1.2 Computer Systems: Hardware and Software 1.3 Programs and Programming Languages 1.4 What Is a Program Made of? 1.5 Input, Processing, and Output 1.6 The Programming Process 1.7 Procedural and Object-Oriented Programming CHAPTER 2 Introduction to C++ 2.1 The Parts of a C++ Program 2.2 The cout Object 2.3 The # include Directive 2.4 Variables and Literals 2.5 Identifiers 2.6 Integer Data Types 2.7 The char Data Type 2.8 Floating-Point Data Types 2.9 The bool Data Type 2.10 Determining the Size of a Data Type 2.11 Variable Assignments and Initialization 2.12 Scope 2.13 Arithmetic Operators 2.14 Comments 2.15 Focus on Software Engineering: Programming Style 2.16 If You Plan to Continue in Computer Science: Standard and Prestandard C++ CHAPTER 3 Expressions and Interactivity 3.1 The cin Object 3.2 Mathematical Expressions 3.3 When You Mix Apples and Oranges: Type Conversion 3.4 Overflow and Underflow 3.5 Type Casting 3.6 Named Constants 3.7 Multiple Assignment and Combined Assignment 3.8 Formatting Output 3.9 Formatted Input 3.10 Focus on Object-Oriented Programming: More About Member Functions 3.11 More Mathematical Library Functions 3.12 Focus on Debugging: Hand Tracing a Program 3.13 Focus on Problem Solving: A Case Study 3.14 Introduction to File Input and Output CHAPTER 4 Making Decisions 4.1 Relational Operators 4.2 The if Statement 4.3 Flags 4.4 Expanding the if Statement 4.5 The if/else Statement 4.6 The if/else if Statement 4.7 Using a Trailing else 4.8 Menus 4.9 Focus on Software Engineering: Nested if Statements 4.10 Logical Operators 4.11 Checking Numeric Ranges with Logical Operators 4.12 Focus on Software Engineering: Validating User Input 4.13 More About Variable Definitions and Scope 4.14 Comparing Strings 4.15 The Conditional Operator 4.16 The switch Statement 4.17 Testing for File Open Errors CHAPTER 5 Looping 5.1 The Increment and Decrement Operators 5.2 Introduction to Loops: The while Loop 5.3 Using the while Loop for Input Validation 5.4 Counters 5.5 The do-while Loop 5.6 The for Loop 5.7 Keeping a Running Total 5.8 Sentinels 5.9 Using a Loop to Read Data from a File 5.10 Focus on Software Engineering: Deciding Which Loop to Use 5.11 Nested Loops 5.12 Breaking Out of a Loop 5.13 The continue Statement CHAPTER 6 Functions 6.1 Focus on Software Engineering: Modular Programming 6.2 Defining and Calling Functions 6.3 Function Prototypes 6.4 Sending Data into a Function 6.5 Passing Data by Value 6.6 Focus on Software Engineering: Using Functions in a Menu-Driven Program 6.7 The return Statement 6.8 Returning a Value from a Function 6.9 Returning a Boolean Value 6.10 Local and Global Variables 6.11 Static Local Variables 6.12 Default Arguments 6.13 Using Reference Variables as Parameters 6.14 Overloading Functions 6.15 The exit () Function 6.16 Stubs and Drivers CHAPTER 7 Arrays 7.1 Arrays Hold Multiple Values 7.2 Accessing Array Elements 7.3 No Bounds Checking in C++ 7.4 Array Initialization 7.5 Processing Array Contents 7.6 Focus on Software Engineering: Using Parallel Arrays 7.7 Arrays as Function Arguments 7.8 Two-Dimensional Arrays 7.9 Arrays of Strings 7.10 Arrays with Three or More Dimensions 7.11 Focus on Problem Solving and Program Design: A Case Study 7.12 If You Plan to Continue in Computer Science: Introduction to the STL vector CHAPTER 8 Pointers 8.1 Getting the Address of a Variable 8.2 Pointer Variables 8.3 The Relationship Between Arrays and Pointers 8.4 Pointer Arithmetic 8.5 Initializing Pointers 8.6 Comparing Pointers 8.7 Pointers as Function Parameters 8.8 Focus on Software Engineering: Dynamic Memory Allocation 8.9 Focus on Software Engineering: Returning Pointers from Functions 8.10 Focus on Problem Solving and Program Design: A Case Study CHAPTER 9 Characters, Strings, and the string Class 9.1 Character Testing 9.2 Character Case Conversion 9.3 Review of the Internal Storage of C-Strings 9.4 Library Functions for Working with C-Strings 9.5 String/Numeric Conversion Functions 9.6 Focus on Software Engineering: Writing Your Own C-String-Handling Functions 9.7 The C++ string Class 9.8 Focus on Problem Solving and Program Design: A Case Study CHAPTER 10 Structured Data 10.1 Abstract Data Types 10.2 Focus on Software Engineering: Combining Data into Structures 10.3 Accessing Structure Members 10.4 Initializing a Structure 10.5 Arrays of Structures 10.6 Focus on Software Engineering: Nested Structures 10.7 Structures as Function Arguments 10.8 Returning a Structure from a Function 10.9 Pointers to Structures 10.10 Focus on Software Engineering: When to Use., When to Use ->, and When to Use * 10.11 Unions 10.12 Enumerated Data Types CHAPTER 11 Advanced File Operations 11.1 File Operations 11.2 File Output Formatting 11.3 Passing File Stream Objects to Functions 11.4 More Detailed Error Testing 11.5 Member Functions for Reading and Writing Files 11.6 Focus on Software Engineering: Working with Multiple Files 11.7 Binary Files 11.8 Creating Records with Structures 11.9 Random-Access Files 11.10 Opening a File for Both Input and Output CHAPTER 12 Introduction to Classes 12.1 Procedural and Object-Oriented Programming 12.2 Introduction to Classes 12.3 Defining an Instance of a Class 12.4 Why Have Private Members? 12.5 Focus on Software Engineering: Separating Class Specification from Implementation 12.6 Inline Member Functions 12.7 Constructors 12.8 Passing Arguments to Constructors 12.9 Destructors 12.10 Overloading Constructors 12.11 Private Member Functions 12.12 Arrays of Objects 12.13 Focus on Problem Solving and Program Design: An OOP Case Study 12.14 Focus on Object-Oriented Programming: Creating an Abstract Array Data Type 12.15 Focus on Object-Oriented Design: The Unified Modeling Language (UML) 12.16 Focus on Object-Oriented Design: Finding the Classes and Their Responsibilities CHAPTER 13 More About Classes 13.1 Instance and Static Members 13.2 Friends of Classes 13.3 Memberwise Assignment 13.4 Copy Constructors 13.5 Operator Overloading 13.6 Object Conversion 13.7 Aggregation 13.8 Focus on Object-Oriented Design: Class Collaborations CHAPTER 14 Inheritance, Polymorphism, and Virtual Functions 14.1 What Is Inheritance? 14.2 Protected Members and Class Access 14.3 Constructors and Destructors in Base and Derived Classes 14.4 Redefining Base Class Functions 14.5 Class Hierarchies 14.6 Polymorphism and Virtual Member Functions 14.7 Abstract Base Classes and Pure Virtual Functions 14.8 Multiple Inheritance Appendix A: The ASCII Character Set Appendix B: Operator Precedence and Associativity Index Student CD The following chapters and appendices are on the accompanying Student CD
CHAPTER B (Bonus Chapter): Searching and Sorting Arrays B-1 Focus on Software Engineering: Introduction to Search Algorithms B-2 Focus on Problem Solving and Program Design: A Case Study B-3 Focus on Software Engineering: Introduction to Sorting Algorithms B-4 Focus on Problem Solving and Program Design: A Case Study B-5 If You Plan to Continue in Computer Science: Sorting and Searching vectors Appendix C: Introduction to Flowcharting Appendix D: Using UML in Class Design Appendix E: Namespaces Appendix F: Writing Managed C++ Code for the .NET Framework Appendix G: Passing Command Line Arguments Appendix H: Header File and Library Function Reference Appendix I: Binary Numbers and Bitwise Operations Appendix J: Multi-Source File Programs Appendix K: Stream Member Functions for Formatting Appendix L: Installing and Using Borland C++ Builder 6 Appendix M: Introduction to Microsoft Visual C++ 2005 Express Edition Appendix N: Answers to Checkpoints Appendix O: Answers to Odd-Numbered Review Questions
|