PPT 03

advertisement
CIS162AD – C#
Formatting and Exceptions
03_exceptions.ppt
Overview of Topics
 Hardware
 Information Processing Cycle
 Text Boxes - for input and output
 Numeric input and output
 Handling Exceptions
 IPO Charts
CIS162AD
2
A Computer is an electronic device consisting of
hardware.
 Input Devices
– Keyboard
– Mouse
– Scanner
 Storage Devices
– Hard drive
– Diskette
– Zip Disk
 Output Devices
– Console (Display)
– Printer
 Internally
– Central Processing Unit
(CPU)
– Memory (RAM)
CIS162AD
3
Hardware Model
CPU
Input Devices
Memory (RAM)
The hardware configuration is used to
support the Information Processing Cycle.
CIS162AD
Output Devices
Storage Devices
4
Information Processing Cycle
Input
Raw Data
Process
(Application)
Output from one process can
serve as input to another process.
CIS162AD
Output
Information
Storage
5
What do we need to operate
the hardware and transform
data into information?
Software!
CIS162AD
6
Software: Two Major Categories
 Operating System (OS)
– Software that allocates and monitors computer
resources including memory allocation, storage,
and security.
 Application Software
– Software used to process raw data into
information.
– We will be developing applications using C#.
CIS162AD
7
Input/Output
 Recall the Information Processing Cycle
Input
Process
Output
 We need a user interface to get their Input
and to display processing results as Output.
 We use variables to store the values entered
by the user and to store the results of the
processing.
 In C#, textboxes and labels are the most
common control objects used to facilitate I/O.
CIS162AD
8
Input/Output in C#
 Contents of a textbox is always a String.
 Use the Text property to get or put values.
 Numbers are also entered as Strings through textboxes.
 The String must be converted to a number before
being assigned to a numeric variable, and before being
used in a arithmetic expression.
 Each datatype has a Parse method for conversion.
 To display a number in a label or textbox it must be
converted from a number to a String.
 Use built-in function ToString.
CIS162AD
9
Example All Together
int intQty;
decimal decPrice;
decimal decSubtotal;
//input
intQty = int.Parse(txtQuantity.Text);
decPrice = decimal.Parse(txtPrice.Text);
//process
decSubtotal = intQty * decPrice;
//output
lblSubtotal.Text = decSubtotal.ToString(“C”);
CIS162AD
10
Handling Exceptions
 When numeric data is requested from the user things
can go wrong.
 The conversion method (Parse) will fail if the user
enters nonnumeric data or leaves the textbox blank.
 Each of these situations will cause a run-time error.
 Each of these situations throws an exception before
the run-time error is display.
 We can catch the exception with a Try/Catch Block.
 Catching the exception allows us to handle the error
gracefully.
CIS162AD
11

Try
/
Catch
Blocks
Enclose any statements that might cause an error in a try/catch block.
try
{
intQty = int.Parse(txtQuantity.Text)
}
catch (Exception exc)
{
MessageBox.Show(“Data Entry Error.”)
}
finally
{
txtQuantity.Focus( )
}



Use catch section to handle the error.
Create a local object (exc) of type Exception for processing.
Use finally for statements that should be executed whether or not
an exception occurred. finally section is optional.
CIS162AD
12
Exception Classes
 Exception classes can be used to catch specific errors.
– InvalidCastException – failure of conversion function.
– ArithmeticException – a calculation error
– OutOfMemoryException – not enough memory
– Exception – use to handle any exceptions not coded.
– Use Message property to display error message when an
unexpected error is generated.
 try
intQty = int.Parse(txtQuanityty.Text)
catch (InvalidCastException exc)
MessageBox.Show(“Data Entry Error.”)
catch (Exception exc)
MessageBox.Show(“Unexpected Error: ” & exc.Message)
finally
CIS162AD
13
MessageBox Object
 A message can be displayed to users in a message
box, which is a special type of window.
 MessageBox.Show(text, titlebar, buttons, icon)
– Text is the message displayed to the user.
– Titlebar is used to provide a title for the window.
– Buttons is used to specify the buttons that should be
displayed (OK, Cancel, Retry, Yes, No, etc.)
– Icon is used to specify what icon to display in front of the
message (Error, Hand, Information, None, Warning, etc.)
 Text is required, but the other parameters are optional.
CIS162AD
14
Method Overloading
 Method Overloading occurs when methods have the
same name but different number or type of parameters.
 The Show method for MessageBox is defined many
different ways.
 The same method name can be used because the
argument list for each version makes it unique. This is
referred to as the method’s signature.
 Every method must have a unique signature.
 This is a feature of object-oriented programming.
CIS162AD
15
IPO Charts
 Input, Processing, and Output (IPO)
 When designing a program, we usually begin
with the end in mind (output).
 From the output we can determine the inputs
that will be required to complete the
processing.
CIS162AD
16
IPO Chart for CS3
Input
Processing
Output
Quantity
Price
Extended Price = Qty * Price
Extended Price
Tax
Shipping
Total Due
Tax = Extended Price *
Tax Rate
Constants:
Tax Rate
Shipping Rate
Total due = Extended Price +
Tax + Shipping Rate
Etc…
Etc…
CIS162AD
17
CS3 Sales Calculator Code
//Input
intQuantity = int.Parse(txtQuantity.Text);
decPrice = decimal.Parse (txtPrice.Text);
//Process - calculate values
decExtendedPrice = intQuantity * decPrice;
decSalesTax = decExtendedPrice * cdecTAX_RATE;
decTotalDue = decExtendedPrice + decSalesTax + cdecSHIPPING_RATE;
//Output
lblExtendedPrice.Text = decExtendedPrice.ToString("C");
lblSalesTax.Text = decSalesTax.ToString("C");
lblShipping.Text = cdecSHIPPING_RATE.ToString("C");
lblTotalDuel.Text = decTotalDue.ToString("C");
CIS162AD
18
Using IPO Charts
 Consider using IPO Charts when planning the logic
for your assignments.
 It is much easier to develop a program if you have a
plan. It will save you a lot of time.
 It is very difficult to design a program on the fly in
front of the keyboard.
 Even if you find the first couple assignments “easy”,
you should spend some time designing the solution so
that you will have experience when we get to the more
complicated assignments.
CIS162AD
19
Summary
 Numeric Input and Output
 Exception Handling
 IPO Charts
CIS162AD
20
Download