
Brief
Ni har blivit kontaktade av en kund som vill bygga en helt textbaserad internetbank som är väldigt snabbladdad och inte kräver en webbläsare eller massor av grafik. Ni var ganska skeptiska till en början men eftersom kunden verkade så entusiastisk har ni ändå tagit på er det här uppdraget och måste leverera en första prototyp om några veckor.
Grundläggande krav
- Projektet ska byggas i C++ som en console-applikation
- Projektet måste innehålla flera olika typer av datatyper varav array måste vara en av dessa
- Projektet måste använda flera typer av programstrukturer/programflöden; villkor och loopar
- Projektet måste vara objektorienterat
- Projektet måste använda bra minneshantering och pekare
- Projektet måste versionshanteras med Git. Ni ska ha sparat löpande till Github under arbetet.
- Det ska finnas en del kommentarer i koden. Dels som förklarar vad varje metod eller del av koden gör (ex. de olika funktionerna i programmet) samt kommentarer för kodrader som inte är helt uppenbara vad de gör eller hur de fungerar.
- Se till att ni har bra commit-meddelanden i din Git så det går att förstå vad ni lagt till i varje version.
- Lägga in grundläggande innehåll i den Readme-fil som finns i ditt Git-repository på Github så att någon som ser projektet för första gången får en kort introduktion till strukturen i koden.
Applikationen
Här följer de funktioner ni ska bygga in i ert program.
<aside>
🔒 Start av programmet och inloggning
- [ ] När programmet startar ska användaren välkomnas till banken
- [ ] Användaren ska mata in sitt användarnummer/användarnamn (valfritt hur detta ser ut) och en pin-kod som ska avgöra vilken användare det är som vill använda bankomaten
- [ ] Bankomaten ska ha 5 olika användare som ska kunna använda den. Det behöver inte gå att lägga till fler användare.
- [ ] Om användaren skriver in fel pinkod tre gånger ska det inte gå att försöka logga in igen utan att starta om programmet.
</aside>
<aside>
🧭 Navigera som användare
-
[ ] När användaren lyckats logga in ska bankomaten fråga vad användaren vill göra. Det ska finnas fyra val:
1. Se dina konton och saldo
2. Överföring mellan konton
3. Växla pengar
4. Logga ut
-
[ ] Användaren ska kunna välja en av funktionerna ovan genom att skriva in en siffra.
-
[ ] När en funktion har kört klart ska användaren få upp texten "Klicka enter för att komma till huvudmenyn". När användaren klickat enter kommer menyn upp igen.
-
[ ] Om användaren väljer "Logga ut" ska programmet inte stänga av. Användaren ska komma till inloggningen igen.
-
[ ] Om användaren skriver ett nummer som inte finns i menyn, eller något annat än ett nummer, ska systemet meddela att det är ett "ogiltigt val".
</aside>
<aside>
🔢 Se konton och saldo
- [ ] Denna funktion ska köras när användaren navigerat in till alternativet "Se dina konton och saldo"
- [ ] Användaren ska få en utskrift av de olika konton som användaren har och hur mycket pengar det finns på dessa
- [ ] Konton ska kunna ha både kronor och ören
- [ ] Alla användare ska ha olika antal konton och alla ska ha minst ett konto
- [ ] Varje konto ska ha ett namn ex. "lönekonto" eller "sparkonto"
- [ ] Saldon för alla konton sätts vid starten av programmet (du ställer in en en summa som finns på varje konto i koden) så om programmet startas om återställs alla saldon.
</aside>
<aside>
🔁 Överföring mellan konton
- [ ] Denna funktion ska köras när användaren navigerat in till alternativet "Överföring mellan konton"
- [ ] Användaren ska kunna välja ett konto att ta pengar från, ett konto att flytta pengarna till och sen en summa som ska flyttas mellan dessa
- [ ] Denna summa ska sedan flyttas mellan dessa konton och efteråt ska användaren få se vilken summa som finns på dessa två konton som påverkades
</aside>
<aside>
💱 Växla pengar
- [ ] Denna funktion ska köras när användaren navigerat in till alternativet "Växla pengar"
- [ ] Användaren ska kunna välja ett av sina konton samt en summa
- [ ] Efter detta ska användaren välja en valuta att konvertera summan till
- [ ] Applikationen ska visa hur mycket pengarna kommer vara värda i den nya valutan
- [ ] Användaren ska sedan kunna bekräfta om hen vill växla pengarna
- [ ] Om pengarna ska växlas sätts de nya pengarna in i den nya valutan på ett nytt konto, eller på ett befintligt konto om det redan finns ett konto med den valutan
</aside>