View
215
Download
1
Tags:
Embed Size (px)
Citation preview
CSI 101Elements of Computing
Spring 2009
Lecture #13Programming in Visual Basic
March 25th – April 4th, 2009
Development Steps Determine algorithm
Know what you're doing before you start Define data
What do I get from the user? What do I give to the user?
Decide needed functions What is already available in the language? What do I need to create?
Design Forms What should the user see? Don't put too much on one Form
Make it easy to read
2
Defining Data
List input and output Determine best data type
For instance, a Name would be a String Look for opportunities to create composite types
These are the user-defined types you saw earlier, like Ualb_Student or Employee
Why? Easier to catalog and associateFewer “loose” variables running around
Figure out source of information Files, databases, or user input
3
Library Functions These are functions that come with the
compiler Supposed to make life easier for developers,
as they don't have to “reinvent the wheel” Main categories:
Mathematical Type conversion String manipulation File manipulation (which we've already seen) Formating Date manipulation There are others, but we won't discuss them in
this course4
Type conversion functions Probably most important, since all data in text
boxes on Form are String Need to convert to appropriate variable to
perform calculations and arithmetic operations
All have form Ctype, where type is the data type desired CByte, CInt, CLng – convert to Byte, Integer,
Long CDec, CSng, CDbl – convert to Decimal, Single,
Double CBool – converts 0, 1, “True”, “False”, “Yes”, “No” CDate – converts from valid date format string
5
Conversion Examples
CDate(“01/01/09”) CDate(“September 11, 2001”) CBool(1) CBool(“True”) CBool(“no”) CInt(Text1.Text)
6
Mathematical Functions
All trig functions Log() and exp() These we might use:
Abs() - returns absolute value Sqrt() - returns Decimal with square root
7
String Manipulation Functions Len(String) : returns number of characters in
string Left(String, Int) : returns substring of first Int
characters of String Right(String, Int) : returns substring of last Int
characters of String LCase(String) : returns String in all lowercase UCase(String) : returns String in all upper
case Mid(String,Pos,Len) : returns substring
starting at Pos with Len characters9
String Manipulation Functions, cont
Mid(String, Pos) : returns substring starting at Pos containing the rest of String Example: Mid(“ABCDEFG”, 3) returns “CDEFG”
StrComp(String1, String2) Returns 0 if both strings are the same Returns 1 if String2 would be alphabetically
sorted before String1 Returns -1 if String1 would be alphabetically
sorted before String2 LTrim(String) : returns String without leading
blanks
10
Last String Manipulation Functions RTrim(String) : returns String without trailing
blanks Trim(String) : returns String without extra
blanks at either end StrReverse(String) : returns String in reverse
order InStr(String1, String2) : returns integer start
position of String2 in String1 Returns 0 if not there InStr(“ABCDEF”,”B”) returns 2
11
Format function
Format(Value, form) : returns Value formatted in the specified form Form can be a string or a predefined format String ex:
Format(454, “#,##0.00”)Format(ThisDate, “mm/dd/yyyy”)
Predefined ex:Format(ThisDate, “Long Date”)Format(454, “Currency”)
Note value can be a String, Date, or numerical value or variable
Form is always a String
12
Numerical Predefined Formats “General” or “G” : displays without thousand separator “Currency” or “C” : displays dollar sign, separator, and
two decimal places “Fixed” or “F” : displays at least one digit to the left of
decimal and two digits after decimal “Standard” or “S” : displays thousand separator and two
decimal digits “Percent” : Multiplies number by 100 and displays with
percent sign immediately following “P” : Multiplies number by 100 and displays with percent
sign behind number, with a space in between “Scientific” : Displays in scientific notation with two
decimal digits “E” : Displays in scientific notation with up to six decimal
digits
13
Special Numerical Formats “D” : display numerical value as a string with
two decimal digits “X” : display numerical value as a
hexadecimal value Displays in Base 16 with an X following In Base 16, 10-15 are displayed as A-F
“True/False” : displays False if value = 0, otherwise True
“Yes/No” : displays No if value = 0, otherwise Yes
“On/Off” : displays Off if value = 0, otherwise On
14
Numerical Format symbols “0” : display that digit location, even if value is
0 Format(45,”000”) displays 045
“#” : displays digit if there, nothing if not Format(45, “##0”) displays 45
“.” : decimal placeholder. What follows is number of decimal digits to display Format(45,”0.00”) displays 45.00
“,” : thousand separator. If value > 1000, puts comma after thousand digit
“%” : multiplies value by 100 and displays percent sign afterwards
15
Predefined Date/Time formats
“General Date” or “G” : Displays in standard m(m)/d(d)/yyyy format with time following 10/29/2008 6:50:00 PM
“Long Date” or “D” : displays whole date Wednesday, October 29, 2008
“Short Date” or “d” : displays standard date 10/29/2008
“M” : display just month and day October 29
“Y” : display just month and year October, 2008
16
Date/Time Format symbols
“d” : displays day without leading zero “dd” : displays two digits for day “ddd” : displays day as abbreviated text
Ex: “Wed” “dddd” : displays full name for day Month has same format, but with M
Format(Today,”MMM dd”) displays Oct 29 Format(Today, “MM/dd”) displays 10/29
Year has same format, but with y Format(Today,”M/d/yy”) displays 10/29/08
17
Special Format functions
FormatCurrency(value) : returns string with value in currency format
FormatPercent(value) : returns string with value in percent format
FormatDateTime(value, DateFormat) : returns string with value in specified date format: DateFormat.GeneralDate DateFormat.LongDate DateFormat.ShortDate
18
Date Manipulation Functions
Now() : returns current day Today = Now()
Month(date) : returns integer value for month Month(Today) returns 10
MonthName(date,abbr) : returns string name of month Abbr is a Boolean which says whether to return
abbreviated name MonthName(Today,True) returns Oct
Day(date) : returns integer value of day Year(date) : returns integer value of year
19
More Date Manipulation Functions
Weekday(date) : returns integer value of day of week (Sunday is 1) Weekday(Today) returns 4
WeekdayName(date,abbr) : returns string name of day of week Abbr is Boolean – should I abbreviate? WeekdayName(Today) returns Wed
20
Date Arithmetic Functions
DateAdd(interval, amount, date) : Adds amount of interval to date and returns new date Intervals:
“d” for day“w” for weekday“m” for month“q” for quarter (three months)“yyyy” for year
DateAdd(“m”, 1, Today) returns Nov 29, 2008 DateDiff(interval, date1, date2) : returns integral
number of intervals between date1 and date2 DateDiff(“d”,Yesterday,Today) is 1 DateDiff(“d”,Today,Yesterday) is -1
21
Time Functions
There are functions dealing with time, but we won’t cover them in this course
See the Visual Basic Reference on www.msdn.com
22
Let’s Practice
The rest of this lecture is a demonstration of creating the Form and code for the following problem statement: “Obtain a name from the user. Search for that
name in file Employee. When found, display the employee’s date of hire, current Manager, and current salary.”
23
Get requirements
Initial problem statement seems fine Check source file to determine additional
questions
Employee file
Each record has these fields: First Name Last Name Manager’s Name Office number Office phone number Date of hire Salary
Questions to user
Since Employee name is split, do you want to search on either first name or last name? Answer: “Yes”
Does the user need to specify the exact name, or will a “fuzzy” search do? Answer: “fuzzy search”