Hoppa till huvudinnehållet
Institutionen för informationsteknologi

Laboration 3

Utkast. Mindre justeringar kan göras

Efter denna laboration ska du behärska en enkla objekt Javaprogram.

Labbarna ska får genomföras och redovisas i par. Enskilt arbete är tillåtet, men pararbete rekommenderas. Man får inte arbeta mer än två i samma grupp. Muntligt samarbete är tillåtet och rekommenderat.

Vi rekommenderar att du inför labben har skissat på papper på programkoden för de olika uppgifterna, eller att du har tänkt igenom uppgifterna i syfte att komma med förberedda frågor till Mayank.

Skriv så enkla program du kan, som uppfyller uppgiftsspecifikationen. Inga felkontroller på indata, rimlighetskontroller eller dylikt behövs.

Labbarna ska redovisas genom att programlistningar lämnas in till Jesper senast den 21/4 00:00 (natten mellan onsdag och torsdag) för de program ni har skrivit. Ingen separat dokumentation, körningsexempel eller förklaringar till programmen behöver finnas med. Bara en inlämning per grupp behöver lämnas in.

Följande regler gäller:

  • Varje program ska vara på en separat sida, eller om så behövs flera sidor. Programlistningarna för de tre programmen ska vara hophäftade till en bunt.
  • Varje program ska börja med tre kommentarrader (Skansholm s. 36 samt s. 613)
  • Den första raden ska innehålla ditt namn
  • Den andra raden ska innehålla deluppgiftens nummer
  • Den tredje raden ska innehålla en fullständig adress till programmet, läsbar för gruppen övriga. (Kolla gärna i ditt Unix-häfte)
  • Programkörning eller dylikt behöver inte visas upp för labhandledare.
  • I syfte att upptäcka eventuellt fusk, för den händelse sådant förekommer, förbehåller vi oss rätten att på olika sätt kontrollera att du själv har skrivit de program du lämnar in.

Genomförande

Alla uppgifter nedan bör lösas på följande sätt.

  1. För den här och kommande labbar kommer du att behöva ladda extra-paketet i BlueJ. Du kan hitta information om hur detta görs här.
  2. Skapa en klass för uppgiften genom att trycka på New Class...-knappen i BlueJ.
  3. Döp klassen till Main.
  4. Dubbelklicka på den ruta som bildas för din klass för att få fram källkoden.
  5. Ta bort all kod i källkoden som ligger mellan { och } i koden för klassen. Det enda som ska finnas kvar är således kommentarerna högst upp (om du vill, du måste utöka dem med de ovan i så fall) och public class Main { }.
  6. Skapa din klass för uppgiften och lägg all kod som rör klassen där - konstruktorer, metoder, variabler, etc. Tanken är att du skapar dina objekt från Main-klassen men du ska ha en sepparat klass för huvuddelen av uppgiften.
  7. Skapa en main-metod i din Main-klass som använder sig av din huvudklass. Vill du skapa hjälpfunktioner går det bra, men det kan vara bra att se till att de är privata private. De behöver alltså inte gå att anropa utanför klassen sig själva.
  8. När du har skrivit klart din kod så tryck på Compile-knappen. Rätta till alla fel.
  9. För att testa din kod, högerklicka på din klass i huvudfönstret och välj att köra main-metoden.
  10. Se om resultaten överensstämmer med det du förväntar dig.
  11. Om något är konstigt eller om du kör fast så fråga handledaren.

Uppgift

Skriv en klass Komplex, som beskriver komplexa tal.

Klassen ska kunna hantera inmatning, utmatning (båda mycket enkla) av komplexa tal, samt de fyra räknesätten.

Utmatningen ska kunna ske både på rektangulär form (x + iy) samt polär form (angivet som en vinkel j , samt en radie r), medan det är tillfyllest om inmatningen kan ske på rektangulär form. Du ska själv skriva dina konstruktorer.

Programmet ska återspegla en god programmeringssed för objektorienterad programmering. Till exempel så ska bägge talen finnas oförändrade kvar efter en aritmetisk operation. Det nya talet ska skapas utifrån de gamla, men de gamla får inte ändras.

Ett exempel på ett utdrag ur ett testprogram finns nedan. Du får naturligtvis använda andra namn på dina variabler och metoder.

k1 = new Komplex();

k2 = new Komplex();

k1.mata_in();

k2.mata_in();

k3 = k1.add(k2);

k3.skriv_ut_rekt();

Tips: Skriv ett enkelt program, genomtänkt men enkelt.

Uppdaterad  2005-04-19 20:22:41 av Anders Berglund.