Utgå från din lösning på inlämningsuppgift 2.
I den uppgiften fanns inget krav på att sakerna i komihåg-listan skulle finnas kvar
om programmet avslutades, men det ska du lägga till i den här uppgiften.
Programmet ska därför spara sina data i ett postlager ("record store").
Några tips
Man behöver inte följa de här förslagen.
-
Studera lektion 9
om hur man lagrar data i ett postlager.
-
Om du lyckades skilja hanteringen av uppgiftslistan i uppgift 2,
till exempel i en särskild klass som heter Uppgiftslista,
från resten av programmet,
så är det huvudsakligen i den klassen som du behöver göra ändringar
för att lagra data i postlagret.
-
Av prestandaskäl bör din MIDlet fortfarande ha en intern lista med Uppgift-objekt.
Vid start av programmet skapar man den listan genom att hämta de lagrade uppgifterna
ur postlagret.
-
Så fort man gör en ändring i uppgifterna
(dvs lägger till en ny, tar bort en gammal, eller ändrar i en uppgift)
så ska motsvarande ändring göras i postlagret.
-
Man kan räkna med att inga andra program samtidigt ändrar i postlagret,
så ditt komihåglisteprogram behöver inte kolla ifall saker plötsligt
ändrats i postlagret medan programmet kör.
-
En post i postlagret innehåller data i form av en byte-array,
och man kan välja olika sätt att översätta mellan Uppgift-objekt och byte-arrayer.
Ett sätt är att först göra en sträng av Uppgift-objektet,
med fält som avgränsas till exempel av kolon.
Om man vill kan man i stället laborera med
ByteArrayOutputStream,
DataOutputStream,
ByteArrayInputStream
och
DataInputStream,
som nämns på sidan 112 i kursboken,
men det är krångligare.
-
Lägg try-catch-block runt alla anrop till postlagret,
och lägg en felutskrift med hjälp av en Alert i catch-grenen,
så du ser om något gick galet, och i så fall vad.
Redovisning
Till den här uppgiften ska du lämna in två saker:
- En skriftlig rapport.
- En fil med källkoden. (En zip-fil, om det finns flera källkodsfiler.)
Rapporten ska innehålla följande:
-
Ett försättsblad med rubrik, namn, e-postadress och datum.
Det måste stå vilken kurs det handlar om.
-
Ett reklamblad, bestående av en enda sida som (gärna med bilder) beskriver
varför man ska köpa just ditt program.
Var informativ - vad är det som faktiskt gör ditt program användbart,
och bättre än konkurrenterna?
Reklamen vänder sig till slutanvändare, inte till programmerare.
-
En kort (2-4 sidor), översiktlig beskrivning av hur ditt program fungerar,
bland annat om hur du valde att göra sparandet av data.
Rita gärna bilder.
Motivera dina designbeslut, i synnerhet valet av sätt att spara av data.
Beskrivningen vänder sig till programmerare, inte till slutanvändare,
och man kan förvänta sig att läsaren har grundkunskaper både om hur man använder mobiltelefoner med Java-stöd
och om hur man programmerar dem.
Syftet med beskrivningen är att underlätta för programmeraren att förstå programkoden,
när hon sen börjar titta på den.
-
Det ska inte vara med någon bruksanvisning eller användarhandledning.
Ett mobiltelefonprogram ska helst vara så enkelt och självklart att använda,
att det inte behövs några särskilda instruktioner.
Läs i
Hur man skriver en rapport
om grunderna för rapportskrivning.
Om ni vill slippa höra mitt eviga gnäll om svenska språket,
så undvik särskrivningar
och satsradningar.
Skicka både rapporten och källkoden med e-post till läraren.
Fler praktiska tips, mest för att underlätta för mig:
-
Skriv gärna i mailet vilken kurs det handlar om,
till exempel "Java ME-uppgift 2", och inte bara "uppgift 2".
-
Testning är en viktig del i all programmering.
Provkör programmet noga för att försöka hitta eventuella fel.
Jag kommer att lägga in, redigera och ta bort uppgifter i olika kombinationer,
med och utan omstarter,
och om du gör det själv först så slipper du kanske skicka in uppgiften igen.
Om samarbete:
Varje student ska göra en egen lösning, och skicka in den,
men det är inte förbjudet att samarbeta eller fråga andra studenter om hjälp.
Däremot ska man i så fall tydligt ange vilka som man samarbetat med.
|
Föregående lektion |
Lektionslista |
Nästa lektion
Thomas Padron-McCarthy
(Thomas.Padron-McCarthy@oru.se),
29 augusti 2008