http://www.nada.kth.se/kurser/kth/2D1350/progp05/C/lab9.html
KTH 2D1350, Programmeringsparadigm 2005
Laboration
Nada

Laboration 9

I denna laboration ska du rätta och förbättra ett bankomatprogram. Registret ska implementeras med hjälp av en länkad lista. För att bli godkänd på labben måste ditt program fungera och uppfylla en del krav.

Det här programmet använder sig av sockets. Det finns en serverdel med två klasser ATMServer, ATMServerThread som datorkonsultföretaget Viebrapadata har skrivit. Klientdelen ATMClient har företaget Snilledata skrivit. Programmen fungerar nästan.

Sätt dig in i koden. Kompilera koden. Starta en server java ATMServer &. Öppna en ny terminal på samma maskin och starta klienten med java ATMClient 127.0.0.1. Prova att köra programmet några gånger. Prova med två samtidigt uppkopplade klienter. Lägg märke till att saldo återställs för den andra klienten även om man tagit ut pengar med första klienten. Det tycker inte banken är bra.

Programmet ska utökas så att man kan logga in på banken med kortnummer och kod. Banken (servern) ska kunna hålla rätt på pengarna. När man kopplar upp sig nästa gång ska korrekt saldo återges.

De båda företagen är sura på varandra för att det går dåligt att samarbeta. När Viebrapadata släppte en ny version av servern slutade klienten att fungera beroende på att servern hade ändrat sin meny så att den skrev ut alternativen lodrätt på skärmen. Man var tvungen att återgå till den gamla serverversionen. Varför slutade klienten att fungera?

Du ska nu hjälpa till i både klient- och serverdelen. Skriv kod så att följande krav uppfylls.

Krav

  1. Man ska kunna logga in med kortnummer och sifferkod
  2. Banken ska kunna spara tillstånd för minst tre användare. Olika användare ska kunna logga in och ändra sitt saldo
  3. Du ska specificera ett protokoll så att serverdelen kan ändra sina meddelanden utan att klientdelen slutar fungera. T.ex. ska serverdelen kunna skriva ut menyn lodrätt
  4. Banken kräver att koden ska kommenteras bra! Protokollet ska kommenteras och illustreras separat
Vid redovisning

Lycka till!