Download presentation
Presentation is loading. Please wait.
1
Decision Structure - 1 ISYS 350
2
Decision: Action based on condition Examples
Simple condition: If total sales exceeds $300 then applies 5% discount; otherwise, no discount. More than one condition: Taxable Income < = no tax 3000 < taxable income <= % tax Taxable income > % tax Complex condition: If an applicant’s GPA > 3.0 and SAT > 1200: admitted
3
Relational Operators A relational operator determines whether a specific relationship exists between two values Operator Meaning Expression > Greater than x > y Is x greater than y? < Less than x < y Is x less than y? >= Greater than or equal to x >= y Is x greater than or equal to y? <= Less than or equal to x <= y Is x less than or equal to you? == Equal to x == y Is x equal to y? != Not equal to x != y Is x not equal to you?
4
A Simple Decision Structure
The flowchart is a single-alternative decision structure It provides only one alternative path of execution In C#, you can use the if statement to write such structures. A generic format is: if (expression) { Statements; etc.; } The expression is a Boolean expression that can be evaluated as either true or false Cold outside True Wear a coat False
5
if Statement with Boolean Expression
sales > 50000 if (sales > 50000) { bonus = 500; } True bonus = 500 False
6
Tuition Calculation (1)
Tuition is $ If you take more than 12 units, each unit over 12 will be charged $200. private void button1_Click(object sender, EventArgs e) { int units; double tuition; units = int.Parse(textBox1.Text); tuition = ; if (units > 12) tuition = * (units - 12); } textBox2.Text = tuition.ToString("C");
7
Example of if-else Statement
if (temp > 40) { MessageBox.Show(“hot”); } else MessageBox.Show(“cold”); temp >40 display “hot” display “cold” True False
8
Tuition Calculation (2)
If total units <= 12, then tuition = 1200 Otherwise, tuition = per additional unit private void button1_Click(object sender, EventArgs e) { int units; double tuition; units = int.Parse(textBox1.Text); if (units <= 12) tuition = ; else tuition = * (units - 12); textBox2.Text = tuition.ToString("C"); } Note: If the if block contains only one line code, then the { } is optional.
9
Compute Weekly Wage For a 40-hour work week, overtime hours over 40 are paid 50% more than the regular pay. private void button1_Click(object sender, EventArgs e) { double hoursWorked, hourlyPay, wage; hoursWorked = double.Parse(textBox1.Text); hourlyPay = double.Parse(textBox2.Text); if (hoursWorked <= 40) wage=hoursWorked*hourlyPay; else wage=40*hourlyPay + 1.5*hourlyPay*(hoursWorked-40); textBox3.Text = wage.ToString("C"); }
10
Example: if with a block of statements
If total sales is greater than 1000, then the customer will get a 10% discount ; otherwise, the customer will get a 5% discount. Create a form to enter the total sales and use a button event procedure to compute and display the net payment in a textbox. And display a message “Thank you very much” if then total sales is greater than 1000; otherwise display a message “Thank you”.
11
private void button1_Click(object sender, EventArgs e)
{ double totalSales, discountRate, netPay; string myMsg; totalSales=double.Parse(textBox1.Text); if (totalSales <= 1000) discountRate = .05; netPay = totalSales * (1 - discountRate); myMsg = "Thank you!"; } else discountRate = .1; myMsg = "Thank you very much!"; textBox2.Text = netPay.ToString("C"); MessageBox.Show(myMsg);
12
Practices 1. The average of two exams is calculated by this rule: 60% * higher score + 40% * lower score. Create a form with two textboxes to enter the two exam scores and use a button event procedure to compute and display the weighted average with a MessageBox.Show statement. 2. An Internet service provider offers a service plan that charges customer based on this rule: The first 20 hours: $10 Each additional hour: $1.5 Create a form with a textbox to enter the hours used and use a button event procedure to compute and display the service charge with a MessageBox.Show statement.
13
Practices 3. FICA Taxes (Social Security): The Social Security (FICA) tax contains two parts. The Social Security (Old Age, Survivors, and Disability Insurance) FICA tax is based on the first $87,900 paid at the rate of 6.2% with a maximum amount withheld of $ The Medicare (Medical Hospital Insurance) FICA tax is based on all earnings paid, at the rate of 1.45%. Create a form with a textbox to enter an employee’s annual salary and use a button event procedure to compute and display the Social Security Tax with a MessageBox.Show statement.
14
The if-else-if Statement
Example: Rules to determine bonus: JobCode = 1, Bonus=500 JobCode = 2, Bonus = 700 JobCode = 3, Bonus = 1000 JobCode = 4, Bonus=1500
15
The if-else-if Statement
You can also create a decision structure that evaluates multiple conditions to make the final decision using the if-else-if statement In C#, the generic format is: if (expression) { } else if (expression) … else
16
Code Example private void button1_Click(object sender, EventArgs e) {
int jobCode; double bonus; jobCode = int.Parse(textBox1.Text); if (jobCode == 1) { bonus = 500; } else if (jobCode == 2) { bonus = 700; } else if (jobCode == 3) { bonus = 1000; } else { bonus = 1500; } MessageBox.Show("Your bonus is: " + bonus.ToString("c")); }
17
Example Special tax: CA: 1% WA: 1.5% NY: 1.2% Other states: 0.5%
18
Code private void button1_Click(object sender, EventArgs e) {
string state; double taxRate; state = textBox1.Text; if (state == "CA") { taxRate = 0.01; } else if (state == "WA") { taxRate = 0.015; } else if (state == "NY") { taxRate = .012; } else { taxRate = .005; } MessageBox.Show("The tax rate is: " + taxRate.ToString("p")); }
19
Tax Rate Schedule Rules to determine tax rate:
Taxable Income < = no tax 3000 < taxable income <= % tax 10000<Taxable income <= % tax Taxable income> % double taxableIncome, taxRate, tax; taxableIncome = double.Parse(textBox1.Text); if (taxableIncome <= 3000) { taxRate = 0; } else if (taxableIncome<=10000) taxRate= .05; else if (taxableIncome <= 50000) taxRate = .15; else taxRate = .25; tax = taxableIncome * taxRate; textBox2.Text = tax.ToString("C");
20
Rules to determine letter grade
Avg>=90 A 80<=Avg<90 B 70<=Avg<80 C 60<=Avg<70 D Avg<60 F
21
Compare these two programs
double grade = double.Parse(textBox1.Text); if (grade < 60) { MessageBox.Show("F"); } else if (grade < 70) MessageBox.Show("D"); else if (grade < 80) MessageBox.Show("C"); else if (grade < 90) MessageBox.Show("B"); else MessageBox.Show("A"); double grade = double.Parse(textBox1.Text); if (grade >=90) { MessageBox.Show("A"); } else if (grade >=80) MessageBox.Show("B"); else if (grade >=70) MessageBox.Show("C"); else if (grade >=60) MessageBox.Show("D"); else MessageBox.Show("F");
22
Input Validation Numbers are checked to ensure they are:
Within a range of possible values Reasonableness Not causing problems such as division by 0. Containing only digits IsNumeric Texts are checked to ensure correct format. Phone #, SSN. Required field
23
Text Box Validation Useful property: Useful events
CausesValidation: true Useful events TextChanged: default event Triggered whenever the textbox is changed. Validating – useful for validating data entered in the box Triggered just before the focus shifts to other control.
24
Data Entered in Textbox1 cannot be greater than 2000
private void textBox1_Validating(object sender, CancelEventArgs e) { double enteredData; enteredData = double.Parse(textBox1.Text); if (enteredData > 2000) MessageBox.Show("The data cannot be greater than 2000!"); e.Cancel=true; } Note: e.Cancel=true;
25
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 system error message: catch (Exception ex) { MessageBox.Show(ex.Message); } Or a user-defined error message: catch ( ) MessageBox.Show(“User-defined error message”);
26
Use Try/Catch to Detect Data Syntax Error
{ 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."): Note: Show a system generated error message: catch (Exception ex) { MessageBox.Show(ex.Message); }
27
Use Try Catch with the Validating event: Testing for digits only
This example uses the Double.Parse method trying to convert the data entered in the box to double. If fail then it is not numeric. private void textBox1_Validating(object sender, CancelEventArgs e) { try double.Parse(textBox1.Text); e.Cancel = false; } catch e.Cancel = true; MessageBox.Show("Enter digits only");
28
Testing for digits only and cannot be greater than 2000
private void textBox1_Validating(object sender, CancelEventArgs e) { try double myData; myData= double.Parse(textBox1.Text); if (myData>2000) MessageBox.Show("The data cannot be greater than 2000!"); e.Cancel=true; } catch e.Cancel = true; MessageBox.Show("Enter digits only");
29
Compare these two programs
double grade = double.Parse(textBox1.Text); if (grade >=90) { MessageBox.Show("A"); } else if (grade >=80) MessageBox.Show("B"); else if (grade >=70) MessageBox.Show("C"); else if (grade >=60) MessageBox.Show("D"); else MessageBox.Show("F"); double grade = double.Parse(textBox1.Text); if (grade >=90) { MessageBox.Show("A"); } if (grade >=80) MessageBox.Show("B"); if (grade >=70) MessageBox.Show("C"); if (grade >=60) MessageBox.Show("D"); if (grade < 60) MessageBox.Show("F");
Similar presentations
© 2024 SlidePlayer.com. Inc.
All rights reserved.