| Preface |
|
xviii | |
| Before You Begin |
|
xxvi | |
|
|
|
1 | (17) |
|
Introducing Computers, the Internet and C# |
|
|
|
|
|
1 | (1) |
|
1.2 Computer Organization |
|
|
2 | (1) |
|
1.3 Machine Languages, Assembly Languages and High-Level Languages |
|
|
3 | (1) |
|
1.4 C, C++, Visual Basic .NET and Java |
|
|
4 | (2) |
|
|
|
6 | (1) |
|
1.6 Structured Programming |
|
|
6 | (1) |
|
1.7 Key Software Trend: Object Technology |
|
|
7 | (1) |
|
1.8 The Internet and the World Wide Web |
|
|
8 | (1) |
|
1.9 Introduction to Microsoft .NET |
|
|
9 | (1) |
|
1.10 Test-Driving the C# Drawing Application |
|
|
10 | (3) |
|
1.11 Internet and Web Resources |
|
|
13 | (1) |
|
|
|
13 | (5) |
|
|
|
18 | (23) |
|
Introducing the Visual Studio .NET IDE |
|
|
|
2.1 Test-Driving the Welcome Application |
|
|
18 | (1) |
|
2.2 Overview of the Visual Studio .NET 2003 IDE |
|
|
19 | (3) |
|
2.3 Creating a Project for the Welcome Application |
|
|
22 | (4) |
|
|
|
26 | (2) |
|
2.5 Visual Studio .NET IDE Windows |
|
|
28 | (4) |
|
|
|
28 | (1) |
|
|
|
29 | (1) |
|
|
|
30 | (2) |
|
|
|
32 | (1) |
|
|
|
33 | (1) |
|
2.8 Saving and Closing Solutions in Visual Studio .NET |
|
|
34 | (1) |
|
2.9 Internet and Web Resources |
|
|
34 | (1) |
|
|
|
35 | (6) |
|
|
|
41 | (23) |
|
Introduction to Visual Programming |
|
|
|
3.1 Test-Driving the Welcome Application |
|
|
41 | (2) |
|
3.2 Constructing the Welcome Application |
|
|
43 | (10) |
|
3.3 Objects Used in the Welcome Application |
|
|
53 | (1) |
|
|
|
54 | (10) |
|
4 Designing the Inventory Application |
|
|
64 | (18) |
|
Introducing TextBoxes and Buttons |
|
|
|
4.1 Test-Driving the Inventory Application |
|
|
64 | (2) |
|
4.2 Constructing the Inventory Application |
|
|
66 | (4) |
|
4.3 Adding Labels to the Inventory Application |
|
|
70 | (3) |
|
4.4 Adding TextBoxes and a Button to the Form |
|
|
73 | (3) |
|
|
|
76 | (6) |
|
5 Completing the Inventory Application |
|
|
82 | (28) |
|
|
|
|
5.1 Test-Driving the Inventory Application |
|
|
82 | (1) |
|
5.2 Introduction to C# Code |
|
|
83 | (8) |
|
5.3 Inserting an Event Handler |
|
|
91 | (5) |
|
5.4 Performing a Calculation and Displaying the Result |
|
|
96 | (3) |
|
5.5 Using the Debugger: Syntax Errors |
|
|
99 | (3) |
|
|
|
102 | (8) |
|
6 Enhancing the Inventory Application |
|
|
110 | (25) |
|
Introducing Variables, Memory Concepts and Arithmetic |
|
|
|
6.1 Test-Driving the Enhanced Inventory Application |
|
|
110 | (2) |
|
|
|
112 | (3) |
|
6.3 Handling the TextChanged Event |
|
|
115 | (4) |
|
|
|
119 | (1) |
|
|
|
120 | (3) |
|
6.6 Using the Debugger: Breakpoints |
|
|
123 | (4) |
|
6.7 Internet and Web Resources |
|
|
127 | (1) |
|
|
|
127 | (8) |
|
7 Wage Calculator Application |
|
|
135 | (34) |
|
Introducing Algorithms, Pseudocode and Program Control |
|
|
|
7.1 Test-Driving the Wage Calculator Application |
|
|
135 | (1) |
|
|
|
136 | (1) |
|
|
|
137 | (1) |
|
|
|
138 | (2) |
|
7.5 if Selection Statement |
|
|
140 | (3) |
|
7.6 if...else Selection Statement |
|
|
143 | (2) |
|
7.7 Constructing the Wage Calculator Application |
|
|
145 | (6) |
|
|
|
151 | (2) |
|
|
|
153 | (3) |
|
7.10 Using the Debugger: The Watch Window |
|
|
156 | (4) |
|
|
|
160 | (9) |
|
8 Dental Payment Application |
|
|
169 | (24) |
|
Introducing Checkboxes and Message Dialogs |
|
|
|
8.1 Test-Driving the Dental Payment Application |
|
|
169 | (2) |
|
8.2 Designing the Dental Payment Application |
|
|
171 | (1) |
|
|
|
172 | (3) |
|
8.4 Using a Dialog to Display a Message |
|
|
175 | (4) |
|
|
|
179 | (6) |
|
|
|
179 | (1) |
|
Using || (Logical Inclusive OR) |
|
|
180 | (1) |
|
Using ^ (Logical Exclusive OR) |
|
|
181 | (1) |
|
|
|
181 | (4) |
|
|
|
185 | (8) |
|
9 Car Payment Calculator Application |
|
|
193 | (23) |
|
Introducing the while Repetition Statement |
|
|
|
9.1 Test-Driving the Car Payment Calculator Application |
|
|
193 | (2) |
|
9.2 while Repetition Statement |
|
|
195 | (2) |
|
9.3 Constructing the Car Payment Calculator Application |
|
|
197 | (11) |
|
|
|
208 | (8) |
| 10 Class Average Application |
|
216 | (21) |
|
Introducing the do...while Repetition Statement |
|
|
|
10.1 Test-Driving the Class Average Application |
|
|
216 | (2) |
|
10.2 do...while Repetition Statement |
|
|
218 | (2) |
|
10.3 Creating the Class Average Application |
|
|
220 | (9) |
|
|
|
229 | (8) |
| 11 Interest Calculator Application |
|
237 | (25) |
|
Introducing the for Repetition Statement |
|
|
|
11.1 Test-Driving the Interest Calculator Application |
|
|
237 | (2) |
|
11.2 Essentials of Counter-Controlled Repetition |
|
|
239 | (1) |
|
11.3 Introducing the for Repetition Statement |
|
|
240 | (3) |
|
11.4 Examples Using the for Statement |
|
|
243 | (1) |
|
11.5 Constructing the Interest Calculator Application |
|
|
244 | (9) |
|
|
|
253 | (9) |
| 12 Security Panel Application |
|
262 | (25) |
|
Introducing the switch Multiple-Selection Statement |
|
|
|
12.1 Test-Driving the Security Panel Application |
|
|
262 | (2) |
|
12.2 Introducing the switch Multiple-Selection Statement |
|
|
264 | (3) |
|
12.3 Constructing the Security Panel Application |
|
|
267 | (12) |
|
|
|
279 | (8) |
| 13 Enhancing the Wage Calculator Application |
|
287 | (27) |
|
|
|
|
13.1 Test-Driving the Enhanced Wage Calculator Application |
|
|
287 | (1) |
|
|
|
288 | (1) |
|
|
|
289 | (9) |
|
13.4 Using Methods in the Wage Calculator Application |
|
|
298 | (6) |
|
13.5 Using the Debugger: Debug Toolbar |
|
|
304 | (3) |
|
|
|
307 | (7) |
| 14 Shipping Time Application |
|
314 | (28) |
|
Using DateTimes and Timers |
|
|
|
14.1 Test-Driving the Shipping Time Application |
|
|
314 | (1) |
|
|
|
315 | (2) |
|
Declaring a DateTime Variable |
|
|
316 | (1) |
|
|
|
316 | (1) |
|
14.3 Building the Shipping Time Application: Design Elements |
|
|
317 | (6) |
|
14.4 Creating the Shipping Time Application: Inserting Code |
|
|
323 | (11) |
|
|
|
334 | (8) |
| 15 Fund Raiser Application |
|
342 | (23) |
|
Introducing Scope and Pass-by-Reference |
|
|
|
15.1 Test-Driving the Fund Raiser Application |
|
|
342 | (2) |
|
|
|
344 | (2) |
|
15.3 Constructing the Fund Raiser Application |
|
|
346 | (6) |
|
15.4 Passing Arguments: Pass-by-Value vs. Pass-by-Reference |
|
|
352 | (6) |
|
|
|
358 | (7) |
| 16 Craps Game Application |
|
365 | (24) |
|
Introducing Random-Number Generation |
|
|
|
16.1 Test-Driving the Craps Game Application |
|
|
365 | (2) |
|
16.2 Random-Number Generation |
|
|
367 | (2) |
|
16.3 Using Enumerations in the Craps Game Application |
|
|
369 | (4) |
|
16.4 Using Random Numbers in the Craps Game Application |
|
|
373 | (10) |
|
|
|
383 | (6) |
| 17 Flag Quiz Application |
|
389 | (32) |
|
Introducing One-Dimensional Arrays and ComboBoxes |
|
|
|
17.1 Test-Driving the Flag Quiz Application |
|
|
389 | (2) |
|
|
|
391 | (2) |
|
17.3 Declaring and Allocating Arrays |
|
|
393 | (2) |
|
17.4 Constructing the Flag Quiz Application |
|
|
395 | (13) |
|
|
|
408 | (5) |
|
|
|
413 | (8) |
| 18 Student Grades Application |
|
421 | (23) |
|
Introducing Two-Dimensional Arrays and RadioButtons |
|
|
|
18.1 Test-Driving the Student Grades Application |
|
|
421 | (2) |
|
18.2 Two-Dimensional Rectangular Arrays |
|
|
423 | (1) |
|
|
|
424 | (3) |
|
18.4 Inserting Code into the Student Grades Application |
|
|
427 | (10) |
|
|
|
437 | (7) |
| 19 Microwave Oven Application |
|
444 | (45) |
|
Building Your Own Classes and Objects |
|
|
|
19.1 Test-Driving the Microwave Oven Application |
|
|
444 | (3) |
|
19.2 Designing the Microwave Oven Application |
|
|
447 | (5) |
|
19.3 Adding a New Class to the Project |
|
|
452 | (2) |
|
19.4 Initializing Class Objects: Constructors |
|
|
454 | (2) |
|
|
|
456 | (5) |
|
19.6 Completing the Microwave Oven Application |
|
|
461 | (6) |
|
19.7 Controlling Access to Members |
|
|
467 | (9) |
|
19.8 Using the Debugger: The Autos and Locals Windows |
|
|
476 | (3) |
|
|
|
479 | (10) |
| 20 Shipping Hub Application |
|
489 | (34) |
|
Introducing Collections, the foreach Statement and Access Keys |
|
|
|
20.1 Test-Driving the Shipping Hub Application |
|
|
489 | (3) |
|
|
|
492 | (1) |
|
20.3 Using the Tabindex and TabStop Properties |
|
|
493 | (2) |
|
|
|
495 | (1) |
|
|
|
496 | (1) |
|
20.6 Shipping Hub Application: Using the ArrayList Class |
|
|
496 | (9) |
|
20.7 The foreach Repetition Statement |
|
|
505 | (9) |
|
|
|
514 | (9) |
| 21 "Cat and Mouse" Painter Application |
|
523 | (25) |
|
Introducing the Graphics Object and Mouse Events |
|
|
|
21.1 Test-Driving the Painter Application |
|
|
523 | (2) |
|
21.2 Constructing the PainterApplication |
|
|
525 | (1) |
|
21.3 Using a Graphics Object |
|
|
526 | (2) |
|
21.4 Handling the MouseDown Event |
|
|
528 | (3) |
|
21.5 Handling the MouseUp Event |
|
|
531 | (2) |
|
21.6 Handling the MouseMove Event |
|
|
533 | (2) |
|
21.7 Distinguishing Between Mouse Buttons |
|
|
535 | (5) |
|
|
|
540 | (8) |
| 22 Typing Application |
|
548 | (38) |
|
Introducing Keyboard Events, Menus and Dialogs |
|
|
|
22.1 Test-Driving the Typing Application |
|
|
548 | (3) |
|
22.2 Analyzing the Typing Application |
|
|
551 | (1) |
|
|
|
552 | (5) |
|
|
|
557 | (20) |
|
|
|
577 | (9) |
| 23 Screen Scraping Application |
|
586 | (21) |
|
Introducing string Processing |
|
|
|
23.1 Test-Driving the Screen Scraping Application |
|
|
586 | (2) |
|
23.2 Fundamentals of strings |
|
|
588 | (1) |
|
23.3 Analyzing the Screen Scraping Application |
|
|
589 | (1) |
|
23.4 Locating Substrings in strings |
|
|
590 | (3) |
|
23.5 Extracting Substrings from strings |
|
|
593 | (1) |
|
23.6 Replacing Substrings in strings |
|
|
594 | (2) |
|
23.7 Other String Methods |
|
|
596 | (4) |
|
|
|
600 | (7) |
| 24 Ticket Information Application |
|
607 | (40) |
|
Introducing Sequential Access Files |
|
|
|
24.1 Test-Driving the Ticket Information Application |
|
|
607 | (2) |
|
|
|
609 | (2) |
|
|
|
611 | (1) |
|
24.4 Writing to a File: Creating the Write Event Application |
|
|
611 | (13) |
|
24.5 Building the Ticket Information Application |
|
|
624 | (14) |
|
|
|
638 | (9) |
| 25 ATM Application |
|
647 | (42) |
|
Introducing Database Programming |
|
|
|
25.1 Test-Driving the ATM Application |
|
|
647 | (3) |
|
25.2 Planning the ATM Application |
|
|
650 | (2) |
|
25.3 Creating Database Connections |
|
|
652 | (14) |
|
25.4 Programming the ATM Application |
|
|
666 | (13) |
|
|
|
679 | (10) |
| 26 Check Writer Application |
|
689 | (34) |
|
Introducing Graphics and Printing |
|
|
|
26.1 Test-Driving the Check Writer Application |
|
|
689 | (3) |
|
|
|
692 | (1) |
|
26.3 Constructing the Check Writer Application |
|
|
693 | (2) |
|
26.4 PrintPreviewDialogs and PrintDocuments |
|
|
695 | (1) |
|
26.5 Creating an Event Handler for the Check Writer Application |
|
|
696 | (4) |
|
26.6 Graphics Objects: Colors, Lines and Shapes |
|
|
700 | (2) |
|
|
|
700 | (1) |
|
Drawing Lines, Rectangles and Ovals |
|
|
701 | (1) |
|
26.7 Printing Each Control of the Check Writer Application |
|
|
702 | (3) |
|
|
|
705 | (1) |
|
26.9 Previewing and Printing the Check |
|
|
706 | (9) |
|
|
|
715 | (8) |
| 27 Phone Book Application |
|
723 | (29) |
|
Introducing Multimedia Using Microsoft Agent |
|
|
|
|
|
723 | (1) |
|
27.2 Downloading Microsoft Agent Components |
|
|
724 | (2) |
|
27.3 Test-Driving the Phone Book Application |
|
|
726 | (2) |
|
27.4 Constructing the Phone Book Application |
|
|
728 | (16) |
|
|
|
744 | (8) |
| 28 Bookstore Application: Web Applications |
|
752 | (22) |
|
Introducing Internet Information Services |
|
|
|
28.1 Multi-Tier Architecture |
|
|
752 | (1) |
|
|
|
753 | (2) |
|
28.3 Internet Information Services (IIS) |
|
|
755 | (10) |
|
28.4 Test-Driving the Bookstore Application |
|
|
765 | (4) |
|
|
|
769 | (5) |
| 29 Bookstore Application: Client Tier |
|
774 | (26) |
|
|
|
|
29.1 Analyzing the Bookstore Application |
|
|
774 | (1) |
|
|
|
775 | (5) |
|
29.3 Designing the Books .aspx Page |
|
|
780 | (5) |
|
29.4 Designing the BookInformation Page |
|
|
785 | (5) |
|
|
|
790 | (10) |
| 30 Bookstore Application: Information Tier |
|
800 | (14) |
|
Examining the Database and Creating Database Components |
|
|
|
30.1 Reviewing the Bookstore Application |
|
|
800 | (1) |
|
30.2 Information Tier: Database |
|
|
801 | (1) |
|
30.3 Using the Server Explorer and Query Builder in ASPX Pages |
|
|
802 | (8) |
|
|
|
810 | (4) |
| 31 Bookstore Application: Middle Tier |
|
814 | (25) |
|
Introducing Code-Behind Files |
|
|
|
31.1 Reviewing the Bookstore Application |
|
|
814 | (1) |
|
31.2 Programming the Books Page's Code-Behind File |
|
|
815 | (6) |
|
31.3 Programming the BookInformation Page's Code-Behind File |
|
|
821 | (9) |
|
31.4 Internet and Web Resources |
|
|
830 | (1) |
|
|
|
830 | (9) |
| 32 Enhanced Car Payment Calculator Application |
|
839 | (18) |
|
Introducing Exception Handling |
|
|
|
32.1 Test-Driving the Enhanced Car Payment Calculator Application |
|
|
839 | (3) |
|
32.2 Introduction to Exception Handling |
|
|
842 | (1) |
|
32.3 Exception Handling in C# |
|
|
843 | (1) |
|
32.4 Constructing the Enhanced Car Payment Calculator Application |
|
|
844 | (7) |
|
|
|
851 | (6) |
| A Operator Precedence Chart |
|
857 | (2) |
| B ASCII Character Set |
|
859 | (1) |
| C GUI Design Guidelines |
|
860 | (4) |
| D Visual Studio .NET Windows Form Designer Tools |
|
864 | (4) |
|
D.1 Internet and Web Resources |
|
|
867 | (1) |
| E Controls, Events, Properties & Methods |
|
868 | (21) |
| F Keyword Chart |
|
889 | (1) |
| G Internet Information Services (IIS) Setup Instructions |
|
890 | (4) |
|
|
|
890 | (4) |
| Glossary |
|
894 | (15) |
| Index |
|
909 | |