19.12.2012 Views

Computer Programming Concepts and Visual Basic David I. Schneider

Computer Programming Concepts and Visual Basic David I. Schneider

Computer Programming Concepts and Visual Basic David I. Schneider

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

Private Sub DrawData(male() As Single, female() As Single, _ numYears As<br />

Integer)<br />

Dim i As Integer<br />

‘Draw rectangles<br />

For i = 1 To numYears<br />

picEnroll.Line (i - .3, male(i))-(i, 0), , BF<br />

picEnroll.Line (i, female(i))-(i + .3, 0), , B<br />

Next i<br />

End Sub<br />

Private Sub Locate(x As Single, y As Single)<br />

picEnroll.CurrentX = x<br />

picEnroll.CurrentY = y<br />

End Sub<br />

Private Sub ReadData(label() As String, male() As Single, _ female() As<br />

Single, numYears As Integer, maxEnroll As Single)<br />

Dim i As Integer<br />

‘Assume the data have been placed in the file ENROLLMF.TXT<br />

‘(First line is file is “1960”,283,170)<br />

‘Read data into arrays, find highest enrollment<br />

Open ”ENROLLMF.TXT” For Input As #1<br />

maxEnroll = 0<br />

For i = 1 To numYears<br />

Input #1, label(i), male(i), female(i)<br />

If male(i) > maxEnroll Then<br />

maxEnroll = male(i)<br />

End If<br />

If female(i) > maxEnroll Then<br />

maxEnroll = female(i)<br />

End If<br />

Next i<br />

Close #1<br />

End Sub<br />

Private Sub ShowLabels(|label() As String, numYears As Integer, _ maxEnroll As<br />

Single) Dim i As Integer, lbl As String, lblWid As<br />

Single<br />

Dim lblHght As Single, tickFactor As Single<br />

‘Draw tick marks <strong>and</strong> label them<br />

For i = 1 To numYears<br />

lbl = label(i)<br />

lblWid = picEnroll.TextWidth(lbl)<br />

tickFactor = .02 * maxEnroll<br />

picEnroll.Line (i, -tickFactor)-(i, tickFactor)<br />

Call Locate(i - lblWid / 2, -tickFactor)<br />

picEnroll.Print lbl<br />

Next i<br />

lbl = Str(maxEnroll)<br />

lblWid = picEnroll.TextWidth(lbl)<br />

lblHght = picEnroll.TextHeight(lbl)<br />

tickFactor = .01 * numYears<br />

picEnroll.Line (-tickFactor, maxEnroll)-(tickFactor, maxEnroll)<br />

Call Locate(-tickFactor - lblWid, maxEnroll - lblHght / 2)<br />

picEnroll.Print lbl<br />

End Sub<br />

Bar Charts 275

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!