+ All Categories
Home > Documents > Chapter 7 Code Tables. VB Code Box 7-1 Event Procedure for Compute Button Private Sub...

Chapter 7 Code Tables. VB Code Box 7-1 Event Procedure for Compute Button Private Sub...

Date post: 30-Dec-2015
Category:
Upload: cory-hoover
View: 220 times
Download: 0 times
Share this document with a friend
27
Chapter 7 Code Tables
Transcript

Chapter 7Code Tables

VB Code Box 7-1Event Procedure for Compute Button

Private Sub hsbExemptions_Change() txtExemptions.Text =Str(hsbExemptions.Value)End Sub

Private Sub cmdCompute_Click()Dim intNumExemptions as Integer, curIncome as CurrencyintNumExemptions=CInt(txtExemptions.Text)

curIncome=CCur(txtIncome.Text) txtTaxes.Text=Format(curComputetaxes(intNumExemptions, _ curIncome, “currency”)End Sub

VB Code Box 7-2Function to Compute Income Taxes

Public Function curComputeTaxes(intNumExm As Integer, _ curGrossIncome As Currency) as Currency Dim curTaxIncome As Currency curTaxIncome = curGrossIncome - 4400 - intNumExm * 2800 Select Case curTaxIncome Case Is <= 26250 curComputeTaxes = 0.15 * TaxIncome Case Is <= 63550 curComputeTaxes = 3937.50 + 0.28 * (curTaxIncome - 26250) Case Is <= 132600 curComputeTaxes = 14385.50 + 0.31 * (curTaxIncome - 63550) Case Is < 288350 curComputeTaxes = 41170.50 + 0.36 * (curTaxIncome - 132600) Case Else curComputeTaxes = 86854.50 + 0.396 * (curTaxIncome - 288350) End SelectEnd Function

VB Code Box 7-3

Event Procedure for Sort Button

cmdSort_Click()Sort curPrices(), strPartID(), intNumPrices

End sub

VB Code Box 7-4Code to Reverse Two Price Elements

For intCounter=0 to intNumPrices -2 If curPrices(inCounter) > curPrices(intCounter +1 Then Reverse curPrices(intCounter), cur Prices (intCounter +1) End IfNext

VB Code Box 7-5Sub to Reverse Two Values

Sub Reverse(curFirst as Currency, curSecond as Currency)Dim curTemp as CurrencycurTemp = curFirstcurFirst = crSecondcurSecond = crTemp

End Sub

Pseudocode to Sort an Array

Begin Sort procedureRepeat until no reversals made

Repeat for each pair of valuesIf value > next value then

Reverse valuesEnd decision

End repeatEnd repeat

End Procedure

VB Code Box 7-6

Code for Sub to Sort an Array

Public Sub Sort(curList1() As Currency, strList2() _As String, intNumList As Integer) Dim blnNoReversal As Boolean, intCounter As Integer blnNoReversal = False Do Until blnNoReversal blnNoReversal = True For intCounter = 0 To intNumList - 2 If curList1(intCounter) > curList1(intCounter + 1) Then Reverse curList1(intCounter),curList1(intCounter + 1) ReverseStr strList2(intCounter),strList2(intCounter+1) blnNoReversal = False End If Next LoopEnd Sub

VB Code Box 7-7New Code for PartList.vbp

Public Sub cmdSort_Click()Sort curPrices(), strPartID(), intNumPrices

End Sub

Public Sub Reverse(curFirst as Currency, curSecond as Currency)Dim curTemp as CurrencycurTemp=curFirstcurFirst=curSecondCurSecond=curTemp

End Sub

VB Code Box 7-7New Code for PartList.vbp (con’t)

Public Sub Reversestr (strFirst as String, strSecond as String

Dim strTemp as StringstrTemp=strFirststrFirst=strSecondstrSecond=strTemp

End Sub

VBCode Box 7-8New Code for cmdCalc Event Procedure

curTaxes=curTotalCost +sngTaxRate (Existing code)

If txtLateFees.Text = "" then MsgBox "Click Check Members button and try again", _ vbCritical, "Membership status not checked" Exit Sub ’User did not click Check Members buttonEnd ifcurLateFees = CCur(txtLateFees.Text)curAmountDue = curTotalCost + curTaxes + curLateFeestxtLateFees = Format(LateFees, "Currency")txtTotalCost.Text+Format(TotalCost,”currency”)(existing)

VB Code Box 7-9Global Declarations for Vintage Videos Project

Public strMembers(100) as String, curLateFees(100) as CurrencyPublic strPhoneNumbers(100) as String, intNumMembers as IntegerPublic strVideos(100) as String, curVideoPrice(100) as CurrencyPublic strVideoLoc(100) as String, intNumVideos as Integer

Code Box 7-10Form_Load Event Procedure for Vintage Videos

Private Sub Form_Load() lstVideos.AddItem "Welcome to Vintage Videos" Open "a:\chapter7\members7.txt" For Input As #1 Do Until EOF(1) Input #1, strMembers(intNumMembers), _ strPhoneNumbers(intNumMembers),curLateFees(intNumMembers) intNumMembers = intNumMembers + 1 Loop Close #1 Open "a:\chapter7\videos.txt" For Input As #2 Do Until EOF(2) Input #2, strVideos(intNumVideos), _ curVideoPrice(intNumVideos), strVideoLoc(intNumVideos) intNumVideos = intNumVideos + 1 Loop Close #2End Sub

Pseudocode for Search Sub

Begin search procedure Repeat for each item in list If SearchString is substring of list item then Increment Number of matches counter If Membership list then Add Name, Phone Number and Late Fee to member list box Else Add Video Name to video list box End decision End decision End repeatEnd procedure

Public Sub Search(strSearchstr As String, strList1() As String, _strList2() As String, curList3() As Currency, intNumItems _As Integer, strWhich As String) Dim NumMatches As Integer, Found As String' Procedure searches for strSearch in List1(). If matches are' found, 1 or 3 array values are added to appropriate list box Dim intCounter As Integer intNumMatches = 0 For intCounter = 0 To intNumItems - 1 If InStr(UCase(strList1(intCounter)), UCase(strSearch)) > 0 Then intNumMatches = intNumMatches + 1 If strWhich = "Members" Then frmMembers.lstMembers.AddItem strList1(intCounter) & " " & strList2(intCounter) & " " & Format(curList3(intCounter), _ "currency") Else frmVideos.lstVideos.AddItem strList1(intCounter) End If End If Next (Continued on next slide)

VB Code Box 7-11Sub to Search

VB Code Box 7-11Sub to Search (con’t)

If intNumMatches = 0 Then MsgBox ("No matching entries found! Try again.") ElseIf intNumMatches > 5 Then MsgBox ("Too many matching entries!") frmMembers.lstMembers.Clear frmVideos.lstVideos.Clear End IfEnd Sub

VB Code Box 7-12Invoke the Search Sub for Members

Private Sub cmdSearch_Click() Dim strFindName As String lstMembers.Clear strFindName = txtSearch.Text Search strFindName, strMembers(), strPhoneNumbers(), _ curLateFees(), intNumMembers, "Members"End Sub

VB Code Box 7-13Code for lstMembers_Click Event Procedure

Private Sub lstMembers_Click() Dim strMemberInfo As String, intNumChar As Integer Dim intTwoBlankPos As Integer, strMemberName As String Dim intDollarSignPos As Integer, strLateFeeAmount As String strMemberInfo = lstMembers intNumChar = Len(strMemberInfo)’Find length of lstMembers intTwoBlankPos = InStr(strMemberInfo, " ") ’Find two blanks strMemberName = Left(strMemberInfo, intTwoBlankPos - 1)’Name is at left side of lstMembers intDollarSignPos = InStr(strMemberInfo,"$") ’Find $ sign intNumChar = intNumChar - intDollarSignPos ’Find amount length strLateFeeAmount = Right(strMemberInfo, intNumChar) ’Late fee amount is at right end of lstMembers frmVintage.txtCustName.Text = strMemberName frmVintage.txtLateFees.Text = strLateFeeAmount’Move name and late fees to frmVintage lstMembers.Clear frmMembers.Hide frmVintage.txtVideoName.SetFocusEnd Sub

VB Code Box 7-14Add Members to the Membership List on

frmMembers

Private Sub cmdAdd_Click() strMembers(intNumMembers) = InputBox("Enter new member name:") frmVintage.txtCustName.Text = strMembers(intNumMembers) strPhoneNumbers(intNumMembers) = InputBox("Enter phone number:") LateFees(intNumMembers) = 0 frmVintage.txtLateFees.Text = 0 NumMembers = NumMembers + 1 frmVintage.txtVideoName.SetFocus frmMembers.HideEnd Sub

Code Table 7-15Add Videos to the Video List on frmVideos

Private Sub cmdAdd_Click() Videos(intNumVideos) = InputBox("Enter new video:") VideoLoc(intNumVideos) = InputBox("Enter video location:") VideoPrice(intNumVideos)=CCur(InputBox("Enter video price:")) intNumVideos = intNumVideos + 1End Sub

Pseudocode to Delete an Array Element

Begin Procedure Repeat for each element starting with DeletedIndex ArrayElement(Index) = ArrayElement(Index + 1) End repeat Number of Elements = Number of Elements - 1End procedure

VB Code Box 7-16Code to Find Array Index

Public Function FindDelete() As Integer Dim intCounter As Integer, strFindPhoneNum As String intFindDelete = -1 strFindPhoneNum = InputBox("Input phone number to be deleted") For intCounter = 0 To intNumMembers - 1 If strPhoneNumbers(intcounter) = strFindPhoneNum Then intFindDelete = intCounter Exit For End If NextEnd Function

VB Code Box 7-17

Code to Delete Array ElementPublic Sub Delete(intFoundIndex As Integer) Dim intCounter As Integer, strOkToDelete As String If intFoundIndex >= 0 Then strOkToDelete = InputBox("Ok to delete record for " _ & strPhoneNumbers(intstrFoundIndex) & " Y or N ?") Else MsgBox "No one with that phone number!", _ vbExclamation Exit Sub End If If UCase(strOkToDelete) = "Y" Then For intCounter = intFoundIndex To intNumMembers - 2 strMembers(intCounter) = strMembers(intCounter + 1) strPhoneNumbers(intCounter) = strPhoneNumbers(intCounter + 1) curLateFees(intCcounter) = LateFees(intCcurounter + 1) Next intNumMembers = intNumMembers - 1 Else MsgBox "Record not deleted", vbInformation End IfEnd Sub

VB Code Box 7-18CmdPrint Event Procedure to Print Sorted Membership List

Private Sub cmdPrint_Click() Sort strMembers(), strPhoneNumbers(), curLateFees(), _ intNumMembers PrintInfo strMembers(), strPhoneNumbers(), curLateFees(), _ intNumMembersEnd Sub

VB Code Box 7-19

Code for Sort SubPublic Sub Sort(strList1() As String, strList2() As String, _ curList3() As Currency, intNum As Integer) Dim blnNotSwitched As Boolean, intCounter As Integer Dim intNextToLast As Integer blnNotSwitched = False intNextToLast = intNum - 2 Do Until blnNotSwitched blnNotSwitched = True For intCounter = 0 To intNextToLast If strList1(intCounter) > strList1(intCounter + 1) Then ReverseStr strList1(intCounter), strList1(intCounter + 1) ReverseStr strList2(intCounter), strList2(intCounter + 1) Reverse curList3(intCounter), curList3(intCounter + 1) blnNotSwitched = False End If Next LoopEnd Sub

VB Code Box 7-20

Code for Print Sub

Sub PrintInfo(strList1() As String, strList2() As _String, curList3() As Currency, intNumItems As Integer) Dim intCounter As Integer For intCounter = 0 To inntNumItems - 1 Debug.Print strList1(intCounter);Tab(20); _ strList2(Counter); _ Tab(30); _ Format(curList3(intCounter),"Currency") NextEnd Sub

VB Code Box 7-21Code to Exit the Project

Private Sub cmdExit_Click() Dim intCounter As Integer Open "a:\chapter7\members7.txt" For Output As #10 For intCounter = 0 To intNumMembers - 1 Write #10, strMembers(intCounter), strPhoneNumbers(intCounter), _ curLateFees(inntCounter) Next Open "a:\chapter7\videos.txt" For Output As #3 For intCounter = 0 To intNumVideos - 1 Write #3, strVideos(intCounter), curVideoPrice(intCounter), _ strVideoLoc(intCounter) Next Close #3 Close #10 EndEnd Sub


Recommended