Læringsmål:
- PLACEHOLDER
Pensum:
- PLACEHOLDER
I denne oppgaven skal alle tidligere funksjoner settes sammen til et kjørende program. Det skal vise en meny til brukeren og la brukeren velge hva den vil gjøre.
Hittil i øvingsopplegget har oppgaveteksten lagt opp til å skrive i en bunn-til-topp (bottom-up) metode. Det vil si å skrive de laveste funksjonen i kalltreet (se figur) først og de øverste til slutt. Den motsatte metoden, topp-til-bunn (top-down) er også mye i bruk, det vil si å skrive de øverste funksjonene først. Dette krever at man holder litt ere tanker i hodet samtidlig, men fører etter trening ofte til en bedre løsning.
Definer følgende funksjoner:
function P = process (P, choice ) fprintf ('Du har valgt %i\n', choice ); end function print_header () fprintf ('Skriver ut en velkomstmelding \n'); end function print_menu () fprintf ('Skriver ut en meny \n'); end function print_footer () fprintf ('Skriver ut en avskjedsmelding \n'); end
Dette kalles funksjonsstubber og er en teknikk som brukes når man skriver i en topp-ned metode. Stubben muligjør at man kan skrive funkjsonen personProgram som f.eks. kaller på process før process-funksjonen er skrevet ferdig. I senere oppgaver skal fprintf-funksjonen byttes ut med den faktiske implementasjonen av funksjonen.
a)
Lag funksjonen personProgram(). Funksjonen skal gjøre følgende:
- Skrive ut velkomstmelding
- Skrive ut meny
- Be brukeren om et tall som representerer et valg i menyen
- Hvis tallet er 0, avslutt
- Ellers: Kall på funksjonen process
- Repter steg 2-4 så lenge brukeren ikke vil avslutte.
Eksempel på utskrift:
Skriver ut en velkomstmelding Skriver ut en meny Velg et tall: 1 Du har valgt 1 Skriver ut en meny Velg et tall: 0 Skriver ut en avskjedsmelding
b)
Fyll ut funksjonen print_header() slik at den skriver ut en passende velkomstmelding. Hovedmenyen skal se slik ut
1. Hent database fra fil 2. Lagre database til fil 3. List alle personer 4. Legg inn ny person 5. Endre en person 0. Avslutt programmet
c)
Lag funksjonen printMenu() som skriver ut menyen.
d)
Fullfør printFooter slik den skriver ut en passende avskjedsmelding.
e)