Starting Out with Visual C# 2010 / Edition 2

Paperback (Print)
Rent
Rent from BN.com
$30.87
(Save 75%)
Est. Return Date: 10/21/2014
Used and New from Other Sellers
Used and New from Other Sellers
from $8.99
Usually ships in 1-2 business days
(Save 92%)
Other sellers (Paperback)
  • All (11) from $8.99   
  • New (1) from $155.00   
  • Used (10) from $8.94   
Close
Sort by
Page 1 of 1
Showing All
Note: Marketplace items are not eligible for any BN.com coupons and promotions
$155.00
Seller since 2014

Feedback rating:

(164)

Condition:

New — never opened or used in original packaging.

Like New — packaging may have been opened. A "Like New" item is suitable to give as a gift.

Very Good — may have minor signs of wear on packaging but item works perfectly and has no damage.

Good — item is in good condition but packaging may have signs of shelf wear/aging or torn packaging. All specific defects should be noted in the Comments section associated with each item.

Acceptable — item is in working order but may show signs of wear such as scratches or torn packaging. All specific defects should be noted in the Comments section associated with each item.

Used — An item that has been opened and may show signs of wear. All specific defects should be noted in the Comments section associated with each item.

Refurbished — A used item that has been renewed or updated and verified to be in proper working condition. Not necessarily completed by the original manufacturer.

New
Brand new.

Ships from: acton, MA

Usually ships in 1-2 business days

  • Standard, 48 States
  • Standard (AK, HI)
Page 1 of 1
Showing All
Close
Sort by

Overview

In Starting Out With Visual C# 2010, Gaddis makes a very detailed and evenly-paced presentation of both programming and C# syntax concepts so all readers will be able to follow along. His GUI-based approach to teaching C# will resonate with students in CS, IT, and CIS courses.

Tony 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 Visual 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.

Read More Show Less

Product Details

  • ISBN-13: 9780132165457
  • Publisher: Addison-Wesley
  • Publication date: 3/1/2011
  • Series: Gaddis Series
  • Edition description: Older Edition
  • Edition number: 2
  • Pages: 792
  • Product dimensions: 8.50 (w) x 10.80 (h) x 1.30 (d)

Meet the Author

Tony Gaddis is the principal author of the Starting Out with series of textbooks. He has nearly two decades of experience teaching computer science courses, primarily at Haywood Community College. Tony is a highly acclaimed instructor who was previously selected as the North Carolina Community College Teacher of the Year, and has received the Teaching Excellence award from the National Institute for Staff and Organizational Development. The Starting Out with series includes introductory textbooks covering Programming Logic and Design, Alice, C++, Java, Microsoft Visual Basic, and Python.

Read More Show Less

Table of Contents

Preface ix
Chapter 1 Introduction to Computers and Programming 1
1.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1
1.2 Hardware and Software . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2
1.3 How Computers Store Data . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
1.4 How a Program Works . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
1.5 Graphical User Interfaces . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
1.6 Objects . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
1.7 The Program Development Process . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
1.8 Getting Started with the Visual Studio Environment . . . . . . . . . . . . . . . . . . 27
TUTORIAL 1-1: Starting Visual Studio and Setting Up the Environment . . . . . . . . . . 28
TUTORIAL 1-2: Starting a New Visual C# Project . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
TUTORIAL 1-3: Saving and Closing a Project . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33
TUTORIAL 1-4: Opening an Existing Project . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42
TUTORIAL 1-5: Getting Familiar with the Visual Studio Environment . . . . . . . . . . . 44
Key Terms 45 • Review Questions 46 • Exercises 51

Chapter 2 Introduction to Visual C# 53
2.1 Getting Started with Forms and Controls . . . . . . . . . . . . . . . . . . . . . . . . . . . 53
2.2 Creating the GUI for Your First Visual C# Application:
The Hello World Application . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62
TUTORIAL 2-1: Creating the GUI for the Hello World Application . . . . . . . . . . . . . . 63
2.3 Introduction to C# Code . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67
2.4 Writing Code for the Hello World Application . . . . . . . . . . . . . . . . . . . . . . . . 77
TUTORIAL 2-2: Writing Code for the Hello World Application . . . . . . . . . . . . . . . . 77
2.5 Label Controls . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 79
TUTORIAL 2-3: Creating the Language Translator Application . . . . . . . . . . . . . . . . . 88
2.6 Making Sense of IntelliSense . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 91
2.7 PictureBox Controls . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 92
TUTORIAL 2-4: Creating the Flags Application . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 96
TUTORIAL 2-5: Creating the Card Flip Application . . . . . . . . . . . . . . . . . . . . . . . . 100
2.8 Comments, Blank Lines, and Indentation . . . . . . . . . . . . . . . . . . . . . . . . . . 103
2.9 Writing the Code to Close an Application’s Form . . . . . . . . . . . . . . . . . . . . 106
2.10 Dealing with Syntax Errors . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 106
Key Terms 108 • Review Questions 108 • Programming Problems 113

Chapter 3 Processing Data 117
3.1 Reading Input with TextBox Controls . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 117
3.2 A First Look at Variables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 119
TUTORIAL 3-1: The Birth Date String application . . . . . . . . . . . . . . . . . . . . . . . . . 126
3.3 Numeric Data Types and Variables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 131
3.4 Performing Calculations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 136
3.5 Inputting and Outputting Numeric Values . . . . . . . . . . . . . . . . . . . . . . . . . 141
TUTORIAL 3-2: Calculating Fuel Economy . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 146
3.6 Formatting Numbers with the ToString Method . . . . . . . . . . . . . . . . . . . 149
TUTORIAL 3-3: Creating the Sale Price Calculator application with currency formatting . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 152
3.7 Simple Exception Handling . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 156
TUTORIAL 3-4: Creating the Test Average Application with Exception Handling . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 160
3.8 Using Named Constants . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 164
3.9 Declaring Variables as Fields . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 165
TUTORIAL 3-5: Creating the Change Counter Application . . . . . . . . . . . . . . . . . . . 169
3.10 Using the Math Class . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 173
3.11 More GUI Details . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 175
Key Terms 185 • Review Questions 185 • Programming Problems 190

Chapter 4 Making Decisions 195
4.1 Decision Structures and the if Statement . . . . . . . . . . . . . . . . . . . . . . . . . 195
TUTORIAL 4-1: Completing the Test Score Average application . . . . . . . . . . . . . . . 200
4.2 The if-else Statement . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 204
TUTORIAL 4-2: Completing the Payroll with Overtime application . . . . . . . . . . . . 206
4.3 Nested Decision Structures . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 210
TUTORIAL 4-3: Completing the Loan Qualifier application . . . . . . . . . . . . . . . . . . 212
4.4 Logical Operators . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 221
4.5 bool Variables and Flags . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 226
4.6 Comparing Strings . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 226
4.7 Preventing Data Conversion Exceptions with the TryParse Methods . . . . 230
TUTORIAL 4-4: Calculating Fuel Economy . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 235
4.8 Input Validation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 238
4.9 Radio Buttons and Check Boxes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 239
TUTORIAL 4-5: Creating the Color Theme application . . . . . . . . . . . . . . . . . . . . . . 244
4.10 The switch Statement . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 246
4.11 Introduction to List Boxes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 249
TUTORIAL 4-6: Creating the Time Zone application . . . . . . . . . . . . . . . . . . . . . . . . 251
Key Terms 255 • Review Questions 255 • Programming Problems 259

Chapter 5 Loops, Files, and Random Numbers 265
5.1 More About ListBoxes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 265
5.2 The while Loop . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 267
TUTORIAL 5-1: Using a Loop to Calculate an Account Balance . . . . . . . . . . . . . . . 271
TUTORIAL 5-2: Enhancing the Ending Balance Application . . . . . . . . . . . . . . . . . . 274
5.3 The ++ and -- operators . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 278
5.4 The for Loop . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 279
TUTORIAL 5-3: Using the for Loop . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 284
5.5 The do-while . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 287
5.6 Using Files for Data Storage . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 289
TUTORIAL 5-4: Writing Data to a Text File . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 295
TUTORIAL 5-5: Appending Data to the Friend.txt File . . . . . . . . . . . . . . . . . . . . . . 300
TUTORIAL 5-6: Using a Loop to Read to the End of a File . . . . . . . . . . . . . . . . . . . 308
TUTORIAL 5-7: Calculating a Running Total . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 312
5.7 The OpenFileDialog and SaveFileDialog Controls . . . . . . . . . . . . . . . . . . . . 315
5.8 Random Numbers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 321
TUTORIAL 5-8: Simulating Coin Tosses . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 323
5.9 The Load Event . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 326
TUTORIAL 5-9: Creating a Load Event Handler . . . . . . . . . . . . . . . . . . . . . . . . . . . 327
Key Terms 330 • Review Questions 330 • Programming Exercises 333

Chapter 6 Modularizing Your Code with Methods 337
6.1 Introduction to Methods . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 337
6.2 void Methods . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 339
TUTORIAL 6-1: Creating and Calling Methods . . . . . . . . . . . . . . . . . . . . . . . . . . . . 343
6.3 Passing Arguments to Methods . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 347
TUTORIAL 6-2: Passing an Argument to a Method . . . . . . . . . . . . . . . . . . . . . . . . . 350
6.4 Passing Arguments by Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 358
TUTORIAL 6-3: Using an Output Parameter . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 361
6.5 Value-Returning Methods . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 365
TUTORIAL 6-4: Writing a Value-Returning Method . . . . . . . . . . . . . . . . . . . . . . . . 370
TUTORIAL 6-5: Modularizing Input Validation with a Boolean Method . . . . . . . . . 373
Key Terms 379 • Review Questions 379 • Programming Exercises 382

Chapter 7 Arrays and Lists 387
7.1 Value Types and Reference Types . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 387
7.2 Array Basics . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 390
TUTORIAL 7-1: Using an array to hold a list of random lottery numbers . . . . . . . . 397
7.3 Working with Files and Arrays . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 402
7.4 Passing Arrays as Arguments to Methods . . . . . . . . . . . . . . . . . . . . . . . . . . 405
7.5 Some Useful Array Algorithms . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 412
TUTORIAL 7-2: Processing an Array . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 422
7.6 Advanced Algorithms for Sorting and Searching Arrays . . . . . . . . . . . . . . . 427
7.7 Two-Dimensional Arrays . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 434
TUTORIAL 7-3: Completing the Seating Chart application . . . . . . . . . . . . . . . . . . . 437
7.8 Jagged Arrays . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 443
7.9 The List Collection . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 444
TUTORIAL 7-4: Completing the Test Score List Application . . . . . . . . . . . . . . . . . . 450
Key Terms 456 • Review Questions and Exercises 456 • Programming
Exercises 459

Chapter 8 More About Processing Data 463
8.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 463
8.2 String and Character Processing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 463
TUTORIAL 8-1: Completing the Password Validation Application . . . . . . . . . . . . . 469
TUTORIAL 8-2: Completing the Telephone Format Application . . . . . . . . . . . . . . . 482
TUTORIAL 8-3: Completing the Telephone Unformat Application . . . . . . . . . . . . . 486
TUTORIAL 8-4: Completing the CSV Reader Application . . . . . . . . . . . . . . . . . . . . 493
8.3 Structures . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 498
TUTORIAL 8-5: Completing the Phonebook Application . . . . . . . . . . . . . . . . . . . . 507
8.4 Enumerated Types . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 513
TUTORIAL 8-6: Completing the Color Spectrum Application . . . . . . . . . . . . . . . . . 516
8.5 The ImageList Control . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 520
TUTORIAL 8-7: Completing the Random Card Application . . . . . . . . . . . . . . . . . . 523
Key Terms 526 • Review Questions 526 • Programming Problems 530

Chapter 9 Classes and Multiform Projects 535
9.1 Introduction to Classes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 535
TUTORIAL 9-1: Creating and Using the Coin class . . . . . . . . . . . . . . . . . . . . . . . . . 542
9.2 Properties . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 547
TUTORIAL 9-2: Creating and Using the CellPhone class . . . . . . . . . . . . . . . . . . . . 550
9.3 Parameterized Constructors and Overloading . . . . . . . . . . . . . . . . . . . . . . 555
TUTORIAL 9-3: Creating and Using the BankAccount class . . . . . . . . . . . . . . . . . . 556
9.4 Storing Class Type Objects in Arrays and Lists . . . . . . . . . . . . . . . . . . . . . 562
TUTORIAL 9-4: Completing the Cell Phone Inventory Application . . . . . . . . . . . . . 564
9.5 Finding the Classes and Their Responsibilities in a Problem . . . . . . . . . . . . 568
9.6 Creating Multiple Forms in a Project . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 576
TUTORIAL 9-5: Creating an application with two forms . . . . . . . . . . . . . . . . . . . . . 581
TUTORIAL 9-6: Accessing a Control on a Different Form . . . . . . . . . . . . . . . . . . . . 585
Key Terms 591 • Review Questions 591 • Programming Problems 595

Chapter 10 Inheritance and Polymorphism 599
10.1 Inheritance . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 599
TUTORIAL 10-1: Creating and testing the SavingsAccount and CDAccount classes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 609
10.2 Polymorphism . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 617
TUTORIAL 10-2: Completing the Polymorphism Application . . . . . . . . . . . . . . . . . 622
10.3 Abstract Classes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 627
TUTORIAL 10-3: Completing the Computer Science Student Application . . . . . . . . 629
Key Terms 634 • Review Questions 634 • Programming Exercises 637

Chapter 11 Databases 639
11.1 Introduction to Database Management Systems . . . . . . . . . . . . . . . . . . . . 639
11.2 Tables, Rows, and Columns . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 641
11.3 Creating a Database in Visual Studio . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 644
TUTORIAL 11-1: Starting the Phone Book Application and Creating the Phonelist.mdf Database . . . . . . . . . . . . . . . . . . . . . . . . . . 645
11.4 The DataGridView Control . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 652
TUTORIAL 11-2: Completing the Phone Book Application . . . . . . . . . . . . . . . . . . . 653
11.5 Connecting to an Existing Database and Using Details View Controls . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 660
TUTORIAL 11-3: Creating the Products Application and Using a Details View . . . . 661
11.6 More About Data-Bound Controls . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 670
TUTORIAL 11-4: Creating the Product Lookup Application . . . . . . . . . . . . . . . . . . 674
TUTORIAL 11-5: Creating the Multiform Products Application . . . . . . . . . . . . . . . 676
11.7 Selecting Data with the SQL Select Statement . . . . . . . . . . . . . . . . . . . . . 682
TUTORIAL 11-6: Creating the Product Queries Application . . . . . . . . . . . . . . . . . . 688
TUTORIAL 11-7: Creating the Product Queries Application . . . . . . . . . . . . . . . . . . 697
TUTORIAL 11-8: Creating the Product Search Application . . . . . . . . . . . . . . . . . . . 702
Key Terms 707 • Review Questions 707 • Programming Exercises 711

Appendix A C# Primitive Data Types . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 713
Appendix B Additional User Interface Controls . . . . . . . . . . . . . . . . . . . . . 715
Appendix C ASCII/Unicode Characters . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 735
Appendix D Answers to Checkpoint Questions . . . . . . . . . . . . . . . . . . . . . 737
Index . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 757

Read More Show Less

Customer Reviews

Be the first to write a review
( 0 )
Rating Distribution

5 Star

(0)

4 Star

(0)

3 Star

(0)

2 Star

(0)

1 Star

(0)

Your Rating:

Your Name: Create a Pen Name or

Barnes & Noble.com Review Rules

Our reader reviews allow you to share your comments on titles you liked, or didn't, with others. By submitting an online review, you are representing to Barnes & Noble.com that all information contained in your review is original and accurate in all respects, and that the submission of such content by you and the posting of such content by Barnes & Noble.com does not and will not violate the rights of any third party. Please follow the rules below to help ensure that your review can be posted.

Reviews by Our Customers Under the Age of 13

We highly value and respect everyone's opinion concerning the titles we offer. However, we cannot allow persons under the age of 13 to have accounts at BN.com or to post customer reviews. Please see our Terms of Use for more details.

What to exclude from your review:

Please do not write about reviews, commentary, or information posted on the product page. If you see any errors in the information on the product page, please send us an email.

Reviews should not contain any of the following:

  • - HTML tags, profanity, obscenities, vulgarities, or comments that defame anyone
  • - Time-sensitive information such as tour dates, signings, lectures, etc.
  • - Single-word reviews. Other people will read your review to discover why you liked or didn't like the title. Be descriptive.
  • - Comments focusing on the author or that may ruin the ending for others
  • - Phone numbers, addresses, URLs
  • - Pricing and availability information or alternative ordering information
  • - Advertisements or commercial solicitation

Reminder:

  • - By submitting a review, you grant to Barnes & Noble.com and its sublicensees the royalty-free, perpetual, irrevocable right and license to use the review in accordance with the Barnes & Noble.com Terms of Use.
  • - Barnes & Noble.com reserves the right not to post any review -- particularly those that do not follow the terms and conditions of these Rules. Barnes & Noble.com also reserves the right to remove any review at any time without notice.
  • - See Terms of Use for other conditions and disclaimers.
Search for Products You'd Like to Recommend

Recommend other products that relate to your review. Just search for them below and share!

Create a Pen Name

Your Pen Name is your unique identity on BN.com. It will appear on the reviews you write and other website activities. Your Pen Name cannot be edited, changed or deleted once submitted.

 
Your Pen Name can be any combination of alphanumeric characters (plus - and _), and must be at least two characters long.

Continue Anonymously

    If you find inappropriate content, please report it to Barnes & Noble
    Why is this product inappropriate?
    Comments (optional)