Opgave 18.3 Boten

a    algemeen
In een waterrijke omgeving exploiteert een bedrijf een aantal luxueus ingerichte boten. Deze boten worden verhuurd voor presentaties, feestjes, bedrijfsuitstapjes en dergelijke. In een relatief bestand op schijf zijn per boot onder meer de naam en het maximale aantal personen opgeslagen. De huurprijs van een boot is afhankelijk van het maximale aantal personen dat kan worden toegelaten op die boot. Het computerprogramma botenverhuur moet een prijslijst samenstellen waarop van elke boot de prijs exclusief en inclusief BTW is vermeld.


b    btw
Het programma begint met het opvragen van het geldende BTW-percentage. Die invoer moet plaatsvinden met twee cijfers vóór en twee cijfers na de komma. De invoer zou bijvoorbeeld 18,50 kunnen zijn. In plaats van de komma mag ook een punt worden getoetst: 18.50 is dus ook goed. De invoer vindt plaats vanaf het standaardinvoermedium.

illustratie: Geert Nijmolen

cartoon


c    ketting
De records van het bestand boten zijn via een enkelvoudige ketting met elkaar verbonden. Dat wil zeggen dat elk record een verwijzing bevat naar het recordnummer van het logisch erop volgende record. Op deze manier kan een alfabetische volgorde op bootnaam worden gerealiseerd zonder dat de records fysiek in alfabetische volgorde behoeven te zijn opgeslagen.
Het eerste record van het bestand is een afwijkend record. Het bevat geen gegevens over een boot, maar het startpunt van de ketting. Stel dat het eerste record 05 bevat. Dat betekent dat het eerste 'echte' record zich bevindt op recordplaats 5. Het record op recordplaats 5 bevat dan bij voorbeeld een verwijzing naar recordplaats 07. Daar bevindt zich het volgende record. Enzovoort. Het aantal recordplaatsen in het bestand bedraagt minder dan 100. Een verwijzing 00 betekent dat het einde van de ketting is bereikt.


d    tabellen
Voor het bepalen van de basisprijs per dag (dat is de prijs exclusief BTW) wordt gebruik gemaakt van twee tabellen: max-personen en basisprijs, beide van elf elementen.

max-personen      basisprijs
     10            75,00
     15           125,00
     20           132,50
     25           147,50
     30           175,00
     50           205,25
     75           225,00
    100           312,50
    150           329,75
    200           457,50
400 of hoger      527,25
  

Uitgaande van het aantal personen dat op een boot terecht kan, wordt de bijbehorende prijs opgezocht. Ligt het aantal personen tussen twee tabelelementen in, dan geldt de hoogste waarde. Voor een boot van 45 personen maximaal, geldt dus dezelfde prijs als voor een boot van 50 personen: 205.25.

e    bestand BOTEN

bestand boten


f    uitvoer
medium: papier (implementor-mame is PRINTER)
Kopregel:       NR BOOTNAAM       MAX  EXCL.   INCL.
Na de kopregel volgt een blanco regel
Detailregel:    Z9 XXXXXXXXXXXX  ZZ9 ZZZ9.99 ZZZ9.99


g    declaratives
Als zich met het bestand boten een leesprobleem voordoet, dan moet op het standaarduitvoermedium een boodschap verschijnen, waarna het programma wordt gestopt. De boodschap luidt: I/O-probleem bij botenbestand. Record 99.
Op de plaats van 99 moet het nummer staan van de recordplaats waar zich het leesprobleem voordeed.


h    programmastructuurdiagrammen
De werking van het programma is neergelegd in schema's. 

psd hoofd

psd voorbereiding

omslag 'Tijd voor COBOL Werkboek'

Serie: leerboeken informatica

Titel: Tijd voor COBOL 2 Werkboek

Auteur: Andree Hollander

naamlogo