TY - BOOK AU - Deitel, Paul TI - C how to program SN - 9788120340060 U1 - 005.13 PY - 2011/// CY - New Delhi PB - PHI Learning KW - Computer programming KW - C programming N1 - 1 Introduction to Computers, the Internet and the Web 1.1 Introduction 1.2 Computers: Hardware and Software 1.3 Computer Organization 1.4 Personal, Distributed and Client/Server Computing 1.5 The Internet and the World Wide Web 1.6 Machine Languages, Assembly Languages and High-Level Languages 1.7 History of C 1.8 C Standard Library 1.9 C++ 1.10 Java 1.11 Fortran, COBOL, Pascal and Ada 1.12 BASIC, Visual Basic, Visual C++, C# and .NET 1.13 Key Sofhvare Trend: Object Technology 1.14 Typical C Program Development Environment 1.15 Hardware Trends 1.16 Notes About C and This Book 1.17 Web Resources 2 Introduction to C Programming 2.1 Introduction 2.2 A Simple C Program: Printing a Line of Text 2.3 Another Simple C Program: Adding Two Integers 2.4 Memory Concepts 2.5 Arithmetic in C 2.6 Decision Making: Equality and Relational Operators 3 Structured Program Development In C 3.1 Introduction 3.2 Algorithms 3.3 Pseudocode 3.4 Control Structures 3.5 The i f Selection Statement 3.6 The i f.. .el se Selection Statement 3.7 The whi 1 e Repetition Statement 3.8 Formulating Algorithms Case Study 1: Counter-Controlled Repetition 3.9 Formulating Algorithms with Top-Down, Stepwise Refinement Case Study 2: Sentinel-Controlled Repetition 3.10 Formulating Algorithms with Top-Down, Stepwise Refinement Case Study 3: Nested Control Structures 3.11 Assignment Operators 3.12 Increment and Decrement Operators 4 C Program Control 4.1 Introduction 4.2 Repetition Essentials 4.3 Counter-Controlled Repetition 4.4 for Repetition Statement 4.5 for Statement: Notes and Observations 4.6 Examples Using the for Statement 4.7 switch Multiple-Selection Statement 4.8 do...whi 1 e Repetition Statement 4.9 break and continue Statements 4.10 Logical Operators 4.11 Confusing Equality (=) and Assignment (=) Operators 4.12 Structured Programming Summary 5 C Functions 5.1 Introduction 5.2 Program Modules in C 5.3 Math Library Fimctions 5.4 Functions 5.5 Function Definitions 5.6 Function Prototypes 5.7 Function Call Stack and Activation Records 5.8 Headers 5.9 Calling Functions By Value and By Reference 5.10 Random Number Generation 5.11 Example: A Game of Chance 5.12 Storage Classes 5.13 Scope Rules 5.14 Recursion 5.15 Example Using Recursion: Fibonacci Series 5.16 Recursion vs. Iteration 6 C Arrays 6.1 Introduction 6.2 Arrays 6.3 Defining Arrays 6.4 Array Examples 6.5 Passing Arrays to Functions 6.6 Sorting Arrays 6.7 Case Study: Computing Mean, Median and Mode Using Arrays 6.8 Searching Arrays 6.9 Multiple-Subscripted Arrays 7 C Pointers 7.1 Introduction 7.2 Pointer Variable Definitions and Initialization 7.3 Pointer Operators 7.4 Passing Arguments to Functions by Reference 7.5 Using the const Qualifier with Pointers 7^6 Bubble Sort Using Call-by-Reference 7.7 si zeof Operator y g Pointer Expressions and Pointer Arithmetic 7.9 Relationship between Pointers and Arrays 7.10 Arrays of Pointers . o . • 7.11 Case Study: Card Shuffling and Dealing Simulation 7.12 Pointers to Functions 8 C Characters and Strings 8.1 Introduction 8.2 Fundamentals of Strings and Characters 8.3 Character-Handling Libr^ 8 4 String-Conversion Functions 8^5 Standard Input/Output Library Functions 8 6 String-Manipulation Functions of the String-Handling Library 87 Comparison Functions of the String-Handling Library 8.8 Search Functions of the String-Handling Library 8!9 Memory Functions of the String-Handling Library 8.10 Other Functions of the String-Handling Library 9 C Formatted Input/Output 9.1 Introduction 9.2 Streams 9.3 Formatting Output with pri ntf 9.4 Printing Integers 9.5 Printing Floating-Point Numbers 9.6 Printing Strings and Characters 9.7 Other Conversion Specifiers 9.8 Printing with Field Widths and Precision 9.9 Using Flags in the printf Format Control String 9.10 Printing Literals and Escape Sequences 9.11 Reading Formatted Input with scanf 10 C Structures, Unions, Bit Manipulations and Enumerations 10.1 Introduction 10.2 Structure Definitions 10.3 Initializing Structures 10.4 Accessing Structure Members 10.5 Using Structures with Functions 10.6 typedef 10.7 Fjcample: High-Performance Card Shuffling and Dealing Simulation 10.8 Unions 10.9 Bitwise Operators 10.10 Bit Fields 10.11 Enumeration Constants I I C File Processing 11.1 Introduction 11.2 Data Hierarchy 11.3 Files and Streams 11.4 Creating a Sequential-Access File 11.5 Reading Data from a Sequential-Access File 11.6 Random-Access Files 11.7 Creating a Random-Access File 11.8 Writing Data Randomly to a Random-Access File 11.9 Reading Data from a Random-Access File 11.10 Case Study: Transaction-Processing Program 12 C Data Structures 12.1 Introduction 12.2 Self-Referential Structures 12.3 Dynamic Memory Allocation 12.4 Linked Lists 12.5 Stacks 12.6 Queues 12.7 Trees 13 C Preprocessor 13.1 Introduaion 13.2 #include Preprocessor Directive 13.3 #define Preprocessor Directive: Symbolic Constants 13.4 #define Preprocessor Directive: Macros 13.5 Conditional Compilation 13.6 #error and #pragnia Preprocessor Directives 13.7 # and ## Operators 13.8 Line Numbers 13.9 Predefined Symbolic Constants 13.10 Assertions 14 other C Topics 14.1 Introduction 14.2 Redirecting I/O 14.3 Variable-Length Argument Lists 14.4 Using Command-Line Arguments 14.5 Notes on Compiling Multiple-Source-File Programs 14.6 Program Termination with exit and atexit 14.7 vol ati 1 e Type Qualifier 14.8 Suffixes for Integer and Floating-Point Constants 14.9 More on Files 14.10 Signal Handling 14.11 Dynamic Memory Allocation: Functions calloc and real 1 oc 14.12 Unconditional Branching with goto 15 C++ as a Better C; Introducing Object Technology 15.1 Introduction 15.2 C++ 15.3 A Simple Program: Adding Two Integers 15.4 C++ Standard Library 15.5 Header Files 15.6 Inline Functions 15.7 References and Reference Parameters 15.8 Empty Parameter Lists 15.9 Default Arguments 15.10 Unary Scope Resolution Operator 15.11 Function Overloading 15.12 Function Templates 15.13 Introduction to Object Technology and the UML 15.14 Wrap-Up 16 Introduction to Classes and Objects 16.1 Introduction 16.2 Classes, Objects, Member Functions and Data Members 16.3 Defining a Class with a Member Function 16.4 Defining a Member Function with a Parameter 16.5 Dau Members, set Functions and get Functions 16.6 Initializing Objects with Constructors 16.7 Placing a Class in a Separate File for Reusability 16.8 Separating Interfiice from Implementation 16.9 Validating Data with rer Functions 16.10 Wrap-Up I 7 Classes: A Deeper Look, Part 1 17.1 Introduction 17.2 Time Class Case Study 17.3 Class Scope and Accessing Class Members 17.4 Separating Inter&ce from Implementation 17.5 Access Functions and Utility Functions 17.6 Time Class Case Study: Constructors with Default Arguments 17.7 Destructors 17.8 When Constructors and Destructors are Called 17.9 Time Class Case Study: A Subtle Trap—Returning a Reference to a private Data Member 17.10 Default Memberwise Assignment 17.11 Wrap-Up 18 Classes: A Deeper Look, Part 2 18.1 Introduction 18.2 const (Constant) Objects and const Member Functions 18.3 Composition: Objects as Members of Classes 18.4 f ri end Functions and f ri end Classes 18.5 Using the thi s Pointer 18.6 static Class Members 18.7 Data Abstraction and Information Hiding 18.8 Wrap-Up 19 Operator Overloading 19.1 Introduction 19.2 Fundamentals of Operator Overloading 19.3 Restrictions on Operator Overloading 19.4 Operator Functions as Class Members vs. Global Function 19.5 Overloading Stream Insertion and Stream Extraction Operators 19.6 Overloading Unary Operators 19.7 Overloading Binary Operators 19.8 Dynamic Memory Management 19.9 Case Study: Array Class 19.10 Converting betw^n T)^es 19.11 Building a String Class 19.12 Overloading ++ and — 19.13 Case Study. A Date Class 19.14 Standard Library Class string 19.15 explicit Constructors 19.16 Proxy Classes 19.17 Wrap-Up 20 Object-Oriented Programming: Inheritance 20.1 Introduction 20.2 Base Classes and Derived Classes 20.3 protected Members 20.4 Relationship between Base Classes and Derived Classes 20.4.1 Creating and Using a Commi ssi onEmpl oyee Class 20.4.2 Creating a BasePlusCommi ssi onEmpl oyee Class Without Using Inheritance 20.4.3 Creating a Commi ssi onEmpl oyee-BasePlusCommi ssi onEmpl oyet Inheritance Hierarchy 20.4.4 Commi ssi onEmployee-BasePlusCommi ssi onEmployee Inheritance Hierarchy Using protected Data 20.4.5 Commi ssi onEmployee-BasePiusCommi ssi onEmployee Inheritance Hierarchy Using private Data 20.5 Constructors and Destructors in Derived Classes 20.6 publ i c, protected and pri vate Inheritance 20.7 Software Engineering with Inheritance 20.8 Wrap-Up 21 Object-Oriented Programming: Polymorphism 21.1 Introduction 21.2 Polymorphism Examples 21.3 Relationships Among Objects in an Inheritance Hierarchy 21.3.1 Invoking Base-Class Functions from Derived-Class Objects 21.3.2 Aiming Derived-Class Pointers at Base-Class Objects 21.3.3 Derived-Class Member-Fimction Calls via Base-Class Pointers 21.3.4 Virtual Functions 21.3.5 Summary of the Allowed Assignments Between Base-Class and Derived-Class Objects and Pointers 21.4 Type Fields and swi tch Statements 21.5 Abstract Classes and Pure vi rtual Functions 21.6 Case Study: Payroll System Using Polymorphism 21.6.1 Creating Abstract Base Class Empl oyee 21.6.2 Creating Concrete Derived Class Sal an" edEmpl oyee 21.6.3 Creating Concrete Derived Class Hou rl y Empl oyee 21.6.4 Creating Concrete Derived Class Commi ssi onEmpl oyee 21.6.5 Creating Indirect Concrete Derived Class BasePI usComtni ssi onEmpI oyee 21.6.6 Demonstrating Polymorphic Processing 21.7 (Optional) Polymorphism, Virtual Functions and Dynamic Binding "Under the Hood" 21.8 Case Study: Payroll System Using Polymorphism and Runtime Type Information with Downcasting, dynami c_cast, typeid and type_info 21.9 Virtual Destructors 21.10 Wrap-Up 22 Templates 22.1 Introduction 22.2 Function Templates 22.3 Overloading Function Templates 22.4 Class Templates 22.5 Nontype Parameters and Default Types for Class Templates 22.6 Notes on Templates and Inheritance 22.7 Notes on Templates and Friends 22.8 Notes on Templates and stati c Members 22.9 Wrap-Up 23 Stream Input/Output 23.1 Introduction 23.2 Streams 23.2.1 Classic Streams vs. Standard Streams 23.2.2 iostream Library Header Files 23.2.3 Stream Input/Output Classes and Objects 23.3 Stream Output 23.3.1 Output of char * Variables 23.3.2 Character Output Using Member Function put 23.4 Stream Input 23.4.1 get and get! i ne Member Functions 23.4.2 i stream Member Functions peek, putback and i gnore 23.4.3 Type-Safe I/O 23.5 Unformatted I/O Using read, write and gcount 23.6 Introduction to Stream Manipulators 23.6.1 Integral Stream Base: dec, oct, hex and setbase 23.6.2 Floating-Point Precision (preci si on, setpreci si on) 23.6.3 Field Width (width, setw) 23.6.4 User-Defined Output Stream Manipulators 23.7 Stream Format States and Stream Manipulators 23.7.1 Trailing Zeros and Decimal Points (showpoi nt) 23.7.2 Justification (left, right and internal) 23.7.3 Padding (f i 11, setf i 11) 23.7.4 Integral Stream Base (dec, oct, hex, showbase) 23.7.5 Floating-Point Numbers; Scientific and Fixed Notation (scientific, fixed) 25.7.G Uppercase/Lowercase Control (uppercase) 23.7.7 Specifying Boolean Format (boolalpha) 23.7.8 Setting and Resetting the Format State via Member Function flags 23.8 Stream Error States 23.9 Tying an Output Stream to an Input Stream 23.10 Wrap-Up 24 Exception Handling 24.1 Introduction 24.2 Exception-Handling Overview 24.3 Example: Handling an Attempt to Divide by Zero 24.4 When to Use Exception Handling 24;5 Rethrowing an Exception 24.6 Exception Specifications 24.7 Processing Unexpected Exceptions 24.8 Stack Unwinding 24.9 Constructors, Destructors and Exception Handling 24.10 Exceptions and Inheritance 24.11 Processing new Failures 24.12 Class auto_ptr and Dynamic Memory Allocation 24.13 Standard Library Exception Hierarchy 24.14 Other Error-Handling Techniques 24.15 Wrap-Up ER -