www.monash.edu.au
IMS1906 Programming in VB.NETWeek 3 – Lecture 1
Application Development
© Angela CarboneMonash University School of Information Management and Systems
www.monash.edu.au2
Lecture Outline
• Development process• Planning an OOED
application in VB using TOE Charts
• Assigning values to properties at run time
• Inbuilt functions & methods• Convert and Random Class
Application Development
www.monash.edu.au3
The Process of Development
• Steps:– A. Plan (TOE charts, sketch of user interface,
pseudocode)– B. Build user interface– C. Code the Application– D. Test and Debug the Application– E. Write the Documentation
www.monash.edu.au4
Planning VB.NET Application
1. Identify the tasks the application needs to perform
2. Identify the objects to which you will assign those tasks
3. Identify the events required to trigger an object into performing its assigned task
4. Draw a TOE chart5. Draw a sketch of the user interface
www.monash.edu.au5
Step 1: Identify the Application’s Tasks
• What will the user need to enter?• What will the application need to calculate?• What will the application need to display (screen) and/or print
(printer)?• Will previous information need to be cleared from the screen?• How will the user end the application?
• Example Tasks– Get employee information:
– Name, Address, Personnel Number, Hours worked
– Calculate salary: – (Hours worked * Hourly Rate) - Tax - Deductions
– Print Salary Slip:– name, personnel number, gross, net
– End– exit button
– Clear
www.monash.edu.au6
Step 2: Identify the Objects
• After completing the Task column of the TOE chart, you then assign each task to an object in the user interface
– Use a Text Box for data the user must enter– Use a Label for output produced by program– Use a Button to perform an action
www.monash.edu.au7
Step 3: Identifying the Events
• Text boxes and Label controls display their contents automatically, so no special event is necessary for them to do their assigned task
• You will have the buttons perform their assigned tasks when they are clicked by the user
• For each task you have identified, list the event in the Event column
www.monash.edu.au8
Step 4: Sample TOE Chart
Task Object Event
www.monash.edu.au9
Step 5: Design the User Interface
• Look at the objects in the TOE chart
• Using pen and paper, sketch the layout of the objects
• Organize the graphical user interface (GUI) so that the information flows either vertically or horizontally, with the most important information always located in the upper-left corner of the screen
www.monash.edu.au10
Designing the User Interface
• Info flows vertically or horizontally• group related controls – group box, white space• command buttons - up to 6, bottom of screen or
stacked in corners, most commonly used first• meaningful captions on buttons• Sentence capitalisation for identifying labels• Book title capitalisation for buttons • label controls - 1-3 words only• aligning and sizing controls• Use of color, graphics and different fonts
[p48-55Zak]
www.monash.edu.au11
Exercise - Order Form
A timber supplier needs a computer program which allows customers to enter their details, and the number of metresof Oak, Pine or Redwood they wish to purchase, then calculate and display the total purchase cost.
Oak = $7, Pine = $5, Redwood = $10 per metre
To do:– Identify tasks of the application– Objects needed in the application– Events for objects
www.monash.edu.au12
Task, Object, Event
Task Object Event1.
2. 3. 4.
5.
Sketch user interface, naming all objects (even additional ones like labels used next to text boxes) Example: TimberOrder.sln
www.monash.edu.au13
Assign a value to an object’s property during runtime
• syntax assignment statement – [Me.]objectName.property = newValueie. Me.txtCity.Text = "Melbourne”Enables properties to be set or changed during run-time, rather than at design time
• What do these assignments do?– lblLabel.Text = “Name”– txtBox.Text=“”– lblLabel.Text = txtBox.Text
• In summary, > properties can be set during design time using the property
window> properties can be set or changed during run time using the
assignment statement in code (usually in response to the user’s actions)
www.monash.edu.au14
Mathematical Operators
exponentiation- negation*, / multiplication, division\ integer divisionMod modulus arithmetic+, - addition and subtraction
Note that you can use brackets to overcome precedence orders
• Provided you are dealing with numeric types (not Strings) you can use standard maths operators
• If strings are involved and you are assigning them to a numeric variable, you must first convert them using Val()
www.monash.edu.au15
Val() Function
• Most common use for Val() function is in converting Text Box input (a String) into numeric data for mathematical operations
Example: Adding two numbersVal(txtNum1.Text) + Val(txtNum2.Text)
www.monash.edu.au16
Why use Val( )
If you don’t use Val(), then + will act as the concatenation operator, so thatlblAnswer. Text = txtNum1.Text + txtNum2.Text
= “12” + “34” (concatenate 2 strings)= “1234” (a string)
Instead oflblAnswer.Text = Val(txtNum1.Text) + Val(txtNum2.Text)
= Val(“12”) + Val(“34”) (sum of 2 numbers)= 12 + 34 = 46 (a number)
Is there a problem here?
www.monash.edu.au17
Convert Class
• Convert Class– Use the Convert Class to convert the data type of the expression
on RHS to the data type of the variable on LHS– What methods are in the Convert Class?– How would you find these out?
– Visit msdn.microsoft.com to find out what other methods can be invoked from the Convert Class
• Examples– lblAnswer.text = convert.ToString(Val(txtNum1.Text) + Val(txtNum2.Text))– txtNum1.Txt = Convert.ToString(Math.Abs(-10))– intNum= Convert.ToInt32(txtAge.Text)
www.monash.edu.au18
Examples: Val Function
• Val function:Val(“456”) 456Val(“24,500”) 24Val(“123x”) 123Val(“$56.88”) 0Val(“Abc”) 0Val(“”) 0Val(“25%”) 25
www.monash.edu.au19
Formatting output
• Suppose variable Total = 1221.67856– Format(Total, “Fixed”) = 1221.68– Format(Total, “Currency”) = $1,221.68– Format(Total, “Scientific”) = 1.22E+03– Format(Total, “True/False”) = True
• Suppose variable Total = 0– Format(Total, “Currency”) = $0.00– Format(Total, “Scientific”) = 0.00E+00– Format(Total, “Yes/No”) = No
Formatting Styles
General Number - no commas for thousandsCurrency - dollar sign, comma & centsFixed - at least 1 digit to left & 2 to right of
decimalStandard - like currency but no $Percent- number x100 with % (& 2 decimals)Scientific - standard scientific notationYes/No - “No” is 0, otherwise “Yes”True/False - “False” if 0, otherwise “True”On/Off - “Off” if 0, otherwise “On”
www.monash.edu.au20
Using the Focus Method
– Focus method allows you to move the focus to a specified control while the application is running.
• Syntax[Me.]object.Focus()
whereobject is the name of in which you want the
focus, and Focus( ) is the name of the method
www.monash.edu.au21
Random Class (for next week’s tute)
• Use the Random Class to generate random numbers
– Must declare a random object first> Dim randomObject As New Random
– To generate a random number > randomObject.Next(1,100)
– generates a random integer between 1 and 100; including 1, excluding 100
> randomObject.NextDouble– Generates a real number between 0 and 1, including 0 but
excluding 1
www.monash.edu.au22
Questions
• Reading– Zak, Chpt 2– Unit Guide, Study Guide 2
• Stop for a moment and summarise
– what you have covered– the main parts of today’s lesson– write down any questions you
would like to ask
www.monash.edu.au
IMS1906 Programming in VB.NETWeek 3 – Lecture 2
Variables and Data Types
© Angela CarboneMonash University School of Information Management and Systems
www.monash.edu.au24
Lecture Outline
• Variables– Definition and purpose– Data Types– Naming convention– Declaration– Storing data in variables– Variable scope
• Literals and Constants• Translating an algorithm to
VB.NET code
www.monash.edu.au25
What we need to know about variables
• Definition - What are they?• Purpose - When do you use them?• Data Types - What data can variables hold?• Declaration - How and where do you declare them?• Naming convention - What name to do give them?• Assigning values to variables • Scope - How long do they live for?
www.monash.edu.au26
Variables in Algorithms
• Placeholder for unknown values
• Used to store results of calculationsExample:
Get distance from userGet speed from userCalculate time ß distance / speedDisplay time to user
www.monash.edu.au27
Variables in Programs
• Creating a variable reserves an area of computer memory
– Address – where the data is physically located in memory
• Can store values into the memory location– E.g. Location in memory could be 0x0010F8A4 (a
hexadecimal number)
– Value in that location may be the number 1234.56
• A particular memory variable can store values of a specific data type only
www.monash.edu.au28
VB.NET Data Types
Stores a sequence of charactersString
Stores 8-bits of dataByte
Stores one (Unicode) characterChar
Stores Trueand FalseBoolean
Stores numbers with a decimal point (16 b)Decimal
Stores floating-point numbers in 8 bytesDouble
Stores floating-point numbers in 4 bytesSingle
Used to store whole numbers Short, Integer, Long
www.monash.edu.au29
Data Types
• A Data Type is distinguished b y– the operations which can be applied– the way it is stored in memory (number of bytes, order of
bits)– the values it can take
• Categories of Data Types:– Numeric– String / Character -based– Classes and Structures– Logical Value (True/False)
• Failure to understand their importance and use them correctly is the largest cause of errors in student programming!
www.monash.edu.au30
Data Types
Numeric• Integer
– values are whole numbers– needs 4 bytes per number– Operations are + - * / ^
• Single precision – values are “small” decimal
numbers– needs 4 bytes per number– Operations are + - * / ^
• Double precision– values are “large” numbers– needs 8 bytes per number– Operations are + - * / ^
• Character– Any solitary letter: A B G Š Z
a b c ê o w– Digits: 0 1 2 3 4 5 6 7 8 9– Or other symbol, e.g. : ! @ #
$ % ^ & * „ { \– Some non -printable (control
codes)• String
– Values take the form of a sequence of characters
– Use double-quotes around the string, e.g. “Hello”
– Requires 1 byte per character
– Operators include: + &
www.monash.edu.au31
Example – Integer variables
Calculate the sum and average of three integers (whole numbers)
CalcAvgsumß 0
Read num1 (user types 10, so num1 is 10)sumß sum + num1 (sum is 10)Read num2 (user types ‘6’, num2 is 6)
sumß sum + num2 (sum is 18)Read num3 (user types ’11’, num3 is 11)sumß sum + num3 (sum is 27)
average ß sum / 3 (average is 9)END
www.monash.edu.au32
Sumß 0
Name: Avg
Value:
Address: 2
Name: Sum
Value:
0Address: 1
Name: Num1
Address: 5
Name: Num2
Address: 8
Name: Num3
Address: 9
Value: Value:Value:
www.monash.edu.au33
Read num1 (num1 is 10)
Name: Avg
Value:
Address: 2
Name: Sum
Value:
0Address: 1
Name: Num1
Address: 5
Name: Num2
Address: 8
Name: Num3
Address: 9
Value:
10 Value:Value:
www.monash.edu.au34
sum ß sum + num1
Name: Avg
Value:
Address: 2
Name: Sum
Value:
10 Address: 1
Name: Num1
Address: 5
Name: Num2
Address: 8
Name: Num3
Address: 9
Value:
10 Value:Value:
www.monash.edu.au35
Read num2 (num2 is 6)
Name: Avg
Value:
Address: 2
Name: Sum
Value:
10 Address: 1
Name: Num1
Address: 5
Name: Num2
Address: 8
Name: Num3
Address: 9
Value:
10 Value:Value:
6
www.monash.edu.au36
sum ß sum + num2
Name: Avg
Value:
Address: 2
Name: Sum
Value:
16 Address: 1
Name: Num1
Address: 5
Name: Num2
Address: 8
Name: Num3
Address: 9
Value:
10 Value:Value:
6
www.monash.edu.au37
Read num3 (num3 is 11)
Name: Avg
Value:
Address: 2
Name: Sum
Value:
16 Address: 1
Name: Num1
Address: 5
Name: Num2
Address: 8
Name: Num3
Address: 9
Value:
10 Value:
11Value:
6
www.monash.edu.au38
sum ß sum + num3
Name: Avg
Value:
Address: 2
Name: Sum
Value:
27 Address: 1
Name: Num1
Address: 5
Name: Num2
Address: 8
Name: Num3
Address: 9
Value:
10 Value:
11Value:
6
www.monash.edu.au39
average ß sum / 3
Name: Avg
Value:
9Address: 2
Name: Sum
Value:
27 Address: 1
Name: Num1
Address: 5
Name: Num2
Address: 8
Name: Num3
Address: 9
Value:
10 Value:
11Value:
6
www.monash.edu.au40
Representing Values in VB.NET
• There are 3 main ways to represent values in code:
– Variables– Literals– Constants
www.monash.edu.au41
Variables in VB.NET
• Variables must be declared before being used
– To specify the type of the variable> Integer, Single, Double, String, Boolean
– reserves memory space for the value to be stored
– gives a name to variable• Values can then be assigned to or stored
in the variable
www.monash.edu.au42
Declaring Variables
• Need to specify the data type of a variable– So computer knows how to organise memory
• The Dim statement does this• The effect is to allocate space in memory for the
variable and initialize it to a default value• The syntax is
Dim variableName As Type [ = initialValue ]
www.monash.edu.au43
Choosing a Name for Variables
• You should assign a descriptive name to each variable used in an application
• Name must not match a VB.NET keyword
– E.g. Val or Print are not allowable variable names
• The name should help you remember the variable’s data type and purpose
– Use the standard three-letter prefix to indicate data type
– Capitalize each word comprising the name
www.monash.edu.au44
Prefixes for variable names
www.monash.edu.au45
Dim statement examples
Dim shrNumberOfDoors As ShortDim intTotalEmployees As IntegerDim sngTotalPrice As SingleDim strEmployeeName As StringDim blnValidData As Boolean
www.monash.edu.au46
Assigning Values
• Giving a data value to a variable is called assignment• In an algorithm (pseudocode ) use ß or =• In VB use an assignment statement• The syntax for an assignment statement is
variableName = expressionWhere expression is any literal value, calculation or other operation that results in a value.
• The data type of the expression on RHS must match (or be included by) the data type of the variable on LHS.
www.monash.edu.au47
Assigning Values
• Example Assignment Statements:intNumEmployees = 4762strEmployerName= “Churchill Software Developers”
• Can also assign an initial value when declaring variable:Dim strAddress As String = “Princes Highway”Dim intTotal As Integer = 0
• By default, strings are empty, and numeric variables are 0.
www.monash.edu.au48
Option Explicit and Option Strict
• Option Explicit – Turning Option Explicit On ensures that you always
declare a variable before you use it.• Option Strict
– Turning Option Strict On enforces explicit use of type casting when variables are assigned to other variables of a different type
Throughout this unit you are required to turn Option Strict On and Option Explicit On in all your programs.
www.monash.edu.au49
The Concept of Scope
• Programs are very structured• All VB.NET Forms are actually a class• Inside the Form class’s code there are:
– Event procedures– Other procedures and functions (cover later)– Variables and Constants– User-defined data types (cover later)
• Each of the above elements have names so we can refer to them
• Scope = those parts of a program a particular element is defined, i.e. where the name of the element is understood
www.monash.edu.au50
The Scope of a Variable
• A variable’s scopeindicates which procedures in an application can use the variable
• The scope is determined by where the Dim statement appears in the code window
• When you declare a variable in a procedure, the variable is called a local variable (or procedure-level variable) and is said to have procedure scope, because only that procedure can use the variable
• When you declare a variable in the form’s Declarations section, the variable is called a module-level variable and is said to have module scope
www.monash.edu.au51
Example – Procedure Scope
Public Class Form1 Inherits System.Windows.Forms.FormWindows Form Generated Code
Private Sub Button1_Click(…) Handles Button1.ClickDim strName As StringstrName = NameTextBox.Text
End Sub
Private Sub Button2_Click(…) Handles Button2.ClickDim intQuantity As IntegerintQuantity = Val(QuantityTextBox.Text)
End SubEnd Class
strName only exists inside the Button1_Click procedure.
Button2_Click doesn’t know what strName means
www.monash.edu.au52
Example – Module Scope
Public Class Form1 Inherits System.Windows.Forms.FormWindows Form Generated Code
Dim strName As StringDim intQuantity As Integer
Private Sub Button1_Click(…) Handles Button1.ClickstrName = NameTextBox.Text
End Sub
Private Sub Button2_Click(…) Handles Button2.ClickintQuantity = Val(QuantityTextBox.Text)
End SubEnd Class
Both strName and intQuantity are known to both event procedures.
www.monash.edu.au53
Be Careful of Shadow Variables
• What will the following code display in the textbox when each button is clicked?
Public Class Form1 Inherits System.Windows.Forms.FormWindows Form Generated Code
Dim strName As String = “Adam”
Private Sub Button1_Click(…) Handles Button1.ClickDim strName As String = “Eve” txtName.Text = strName
End Sub
Private Sub Button2_Click(…) Handles Button2.ClicktxtName.Text = strName
End SubEnd Class
www.monash.edu.au54
Literals
• An item of data whose value cannot change while the program is running
• Hard-coded, by the programmer• Examples:
0.6
7
“Welcome”• Do all 7’s throughout the program mean the
same thing?
www.monash.edu.au55
Named Constants (or Symbolic constants)
• Similar to a variable– Identifier for a memory location holding a value needed by the
application– Can be used in expressions anywhere variables are allowed
• Value assigned at design (coding) time– Cannot be changed by the program once created in memory
• Values may be numeric or string• The syntax isConst constantName [As Type] = expression
• The data type is optional (it is implicit from expression)
www.monash.edu.au56
Named Constants
• Example Declarations:
const sngDiscountRate As Single = 0.05const strCompanyName As String = “Hi there”
• Example usage of a constant:
sngFinalPrice = sngOrderPrice * sngDiscountPriceCompanyNameTextbox.Text = strCompanyName
www.monash.edu.au57
Constants
Why use constants?• Only need to change value in one location in
program– E.g. If tax_rate is 10% today (such as for GST) ,
and changes next year, easier to change the constant’s value in one place than scattered through-out your program
www.monash.edu.au58
Summary
Literals:• Are values hard-coded in the program
Variables and Constants:• Represent values• Have a name• Use memory space• Have a specific data type• Variables may change (vary), constants may not
change, during the life of the program.
www.monash.edu.au59
Exercise: Translate an Algorithm into VB.NET code
Calculate the sum and average of three integers (whole numbers)
CalcAvgsum ß 0num1 ß 10num2 ß 6num3 ß 11 sum ß sum + num1sum ß sum + num2sum ß sum + num3 average ß sum / 3
END
www.monash.edu.au60
Documentation
• Internal Documentation:– Used by programmers– Good practice to leave messages as reminders in the
Code window– place apostrophe (‘) before the comment– comments are ignored by VB.NET program
• User Documentation– Used by users of the system– Ie what is valid and invalid input– How to achieve a complex task that requires many steps– Can be online help or a physical document
www.monash.edu.au61
Questions/Reading
• Stop for a moment and summarise
– what you have covered– the main parts of today’s
lesson
– questions to ask
• Reading Zak, Chpt 3 p72-116
• Unit Guide, SG 3