       IDENTIFICATION DIVISION.
       PROGRAM-ID. STEMMEN5.

       DATA DIVISION.
       WORKING-STORAGE SECTION.
       01  WS-KEUZE        PIC 9     VALUE 9.
       01  WS-VALID        PIC X     VALUE "N".

       01  ST1             PIC 9(5)  VALUE 0.
       01  ST2             PIC 9(5)  VALUE 0.
       01  ST3             PIC 9(5)  VALUE 0.
       01  ST4             PIC 9(5)  VALUE 0.
       01  ST5             PIC 9(5)  VALUE 0.

       01  TOTAAL-STEMMEN  PIC 9(6)  VALUE 0.

       01  P1              PIC 9(3)  VALUE 0.
       01  P2              PIC 9(3)  VALUE 0.
       01  P3              PIC 9(3)  VALUE 0.
       01  P4              PIC 9(3)  VALUE 0.
       01  P5              PIC 9(3)  VALUE 0.

       01  WIN-NR          PIC 9     VALUE 0.
       01  WIN-STEM        PIC 9(5)  VALUE 0.

       PROCEDURE DIVISION.
       MAIN-PARA.
           MOVE 9 TO WS-KEUZE
           PERFORM STEM-CYCLUS
           PERFORM BEPAAL-WINNAAR
           PERFORM BEREKEN-PERCENTAGES
           PERFORM TOON-RESULTATEN
           STOP RUN.

       STEM-CYCLUS.
           PERFORM UNTIL WS-KEUZE = 0
              PERFORM TOON-MENU
              PERFORM LEES-KEUZE
              IF WS-KEUZE NOT = 0
                 PERFORM VERWERK-STEM
              END-IF
           END-PERFORM.

       TOON-MENU.
           DISPLAY "==============================="
           DISPLAY " STEMSYSTEEM - 5 KANDIDATEN"
           DISPLAY "==============================="
           DISPLAY "1 - Kandidaat 1"
           DISPLAY "2 - Kandidaat 2"
           DISPLAY "3 - Kandidaat 3"
           DISPLAY "4 - Kandidaat 4"
           DISPLAY "5 - Kandidaat 5"
           DISPLAY "0 - STOP"
           DISPLAY "Uw keuze (0-5): " WITH NO ADVANCING.

       LEES-KEUZE.
           MOVE "N" TO WS-VALID
           PERFORM UNTIL WS-VALID = "J"
              ACCEPT WS-KEUZE
              IF WS-KEUZE >= 0 AND WS-KEUZE <= 5
                 MOVE "J" TO WS-VALID
              ELSE
                 DISPLAY "Ongeldige keuze (0-5)."
                 DISPLAY "Uw keuze (0-5): " WITH NO ADVANCING
              END-IF
           END-PERFORM.

       VERWERK-STEM.
           EVALUATE WS-KEUZE
              WHEN 1 ADD 1 TO ST1
              WHEN 2 ADD 1 TO ST2
              WHEN 3 ADD 1 TO ST3
              WHEN 4 ADD 1 TO ST4
              WHEN 5 ADD 1 TO ST5
           END-EVALUATE
           ADD 1 TO TOTAAL-STEMMEN.

       BEPAAL-WINNAAR.
           MOVE 0 TO WIN-NR
           MOVE 0 TO WIN-STEM

           IF ST1 > WIN-STEM
              MOVE 1 TO WIN-NR
              MOVE ST1 TO WIN-STEM
           END-IF

           IF ST2 > WIN-STEM
              MOVE 2 TO WIN-NR
              MOVE ST2 TO WIN-STEM
           END-IF

           IF ST3 > WIN-STEM
              MOVE 3 TO WIN-NR
              MOVE ST3 TO WIN-STEM
           END-IF

           IF ST4 > WIN-STEM
              MOVE 4 TO WIN-NR
              MOVE ST4 TO WIN-STEM
           END-IF

           IF ST5 > WIN-STEM
              MOVE 5 TO WIN-NR
              MOVE ST5 TO WIN-STEM
           END-IF.

       BEREKEN-PERCENTAGES.
           IF TOTAAL-STEMMEN > 0
              COMPUTE P1 = (ST1 * 100) / TOTAAL-STEMMEN
              COMPUTE P2 = (ST2 * 100) / TOTAAL-STEMMEN
              COMPUTE P3 = (ST3 * 100) / TOTAAL-STEMMEN
              COMPUTE P4 = (ST4 * 100) / TOTAAL-STEMMEN
              COMPUTE P5 = (ST5 * 100) / TOTAAL-STEMMEN
           END-IF.

       TOON-RESULTATEN.
           DISPLAY " "
           DISPLAY "==============================="
           DISPLAY " STEMRESULTATEN"
           DISPLAY "==============================="
           DISPLAY "Totaal stemmen: " TOTAAL-STEMMEN
           DISPLAY " "
           DISPLAY "Kandidaat 1: " ST1 " (" P1 "%)"
           DISPLAY "Kandidaat 2: " ST2 " (" P2 "%)"
           DISPLAY "Kandidaat 3: " ST3 " (" P3 "%)"
           DISPLAY "Kandidaat 4: " ST4 " (" P4 "%)"
           DISPLAY "Kandidaat 5: " ST5 " (" P5 "%)"
           DISPLAY " "

           IF WIN-STEM = 0
              DISPLAY "Geen stemmen uitgebracht."
           ELSE
              DISPLAY "Winnaar: kandidaat " WIN-NR
              DISPLAY "Stemmen: " WIN-STEM
           END-IF.

