AVDELING FOR INGENIØRUTDANNING EKSAMENSOPPGAVE Emne: Informatikk II Emnekode: LO334E Faglig veileder: Hilde Hemmer Gruppe(r): 2EA,2EB,2EC Dato:14.12.04 Eksamenstid: 9 00-12 00 Eksamensoppgaven består av: Antall sider (inkl. forsiden):5 Antall oppgaver:4 Antall vedlegg:0 Tillatte hjelpemidler: Alle skrevne og trykte. Godkjent kalkulator. Kandidaten må selv kontrollere at oppgavesettet er fullstendig. Ved eventuelle uklarheter i oppgaveteksten skal du redegjøre for de forutsetninger du legger til grunn for løsningen. Utarbeidet av Kontrollert av (en av disse): (faglærer): Annen lærer Sensor Studieleder/ Fagkoordinator Studieleders/ Fagkoordinators underskrift: Oppgave 1 (15%) a) Lag en klasse Person med attributtene String navn og int fødselsår.
b) Lag en klasse Ansatt som arver klassen Person. Denne klassen inneholder i tillegg attributtene int start_år og int avdeling. c) Lag en tostring-metode for klassen Ansatt. d) Lag en konstruktor for klassen Ansatt der alle attributtene leses inn. Anta at det finnes en konstruktor Person(String navn, int f_aar), og vis hvordan denne kan benyttes i konstruktoren i Ansatt. e) Lag et testprogram der du lager en tabell med 5 ansatte, legger 5 objekter inn i tabellen, og skriver ut data om disse. Oppgave 2 (25%) Vi skal lage en applet som vist på figuren. Brukeren taster inn navnet sitt i tekstfeltet, og når brukeren taster return skrives teksten Velkommen ut. Appleten kan presenteres på bokmål eller nynorsk, og teksten foran feltet er Navn: henholdsvis Namn:. Målform velges ut fra en parameter i HTML-fila. HTML-fila ser slik ut: <html> <head> <title> Innlogging</title> </head> <body> <applet code=hilsen.class width=300 height=100> <PARAM NAME="maalform" VALUE="nynorsk"> </applet> </body> </html> a) Deklarer de attributtene (klassevariable) du vil bruke b) Hvordan får du tak i parameteren i HTML-fila? c) Skriv init() metoden.
d) Skriv metoden actionperformed(). For å teste knappen kan du skrive ut Trykket neste når brukeren trykker på knappen. Oppgave 3 (50%) Vi skal lage et program som viser data i form av et kakediagram; se figuren. Vi skal realisere programmet ved hjelp av tre klasser Visdata arver JFrame og inneholder main-metoden, og metoden ActionPerformed() Innlesing av data ligger også i denne klassen, uten at vi ber deg skrive disse metodene. Tegnforklaring arver JPanel, og har en konstruktor public Tegnforklaring(String[] t, Color[] farger) der t[] inneholder tegnforklaringene (Her A, B, C ), og farger[] inneholder tilhørende farger. Denne klassen antar vi er ferdig; og du kan benytte denne. Kakediagram arver JPanel, og inneholder sjølve tegningen av kakediagrammet. OBS Vi ber deg ikke skrive alt som skal til for å realisere dette; selve oppgaven står nedenfor. Vi ber deg ikke om å skrive metoden actionperformed(), ikke om noe som angår stolpediagram, og klassen Tegnforklaring kan du anta er skrevet, slik at du kan benytte den. a) Deklarer de attributtene du vil bruke i klassen Visdata. Noen av den er angitt nedenfor, men antagelig vil du benytte flere.
b) Skriv main-metoden i klassen Visdata c) Skriv konstruktoren i klassen Visdata. La konstruktoren sørge for at kakediagrammet tegnes opp som standard. d) Deklarer attributtene i klassen Kakediagram e) Skriv konstruktoren i klassen Kakediagram f) Skriv metoden paintcomponent i klassen Kakediagram. Bruk metoden fillarc(int x, int y, int width, int height, int startangle, int arcangle) til å tegne kakestykkene. Da skal du ha skrevet alt som skal til for å få tegnet opp figuren (med de forbehold som er tatt over). Hvis du mener noe mangler; skriv det ned, og angi hvilken klasse og eventuelt metode det tilhører. Litt hjelp: Skjelettet til klassen Visdata ser slik ut: public class Visdata extends JFrame implements ActionListener{ final int ANTALL=6; String[] tekster; int[] verdier; Color[] farger=new Color[8]; // inneholder tegnforklaringen //inneholder verdiene //inneholder fargene vi tegner med //flere deklarasjoner public Visdata() { public static void main(string[] args) {.. public void actionperformed(actionevent e){.. Skjelettet til klassen Kakediagram: import java.awt.*; import javax.swing.*; public class Kakediagram extends JPanel { public Kakediagram(..) { public void paintcomponent(graphics g){ Oppgave 4 (10%) Klassen Maaledata har attributtene:
int temperatur; int tid; //klokkeslett, for enkelhets skyld en int String sted; a) Vi ønsker å kunne skrive objekter av typen Maaledata til fil, og lese dem ut igjen. Vis hvordan klassen Maaledata skal deklareres. b) Lag en metode les_data(string filnavn) som leser inn en tabell Maaledata[] data fra fila med navn filnavn.