27
CSI 101 Elements of Computing Spring 2009 Lecture #13 Programming in Visual Basic March 25 th – April 4 th , 2009

CSI 101 Elements of Computing Spring 2009 Lecture #13 Programming in Visual Basic March 25 th – April 4 th, 2009

  • View
    215

  • Download
    1

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

Steps

Get requirements Determine algorithm Define data Map Form Write code Test

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”

Okay, let’s get to work…

The rest is done on Notepad, in Visual Studio, or on whiteboard.

Slides showing Notepad and whiteboard work will be added to the end of this lecture after the Practice is complete.