(NOTE: Each chapter begins with Objectives, an Outline, and an
Introduction and ends with a Summary, Terminology, Common
Programming Errors, Good Programming Practices, Performance Tips,
Portability Tips, Software Engineering Observations, Self-Review
Exercises, Answers to Self-Review Exercises, and Exercises.)
1. Introduction to Computers, the Internet and the
World Wide Web.
What Is a Computer? Computer
Organization. Evolution of Operating Systems. Personal Computing,
Distributed Computing and Client/Server Computing. Machine
Languages, Assembly Languages and High-Level Languages. The History
of C. The C Standard Library. The Key Software Trend: Object
Technology. C++ and C++ How to Program. Java and Java How
to Program. Other High-Level Languages. Structured Programming.
The Basics of a Typical C Program Development Environment. Hardware
Trends. History of the Internet. History of the World Wide Web.
General Notes about C and This Book.
2.
Introduction to C Programming.
A Simple C Program: Printing a Line
of Text. Another Simple C Program: Adding Two Integers. Memory
Concepts. Arithmetic in C. Decision Making: Equality and Relational
Operators.
3. Structured Program Development in C.
Algorithms. Pseudocode. Control
Structures. The if Selection Structure. The if/else
Selection Structure. The while Repetition Structure.
Formulating Algorithms: Case Study 1 (Counter-Controlled
Repetition). Formulating Algorithms with Top-Down, Stepwise
Refinement: Case Study 2 (Sentinel-Controlled Repetition).
Formulating Algorithms with Top-Down, Stepwise Refinement: Case
Study 3 (Nested Controlled Repetition). Assignment Operators.
Increment and Decrement Operators.
4. C Program
Control.
The Essentials of Repetition.
Counter-Controlled Repetition. The for Repetition Structure.
The for Structure: Notes and Observations. Examples Using the
for Structure. The switch Multiple-Selection
Structure. The do/while Repetition Structure. The
break and continue Statements. Logical Operators.
Confusing Equality (==) and Assignment (=) Operators. Structured
Programming Summary.
5. C Functions.
Program Modules in C. Math Library
Functions. Functions. Function Definitions. Function Prototypes.
Header Files. Calling Functions: Call by Value and Call by
Reference. Random Number Generation. Example: A Game of Chance.
Storage Classes. Scope Rules. Recursion. Example Using Recursion:
The Fibonacci Series. Recursion vs. Iteration.
6. C
Arrays.
Arrays. Declaring Arrays. Examples
Using Arrays. Passing Arrays to Functions. Sorting Arrays. Case
Study: Computing Mean, Median and Mode Using Arrays. Searching
Arrays. Multiple-Subscripted Arrays.
7. C Pointers.
Pointer Variable Declarations and
Initialization. Pointer Operators. Calling Functions by Reference.
Using the const Qualifier with Pointers. Bubble Sort Using
Call by Reference. Pointer Expressions and Pointer Arithmetic. The
Relationship between Pointers and Arrays. Arrays of Pointers. Case
Study: A Card Shuffling and Dealing Simulations. Pointers to
Functions.
8. C Characters and Strings.
Fundamentals of Strings and
Characters. Character Handling Library. String Conversion Functions.
Standard Input/Output Library Functions. String Manipulation
Functions of the String Handling Library. Comparison Functions of
the String Handling Library. Search Functions of the String Handling
Library. Memory Functions of the String Handling Library. Other
Functions of the String Handling Library.
9. C
Formatted Input/Output.
Streams. Formatting Output with
printf. Printing Integers. Printing Floating-Point Numbers.
Printing Strings and Characters. Other Conversion Specifiers.
Printing with Field Widths and Precisions. Using Flags in the
printf Format-Control String. Printing Literals and Escape
Sequences. Formatting Input with scanf.
10.
C Structures, Unions, Bit Manipulations, and Enumerations.
Structure Definitions. Initializing
Structures. Accessing Members of Structures. Using Structures with
Functions. typedef. Example: High-Performance Card Shuffling
and Dealing Simulation. Unions. Bitwise Operators. Bit Fields.
Enumeration Constants.
11. C File Processing.
The Data Hierarchy. Files and
Streams. Creating a Sequential-Access File. Reading Data from a
Sequential-Access File. Random-Access Files. Creating a Randomly
Accessed File. Writing Data Randomly to a Randomly Accessed File.
Reading Data Randomly from a Randomly Accessed File. Case Study: A
Transaction-Processing Program.
12. C Data
Structures.
Self-Referential Structures. Dynamic
Memory Allocation. Linked Lists. Stacks. Queues. Trees.
13. C Preprocessor.
The #include Preprocessor
Directive. The #define Preprocessor Directive: Symbolic
Constants. The #define Preprocessor Directive: Macros.
Conditional Compilation. The #error and #pragma
Preprocessor Directives. The # and ## Operators. Line
Numbers. Predefined Symbolic Constants. Assertions.
14. Advanced C Topics.
Redirecting Input/Output on UNIX and
DOS Systems. Variable-Length Argument Lists. Using Command-Line
Arguments. Notes on Compiling Multiple-Source-File Programs. Program
Termination with Exit and AtExit. The volatile Type
Qualifier. Suffixes for Integer and Floating-Point Constants. More
on Files. Signal Handling. Dynamic Memory Allocation: Functions
Calloc and Realloc. The Unconditional Branch: Goto.
15. C++ as a “Better C.”
C++. A Simple Program: Adding Two
Integers. C++ Standard Library. Header Files. Inline Functions.
References and Reference Parameters. Default Arguments and Empty
Parameter Lists. Unary Scope Resolution Operator. Function
Overloading. Function Templates.
16. C++ Classes
and Data Abstraction.
Implementing a Time Abstract Data
Type with a Class. Class Scope and Accessing Class Members.
Separating Interface from Implementation. Controlling Access to
Members. Access Functions and Utility Functions. Initializing Class
Objects: Constructors. Using Default Arguments with Constructors.
Using Destructors. When Constructors and Destructors Are Called.
Using Data Members and Member Functions. A Subtle Trap: Returning a
Reference to a private Data Member. Assignment by Default
Memberwise Copy. Software Reusability.
17. C++
Classes: Part II.
const (Constant) Objects and
const Member Functions. Composition: Objects as Members of
Classes. friend Functions and friend Classes. Using
the this Pointer. Dynamic Memory Allocation with Operators
new and delete. Static Class Members. Data
Abstraction and Information Hiding. Container Classes and Iterators.
18. C++ Operator Overloading.
Fundamentals of Operator
Overloading. Restrictions on Operator Overloading. Operator
Functions as Class Members vs. as Friend Functions. Overloading
Stream-Insertion and Stream-Extraction Operators. Overloading Unary
Operators. Overloading Binary Operators. Case Study: An Array Class.
Converting between Types. Overloading ++ and - -.
19. C++ Inheritance.
Inheritance: Base Classes and
Derived Classes. Protected Members. Casting Base-Class Pointers to
Derived-Class Pointers. Using Member Functions. Overriding
Base-Class Members in a Derived Class. Public, Protected and Private
Inheritance. Direct Base Classes and Indirect Base Classes. Using
Constructors and Destructors in Derived Classes. Implicit
Derived-Class Object to Base-Class Object Conversion. Software
Engineering with Inheritance. Composition vs. Inheritance. “Uses A”
and “Knows A” Relationships. Case Study: Point, Circle, Cylinder.
20. C++ Virtual Functions and Polymorphism.
Type Fields and switch
Statements. Virtual Functions. Abstract Base Classes and Concrete
Classes. Polymorphism. New Classes and Dynamic Binding. Virtual
Destructors. Case Study: Inheriting Interface and Implementation.
Polymorphism, virtual Functions and Dynamic Binding “Under
the Hood.”
21. C++ Stream Input/Output.
Streams. Stream Output. Stream
Input. Unformatted I/O with Read, gcount and Write. Stream
Manipulators. Stream Format States. Stream Error States. Tying an
Output Stream to an Input Stream.
22. C++
Templates.
Class Templates. Class Templates and
Nontype Parameters. Templates and Inheritance. Templates and
Friends. Templates and Static Members.
23. C++
Exception Handling.
When Exception Handling Should Be
Used. Other Error-Handling Techniques. Basics of C++ Exception
Handling: try, throw, catch. A Simple Exception-Handling
Example: Divide by Zero. Throwing an Exception. Catching an
Exception. Rethrowing an Exception. Exception Specifications.
Processing Unexpected Exceptions. Stack Unwinding. Constructors,
Destructors and Exception Handling. Exceptions and Inheritance.
Processing new Failures. Class auto_ptr and Dynamic
Memory Allocation. Standard Library Exception Hierarchy.
24. Introduction to Java Applications and Applets.
Basics of a Typical Java
Environment. General Notes about Java and This Book. A Simple
Program: Printing a Line of Text. Another Java Application: Adding
Integers. Sample Applets from the Java 2 Software Development Kit. A
Simple Java Applet: Drawing a String. Two More Simple Applets:
Drawing Strings and Lines. Another Java Applet: Adding Integers.
25. Beyond C & C++: Operators, Methods &
Arrays in Java.
Primitive Data Types and Keywords.
Logical Operators. Method Definitions. Java API Packages. Random
Number Generation. Example: A Game of Chance. Methods of Class
JApplet. Declaring and Allocating Arrays. Examples Using
Arrays. References and Reference Parameters. Multiple-Subscripted
Arrays.
26. Java Object-Based Programming.
Implementing a Time Abstract Data
Type with a Class. Class Scope. Creating Packages. Initializing
Class Objects: Constructors. Using Set and Get
Methods. Using the this Reference. Finalizers. Static Class
Members.
27. Java Object-Oriented Programming.
Superclasses and Subclasses.
protected Members. Relationship between Superclass Objects
and Subclass Objects. Implicit Subclass-Object-to-Superclass-Object
Conversion. Software Engineering with Inheritance. Composition vs.
Inheritance. Introduction to Polymorphism. Type Fields and
switch Statements. Dynamic Method Binding. Final
Methods and Classes. Abstract Superclasses and Concrete Classes.
Polymorphism Example. New Classes and Dynamic Binding. Case Study:
Inheriting Interface and Implementation. Case Study: Creating and
Using Interfaces. Inner Class Definitions. Notes on Inner Class
Definitions. Type-Wrapper Classes for Primitive Types.
28. Java Graphics and Java 2D.
Graphics Contexts and Graphics
Objects. Color Control. Font Control. Drawing Lines, Rectangles, and
Ovals. Drawing Arcs. Drawing Polygons and Polylines. The Java2D API.
Java2D Shapes.
29. Java Graphical User Interface
Components.
Swing Overview. JLabel. Event
Handling Model. JTextField and JPasswordField.
JTextArea. JButton. JCheckBox.
JComboBox. Mouse Event Handling. Layout Managers. Panels.
Creating a Self-Contained Subclass of JPanel. Windows. Using
Menus with Frames.
30. Java Multimedia: Images,
Animation and Audio.
Loading, Displaying and Scaling
Images. Loading and Playing Audio Clips. Animating a Series of
Images. Animation Issues. Customizing Applets via the HTML
param Tag. Image Maps. Java Plug-In. Internet and World Wide
Web Resources.
A. Internet and Web Resources.
C/C++ Resources. C++ Tutorials.
C/C++ FAQs. Visual C++. comp.lang.c++. C/C++ Compilers. C++
Development Tools. Java Resources. Java Products. Java FAQs. Java
Tutorials. Java Magazines. Java Applets. Multimedia. Java
Newsgroups.
B. C99 Internet and Web Resources.
C99 Resources.
C.
Operator Precedence Chart.
D. ASCII Character Set.
E. Number Systems.
Abbreviating Binary Numbers as Octal
Numbers and Hexadecimal Numbers. Converting Octal Numbers and
Hexadecimal Numbers to Binary Numbers. Converting from Binary,
Octal, or Hexadecimal to Decimal. Converting from Decimal to Binary,
Octal, or Hexadecimal. Negative Binary Numbers: Two's Complement
Notation.
Index.