Starting Out with C++
BeschreibungTony Gaddis's accessible, step-by-step presentation helps beginning students understand the important details necessary to become skilled programmers at an introductory level. Gaddis motivates the study of both programming skills and the C++ programming language by presenting all the details needed to understand the "how" and the "why"--but never losing sight of the fact that most beginners struggle with this material. His approach is both gradual and highly accessible, ensuring that students understand the logic behind developing high-quality programs. In Starting Out with C++: From Control Structures through Objects, Gaddis covers control structures, functions, arrays, and pointers before objects and classes. As with all Gaddis texts, clear and easy-to-read code listings, concise and practical real-world examples, and an abundance of exercises appear in every chapter. This text is intended for either a one-semester accelerated introductory course or a traditional two-semester sequence covering C++ programming.
InhaltsverzeichnisChapter 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 Searching and Sorting Arrays 8.1 Focus on Software Engineering: Introduction to Search Algorithms 8.2 Focus on Problem Solving and Program Design: A Case Study 8.3 Focus on Software Engineering: Introduction to Sorting Algorithms 8.4 Focus on Problem Solving and Program Design: A Case Study 8.5 If You Plan to Continue in Computer Science: Sorting and Searching vectors Chapter 9 Pointers 9.1 Getting the Address of a Variable 9.2 Pointer Variables 9.3 The Relationship Between Arrays and Pointers 9.4 Pointer Arithmetic 9.5 Initializing Pointers 9.6 Comparing Pointers 9.7 Pointers as Function Parameters 9.8 Focus on Software Engineering: Dynamic Memory Allocation 9.9 Focus on Software Engineering: Returning Pointers from Functions 9.10 Focus on Problem Solving and Program Design: A Case Study Chapter 10 Characters, Strings, and the string Class 10.1 Character Testing 10.2 Character Case Conversion 10.3 Review of the Internal Storage of C-Strings 10.4 Library Functions for Working with C-Strings 10.5 String/Numeric Conversion Functions 10.6 Focus on Software Engineering: Writing Your Own C-String-Handling Functions 10.7 The C++ string Class 10.8 Focus on Problem Solving and Program Design: A Case Study Chapter 11 Structured Data 11.1 Abstract Data Types 11.2 Focus on Software Engineering: Combining Data into Structures 11.3 Accessing Structure Members 11.4 Initializing a Structure 11.5 Arrays of Structures 11.6 Focus on Software Engineering: Nested Structures 11.7 Structures as Function Arguments 11.8 Returning a Structure from a Function 11.9 Pointers to Structures 11.10 Focus on Software Engineering: When to Use.,When to Use ->, and When to Use * 11.11 Unions 11.12 Enumerated Data Types Chapter 12 Advanced File Operations 12.1 File Operations 12.2 File Output Formatting 12.3 Passing File Stream Objects to Functions 12.4 More Detailed Error Testing 12.5 Member Functions for Reading and Writing Files 12.6 Focus on Software Engineering: Working with Multiple Files 12.7 Binary Files 12.8 Creating Records with Structures 12.9 Random-Access Files 12.10 Opening a File for Both Input and Output Chapter 13 Introduction to Classes 13.1 Procedural and Object-Oriented Programming 13.2 Introduction to Classes 13.3 Defining an Instance of a Class 13.4 Why Have Private Members? 13.5 Focus on Software Engineering: Separating Class Specification from Implementation 13.6 Inline Member Functions 13.7 Constructors 13.8 Passing Arguments to Constructors 13.9 Destructors 13.10 Overloading Constructors 13.11 Private Member Functions 13.12 Arrays of Objects 13.13 Focus on Problem Solving and Program Design: An OOP Case Study 13.14 Focus on Object-Oriented Programming: Creating an Abstract Array Data Type 13.15 Focus on Object-Oriented Design: The Unified Modeling Language (UML) 13.16 Focus on Object-Oriented Design: Finding the Classes and Their Responsibilities Chapter 14 More About Classes 14.1 Instance and Static Members 14.2 Friends of Classes 14.3 Memberwise Assignment 14.4 Copy Constructors 14.5 Operator Overloading 14.6 Object Conversion 14.7 Aggregation 14.8 Focus on Object-Oriented Design: Class Collaborations Chapter 15 Inheritance, Polymorphism, and Virtual Functions 15.1 What Is Inheritance? 15.2 Protected Members and Class Access 15.3 Constructors and Destructors in Base and Derived Classes 15.4 Redefining Base Class Functions 15.5 Class Hierarchies 15.6 Polymorphism and Virtual Member Functions 15.7 Abstract Base Classes and Pure Virtual Functions 15.8 Multiple Inheritance Chapter 16 Exceptions, Templates, and the Standard Template Library (STL) 16.1 Exceptions 16.2 Function Templates 16.3 Focus on Software Engineering: Where to Start When Defining Templates 16.4 Class Templates 16.5 Introduction to the Standard Template Library (STL) Chapter 17 Linked Lists 17.1 Introduction to the Linked List ADT 17.2 Linked List Operations 17.3 A Linked List Template 17.4 Variations of the Linked List 17.5 The STL list Container Chapter 18 Stacks and Queues 18.1 Introduction to the Stack ADT 18.2 Dynamic Stacks 18.3 The STL stack Container 18.4 Introduction to the Queue ADT 18.5 Dynamic Queues 18.6 The STL deque and queue Containers Chapter 19 Recursion 19.1 Introduction to Recursion 19.2 Solving Problems with Recursion 19.3 Focus on Problem Solving and Program Design: The Recursive gcd Function 19.4 Focus on Problem Solving and Program Design: Solving Recursively Defined Problems 19.5 Focus on Problem Solving and Program Design: Recursive Linked List Operations 19.6 Focus on Problem Solving and Program Design: A Recursive Binary Search Function 19.7 The Towers of Hanoi 19.8 Focus on Problem Solving and Program Design: The QuickSort Algorithm 19.9 Exhaustive Algorithms 19.10 Focus on Software Engineering: Recursion vs. Iteration Chapter 20 Binary Trees 20.1 Definition and Applications of Binary Trees 20.2 Binary Search Tree Operations 20.3 Template Considerations for Binary Search Trees Appendices Appendix A: The ASCII Character Set Appendix B: Operator Precedence and Associativity Index Student CD The following appendices are on the accompanying Student CD. 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
PortraitTony Gaddis is the lead author of the Starting Out withseries including Starting Out with Alice, C++, Java(t), Visual Basic(R) 2008, Programming Logic & Design, and Python. Visit the Gaddis Books website for more information on Gaddis' titles. Gaddis teaches computer science courses at Haywood Community College in North Carolina. He previously taught programming for several corporations and government agencies, including NASA's Kennedy Space Center. Gaddis is a highly acclaimed instructor who was selected as the North Carolina Community College "Teacher of the Year" in 1994, and who received the Teaching Excellence award from the National Institute for Staff and Organizational Development in 1997.
Untertitel: From Control Structures Through Objects. 6th revised United States ed. CDROM. Sprache: Englisch.
Verlag: Addison Wesley
Erscheinungsdatum: Mai 2008
Seitenanzahl: 1245 Seiten