Med kap. 2's hierarisk input-processing-output (HIPO) lagde dere i grupper:
- Reisevelger
- Innlogging
- Les inn navn og passord
- Sjekk navn og passord
- Gi svar
- Velg reise
- Les inn reisemål og priser
- Ta imot valgt reisemål
- Vis pris
Etter pausen laget vi et design for "Reisevelger:Oppstart:Less inn brukere". Først måtte datagrunnlaget designes (forslaget om database ble forkastet, det kommer senere!). Vi antar en tekstfil med en bruker per linje - hver linje har brukerens navn (pos 0-19), passord (20-39) og max. antall forsøk (resten). Logikken ble (nå, når datagrunnlaget er bestemt) uttrykt i et flytkart (kap. 2) med a) åpn fil, b) er det mer igjen så les neste bruker og husk denne, evt. c) hvis ingen flere, steng filen. Derpå brukte vi kap. 6's gjentakelser (med adaptive Do, for vi vet jo ikke hvor mange brukere som ligger i filen!) og fikk kap. 2's pseudokode:
f = åpne opp fil
Do While not f.endofstream()
s = f.readline()
b = lagbruker(s)
huskbruker(b)
Loop
og brukte kap. 7's "Structure" til å lage Bruker og "Array" til å lage tabell av brukere.
Structure Bruker
Dim navn as String
Dim passord as String
Dim maxAntallForsok as Integer
End Structure
Dim brukere(99) as Bruker
Dim antBrukere as Integer=0
Function lagBruker (ByVal s as String) As Bruker
Dim ny as Bruker
ny.navn = s.substring (0,20).trim()
ny.passord = s.substring (20,20).trim()
ny.maxAntallForsok = CInt (s.substring(40).trim() )
Return ny
End Function
Sub huskBruker (ByVal b as Bruker)
brukere(antBrukere) = b
antBrukere++
End Sub
Ingen kode ble skrevet inn (i VS). Det er plass til 100 brukere i tabellen, så prosessen vil krasje (runtime-feil) idet den 101. forsøkes innlagt.
Ingen kommentarer:
Legg inn en kommentar