Visual C# fourth Edition

profileBull9
Chapter_03.ppt

Chapter 3

Processing Data

Copyright © 2017 Pearson Education, Inc.

Copyright © 2017 Pearson Education, Inc.

Topics

  • 3.1 Reading Input with TextBox Controls
  • 3.2 A First Look at Variables
  • 3.3 Numeric Data Type and Variables
  • 3.4 Performing Calculations
  • 3.5 Inputting and Outputting Numeric Values
  • 3.6 Formatting Numbers with the ToString Method
  • 3.7 Simple Exception Handling
  • 3.8 Using Named Constants
  • 3.9 Declaring Variables as Fields
  • 3.10 Using the Math Class
  • 3.11 More GUI Details
  • 3.12 Using the Debugger to Locate Logic Errors

Copyright © 2017 Pearson Education, Inc.

Copyright © 2017 Pearson Education, Inc.

3.1 Reading Input with TextBox Control

  • TextBox control
  • a rectangular area
  • can accept keyboard input from the user
  • locates in the Common Control group of the Toolbox
  • double click to add it to the form
  • default name is textBoxn

where n is 1, 2, 3, …

Copyright © 2017 Pearson Education, Inc.

Copyright © 2017 Pearson Education, Inc.

The Text Property

  • A TextBox controls Text property stores the user inputs
  • Text property accepts only string values, e.g.

textBox1.Text = "Hello";

  • To clear the content of a TextBox control, assign an empty string("")

textBox1.Text = "";

Copyright © 2017 Pearson Education, Inc.

Copyright © 2017 Pearson Education, Inc.

3.2 A First Look at Variables

  • A variable is a storage location in memory
  • Variable name represents the memory location
  • In C#, you must declare a variable in a program before using it to store data
  • The syntax to declare variables is:

DataType VaraibleName;

Copyright © 2017 Pearson Education, Inc.

Copyright © 2017 Pearson Education, Inc.

Data Types

  • A C# variable must be declared with a proper data type
  • The data type specifies the type of data a variable can hold
  • C# provides many data type known as primitive data types
  • they store fundamental types of data
  • such as strings and integers

Copyright © 2017 Pearson Education, Inc.

Copyright © 2017 Pearson Education, Inc.

Variable Names

  • A variable name identifies a variable
  • Always choose a meaningful name for variables
  • Basic naming conventions are:
  • the first character must be a letter (upper or lowercase) or an underscore (_)
  • the name cannot contain spaces
  • do not use C# keywords or reserved words

Copyright © 2017 Pearson Education, Inc.

Copyright © 2017 Pearson Education, Inc.

String Variables

  • String is a combination of characters
  • A variable of the string data type can hold any combination of characters, such as names, phone numbers, and social security numbers
  • Value of a string variable is assigned on the right of = operator surrounded by a pair of double quotes:

productDescription = "Italian Espresso Machine";

  • The following assigns the productDescription string to a Label control named productLabel:

productLabel = productDescription;

  • You can also display a string variable in a Message Box:

MessageBox.Show(productDescription);

Copyright © 2017 Pearson Education, Inc.

Copyright © 2017 Pearson Education, Inc.

String Concatenation

  • Concatenation is the appending of one string to the end of another string
  • C# uses + operator for concatenation:

string message;

Message = "Hello " + "world";

  • Concatenation can happen between a string and another data type
  • int and string
  • double and string

12 + " apples";

"Total is " + 25.75;

Copyright © 2017 Pearson Education, Inc.

Copyright © 2017 Pearson Education, Inc.

Declaring Variables Before Using Them

  • You can declare variables and use them later

private void showNameButton_Click(object sender, EventArgs e)

{

// Declare a string variable to hold the full name.

string fullName;

// Combine the names, with a space between them. Assign the

// result to the fullName variable.

fullName = firstNameTextBox.Text + " " + lastNameTextBox.Text;

// Display the fullName variable in the fullNameLabel control.

fullNameLabel.Text = fullName;

}

Copyright © 2017 Pearson Education, Inc.

Copyright © 2017 Pearson Education, Inc.

Local Variables and Scope

  • A local variable belongs to the method in which it was declared
  • Only statements inside that method can access the variable
  • Scope describes the part of a program in which a variable may be accessed
  • Lifetime of a variable is the time period during which the variable exists in memory while the program is executing

Copyright © 2017 Pearson Education, Inc.

private void firstButton_Click(object sender, EventArgs e)

{

string myName;

myName = nameTextBox.Text;

}

private void secondButton_Click(object sender, EventArgs e)

{

outputLabel.Text = myName;

}

ERROR!

Copyright © 2017 Pearson Education, Inc.

Rules of Variables

  • You can assign a value to a variable only if the value is compatible with the variable's data type

string employeeID;

employeeID = 125;

  • A variable holds one value at a time
  • In C#, a variable must be assigned a value before it can be used. You can initialize the variable with a value when you declare it.

string productDescription = "Chocolate Truffle";

  • Multiple variables with the same type may be declared with one statement

string lastName, firstName, middleName;

Copyright © 2017 Pearson Education, Inc.

Copyright © 2017 Pearson Education, Inc.

3.3 Numeric Data Types and Variables

  • If you need to store a number in a variable and use the number in a mathematical operation, the variable must be of a numeric data type
  • Commonly used C# numeric data types:
  • int: whole number in the range of -2,147,483,648 to 2,147,483,647
  • double: real numbers including numbers with fractional parts
  • Numeric literals is a number that is written into a program's code:

int hoursWorked = 40;

Or

double temperature = 87.6;

  • The value cannot be surrounded by quotes

Copyright © 2017 Pearson Education, Inc.

Copyright © 2017 Pearson Education, Inc.

The decimal Data Type

  • In C#, the decimal keyword indicates a 128-bit data type
  • Compared to double types, it has more precision and a smaller range, which makes it appropriate for financial and monetary calculations.
  • Be sure to add the letter M (or m) to a decimal value:

decimal payRate = 28.75m;

decimal price = 8.95M;

Copyright © 2017 Pearson Education, Inc.

Copyright © 2017 Pearson Education, Inc.

Explicit Conversion with Cast Operators

  • C# allows you to explicitly convert among types, which is known as type casting
  • You can use the cast operator which is simply a pair of parentheses with the type keyword in it

Copyright © 2017 Pearson Education, Inc.

int wholeNumber;

decimal moneyNumber = 4500m;

wholeNumber = (int) moneynumber;

double realNUmber;

decimal moneyNUmber = 625.70m;

realNumber = (double) moneyNumber;

Copyright © 2017 Pearson Education, Inc.

3.4 Performing Calculations

  • Basic calculations such as arithmetic calculation can be performed by math operators

Copyright © 2017 Pearson Education, Inc.

Operator Name of the operator Description
+ Addition Adds two numbers
- Subtraction Subtracts one number from another
* Multiplication Multiplies one number by another
/ Division Divides one number by another and gives the quotient
% Modulus Divides one number by another and gives the remainder

Copyright © 2017 Pearson Education, Inc.

Rules for Performing Calculations

  • A math expression performs a calculation and gives a value

int x = 5, y = 4;

MessageBox.Show((x+y).ToString());

  • Be sure to follow the order of operations and group with parentheses if necessary

result = (a + b) / 4;

  • In a calculation of mixed data type, the data type of the result is determined by:
  • When an operation involves an int and a double, int is treated as double and the result is double
  • When an operation involves an int and a decimal, int is treated as decimal and the result is decimal
  • An operation involving a double and a decimal is not allowed.

Copyright © 2017 Pearson Education, Inc.

Copyright © 2017 Pearson Education, Inc.

Integer Division

  • When you divide an integer by an integer in C#, the result is always given as an integer. The result of the following is 2.

int x = 7, y = 3;

MessageBox.Show((x / y).ToString());

  • This is known as integer division. To avoid it:

int x = 7, y = 3;

MessageBox.Show(((double) x / (double) y).ToString());

Copyright © 2017 Pearson Education, Inc.

Copyright © 2017 Pearson Education, Inc.

3.5 Inputting and Outputting Numeric Values

  • Input collected from the keyboard are considered combinations of characters (or string literals) even if they look like a number to you
  • A TextBox control reads keyboard input, such as 25.65. However, the TextBox treats it as a string, not a number.
  • In C#, use the following Parse methods to convert string to numeric data types
  • int.Parse
  • double.Parse
  • decimal.Parse
  • Examples:

int hoursWorked = int.Parse(hoursWorkedTextBox1.Text);

double temperature = double.Parse(temperatureTextBox.Text);

Copyright © 2017 Pearson Education, Inc.

Copyright © 2017 Pearson Education, Inc.

Displaying Numeric Values

  • The Text property of a control only accepts string literals
  • To display a number in a TextBox or Label control requires you to convert a numeric data to string type
  • In C#, all variables work with ToString method that can convert variables' values to string:

decimal grossPay = 1550.0m;

grossPayLabel.Text = grossPay.ToString();

int myNumber = 123;

MessageBox.Show(myNumber.ToString());

  • Another option is "implicit string conversion with the + operator":

int idNumber = 1044;

String output = "Your ID number is " + idNumber;

Copyright © 2017 Pearson Education, Inc.

Copyright © 2017 Pearson Education, Inc.

3.6 Formatting Numbers with the ToString Method

  • The ToString method can optionally format a number to appear in a specific way
  • The following table lists the "format strings" and how they work with sample outputs

Copyright © 2017 Pearson Education, Inc.

Format String Description Number ToString() Result
"N" or "n" Number format 12.3 ToString("n3") 12.300
"F" or "f" Fixed-point scientific format 123456.0 ToString("f2") 123456.00
"E" or "e" Exponential scientific format 123456.0 ToString("e3") 1.235e+005
"C" or "c" Currency format -1234567.8 ToString("C") ($1,234,567.80)
"P" or "p" Percentage format .234 ToString("P") 23.40%

Copyright © 2017 Pearson Education, Inc.

3.7 Simple Exception Handling

  • An exception is an unexpected error that happens while a program is running
  • If an exception is not handled by the program, the program will abruptly halt
  • C# allows you to write codes that responds to exceptions. Such codes are known as exception handlers.
  • In C# the structure is called a try-catch statement

try { }

catch { }

  • The try block is where you place the statements that could have exception
  • The catch block is where you place statements as response to the exception when it happens

Copyright © 2017 Pearson Education, Inc.

Copyright © 2017 Pearson Education, Inc.

Throwing an Exception

  • In the following example, the user may entered invalid data (e.g. null) to the milesText control. In this case, an exception happens (which is commonly said to "throw an exception").
  • The program then jumps to the catch block.
  • You can use the following

to display an exception's

default error message:

catch (Exception ex)

{

MessageBox.Show(ex.Message);

}

Copyright © 2017 Pearson Education, Inc.

try

{

double miles;

double gallons;

double mpg;

miles = double.Parse(milesTextBox.Text);

gallons = double.Parse(gallonsTextBox.Text);

mpg = miles / gallons;

mpgLabel.Text = mpg.ToString();

}

catch

{

MessageBox.Show("Invalid data was entered.");

}

Copyright © 2017 Pearson Education, Inc.

3.8 Using Named Constants

  • A number constant is a name that represents a value that cannot be changed during the program's execution
  • In C# a constant can be declared by const keyword

const double INTEREST_RATE = 0.129;

  • Writing the name of a constant in uppercase letters is traditional in many programming languages, but is not a requirement.

Copyright © 2017 Pearson Education, Inc.

Copyright © 2017 Pearson Education, Inc.

3.9 Declaring Variables as Fields

  • A field is a variable that is declared at the class level
  • It is declared inside the class, but not inside of any method
  • A field is a special type of variable
  • A field's scope is the entire
    class
  • In the Field Demo application,

the name variable is a field

Copyright © 2017 Pearson Education, Inc.

public partial class Form1 : Form

{

// Declare a private field to hold a name.

private string name = "Charles";

public Form1()

{

InitializeComponent();

}

private void showNameButton_Click(object sender, EventArgs e)

{

MessageBox.Show(name);

}

private void chrisButton_Click(object sender, EventArgs e)

{

name = "Chris";

}

private void carmenButton_Click(object sender, EventArgs e)

{

name = "Carmen";

}

}

  • The name field is created in
    memory when the Form1 form
    is created

private string name = "Charles";

Copyright © 2017 Pearson Education, Inc.

3.10 Using the Math Class

  • The .NET Framework's Math class provides several methods for performing complex mathematical calculations
  • Math.Sqrt(x): returns the square root of x (a double).
  • Math.Pow(x, y): returns the value of x raised to the power of y. Both x and y are double.
  • There are two predefined constants:
  • Math.PI: represents the ratio of the circumference of a circle to its diameter.
  • Math.E: represents the natural logarithmic base

Copyright © 2017 Pearson Education, Inc.

Copyright © 2017 Pearson Education, Inc.

3.11 More GUI Details – Tab Order

  • When an application is running, one of the form's controls always has the focus
  • Focus means a control receives the user's keyboard input
  • When a button is focused, pressing the Enter key can execute the button's Click event handler
  • The order in which controls receives the focus is called the tab order
  • When the user presses the tab key to select controls, the program will follow the tab order
  • The TabIndex property contains a numeric value indicating the control's position in the tab order
  • The value starts with 0. The index of first control is 0, the nth control is n-1.

Copyright © 2017 Pearson Education, Inc.

Copyright © 2017 Pearson Education, Inc.

Tab Order (Cont'd)

  • To set the tab order of a control, click Tab Order on the View menu. This activates the tab-order selection mode on the form.
  • Simply click the controls with the mouse in the order you want.
  • Notice that Label controls do not accept input from the keyboard. They cannot receive focus.
  • Their TabIndex values are irrelevant

Copyright © 2017 Pearson Education, Inc.

Copyright © 2017 Pearson Education, Inc.

Tab Order (Cont'd)

  • You can use the Focus method to change the focus using the following syntax

ControlName.Focus();

  • The following changes the focus to nameTextBox when the user clicks clearButton:

private void clearButton_Click(object sender, EventArgs e)

{

nameTextBox.Focus();

}

Copyright © 2017 Pearson Education, Inc.

Copyright © 2017 Pearson Education, Inc.

Assign Keyboard Access Key to Buttons

  • An access key (or mnemonic) is a key that is pressed in combination with the Alt key to quickly access a control
  • You can assign an access key to a button's Text property by adding an ampersand (&) before a letter

E&xit

  • The user can use a keystroke Alt + X or Alt + x.
  • Access key does not distinguish between uppercase and lowercase

Copyright © 2017 Pearson Education, Inc.

Copyright © 2017 Pearson Education, Inc.

Setting Colors

  • Forms and most controls have a BackColor property
  • Controls that can display Text also have a ForeColor property
  • These color-related properties support a drop-down list of colors
  • The list has tree tabs:
  • Custom: display a color palette
  • Web: list colors displayed with consistency in Web browsers
  • System: list colors defined in current Windows
  • You can set colors in color
  • The .NET Framework provides numerous values that represent colors

messageLable.BackColor = Color.Black;

messageLable.ForeColor = Color.Yellow;

Copyright © 2017 Pearson Education, Inc.

Copyright © 2017 Pearson Education, Inc.

Background Images for Forms

  • A Form has a property named BackgroundImage that is similar to the Image property of a PictureBox.
  • Simply import an image to the Select Resource window
  • A Form also has a BackgroundImageLayout property that is similar to the SizeMode property of a PictureBox.
  • Choose from one of the following options

Copyright © 2017 Pearson Education, Inc.

Tile

Center

None

Stretch

Zoom

Copyright © 2017 Pearson Education, Inc.

GroupBoxes vs. Panels

  • A GroupBox control is a container with a thin border and an optional title that can hold other controls
  • A Panel control is also a container that can hold other controls
  • There are several primary differences between a Panel and GroupBox:
  • A panel cannot display a title and does not have a Text property, but a GroupBox supports these two properties.
  • A panel's border can be specified by its BorderStyle property, while the GroupBox cannot be

Copyright © 2017 Pearson Education, Inc.

Copyright © 2017 Pearson Education, Inc.

3.12 Using the Debugger to Locate Logic Errors

  • A logic error is a mistake that does not prevent an application from running, but causes the application to produce incorrect results.
  • Mathematical errors
  • Assigning a value to the wrong variable
  • Assigning the wrong value to a variable
  • etc.
  • Finding and fixing a logic error usually requires a bit of detective work.
  • Visual Studio provides debugging tools that make locating logic errors easier.

Copyright © 2017 Pearson Education, Inc.

Copyright © 2017 Pearson Education, Inc.

Breakpoints

  • A breakpoint is a line you select in your source code.
  • When the application is running and it reaches a breakpoint, the application pauses and enters break mode.
  • While the application is paused, you may examine variable contents and the values stored in certain control properties.

Copyright © 2017 Pearson Education, Inc.

Copyright © 2017 Pearson Education, Inc.

Breakpoints

Copyright © 2017 Pearson Education, Inc.

Copyright © 2017 Pearson Education, Inc.

Break Mode

  • In Break mode, to examine the contents of a variable or control property, hover the cursor over the variable or the property's name in the Code editor.

Copyright © 2017 Pearson Education, Inc.

Copyright © 2017 Pearson Education, Inc.

Autos, Locals, and Watch Windows

  • The Autos window displays a list of the variables appearing in the current statement, the three statements before, and the three statements after the current statement. The current value and the data type of each variable are also displayed.
  • The Locals window displays a list of all the variables in the current procedure. The current value and the data type of each variable are also displayed.
  • The Watch window allows you to add the names of variables you want to watch. This window displays only the variables you have added. Visual Studio lets you open multiple Watch windows.
  • You can open any of these windows by clicking Debug on the menu bar, then selecting Windows, and then selecting the window that you want to open.

Copyright © 2017 Pearson Education, Inc.

Copyright © 2017 Pearson Education, Inc.

The Locals Window

Copyright © 2017 Pearson Education, Inc.

Local variables

Current values

Copyright © 2017 Pearson Education, Inc.

Single-Stepping

  • Visual Studio allows you to single-step through an application's code once its execution has been paused by a breakpoint.
  • This means that the application's statements execute one at a time, under your control.
  • After each statement executes, you can examine variable and property values.
  • This process allows you to identify the line or lines of code causing the error.

Copyright © 2017 Pearson Education, Inc.

Copyright © 2017 Pearson Education, Inc.

Single-Stepping

  • To single-step, do any of the following:
  • Press F11 on the keyboard, or
  • Click the Step Into command on the toolbar, or
  • Click Debug on the menu bar, and then select Step Into from the Debug menu

Copyright © 2017 Pearson Education, Inc.

Copyright © 2017 Pearson Education, Inc.