HØGSKOLEN I SØR-TRØNDELAG



Like dokumenter
HØGSKOLEN I SØR-TRØNDELAG

HØGSKOLEN I SØR-TRØNDELAG

HØGSKOLEN I SØR-TRØNDELAG

HØGSKOLEN I SØR-TRØNDELAG

HØGSKOLEN I SØR-TRØNDELAG

HØGSKOLEN I SØR-TRØNDELAG

HØGSKOLEN I SØR-TRØNDELAG Avdeling for informatikk og e-læring - AITeL

HØGSKOLEN I SØR-TRØNDELAG

HØGSKOLEN I SØR-TRØNDELAG Avdeling for informatikk og e-læring -

HØGSKOLEN I SØR-TRØNDELAG

HØGSKOLEN I SØR-TRØNDELAG

Løsningsforslag til eksamen i INF1000 våren 2006

TOD063 Datastrukturer og algoritmer

HØGSKOLEN I SØR-TRØNDELAG Avdeling for informatikk og e-læring - AITeL

HØGSKOLEN I SØR-TRØNDELAG Avdeling for informatikk og e-læring - AITeL

HØGSKOLEN I SØR-TRØNDELAG Avdeling for informatikk og e-læring - AITeL

HØGSKOLEN I SØR-TRØNDELAG

Algoritmer og datastrukturer Kapittel 11 - Delkapittel 11.2

HØGSKOLEN I SØR-TRØNDELAG Avdeling for informatikk og e-læring - AITeL

HØGSKOLEN I SØR-TRØNDELAG

HØGSKOLEN I SØR-TRØNDELAG Avdeling for informatikk og e-læring AITeL

INF Løsning på seminaropppgaver til uke 8

HØGSKOLEN I SØR-TRØNDELAG

HØGSKOLEN I SØR-TRØNDELAG

HØGSKOLEN I SØR-TRØNDELAG Avdeling for informatikk og e-læring - AITeL

UNIVERSITETET I OSLO

Eksamen i Internetteknologi Fagkode: ITE1526

UNIVERSITETET I OSLO

HØGSKOLEN I SØR-TRØNDELAG Avdeling for informatikk og e-læring - AITeL

HØGSKOLEN I SØR-TRØNDELAG

HØGSKOLEN I SØR-TRØNDELAG Avdeling for informatikk og e-læring - AITeL

Løsningsforslag Test 2

HØGSKOLEN I SØR-TRØNDELAG Avdeling for informatikk og e-læring - AITeL

lfæ~~~~:::j~~:~l -.~=:~-t::-d I Alle trykte og håndskrevne EKSAMENSOPPGA VE Side l av 5 Eksamenstid:

INF 1010, vår 2005 Løsningsforslag uke 11

Hittil har programmene kommunisert med omverden via tastatur og skjerm Ønskelig at data kan leve fra en kjøring til neste

Klasser skal lages slik at de i minst mulig grad er avhengig av at klienten gjør bestemte ting STOL ALDRI PÅ KLIENTEN!

HØGSKOLEN I SØR-TRØNDELAG Avdeling for informatikk og e-læring - AITeL

EKSAMEN 6108/6108N PROGRAMMERING I JAVA Alt trykt og skriftlig materiale.

HØGSKOLEN I SØR-TRØNDELAG

Eksamen i emnet INF100 Grunnkurs i programmering (Programmering I) og i emnet INF100-F Objektorientert programmering i Java I Løsningsforslag

Eksamen i emnet INF100 Grunnkurs i programmering (Programmering I) og i emnet INF100-F Objektorientert programmering i Java I

HØGSKOLEN I SØR-TRØNDELAG

HØGSKOLEN I SØR-TRØNDELAG

HØGSKOLEN I SØR-TRØNDELAG

UNIVERSITETET I OSLO

OPPGAVE 5b og 8b Java Kode

INF1010 våren 2018 tirsdag 23. januar

Oblig 4Hybelhus litt mer tips enn i oppgaven

HØGSKOLEN I SØR-TRØNDELAG Avdeling for informatikk og e-læring - AITeL

INF106 Objektorientert programmering

UNIVERSITETET I OSLO

HØGSKOLEN I SØR-TRØNDELAG Avdeling for informatikk og e-læring - AITeL

HØGSKOLEN I SØR-TRØNDELAG

INF1010 våren 2017 Onsdag 25. januar. Litt om unntak i Java

Leksjon 7. Filer og unntak

Hva er verdien til variabelen j etter at følgende kode er utført? int i, j; i = 5; j = 10; while ( i < j ) { i = i + 2; j = j - 1; }

Objektorientert Programmering Ekstraordinær eksamen 2014

HØGSKOLEN I SØR-TRØNDELAG

Videregående programmering 6

1. Finn klassene (hvilke objekter er det i problemet) 1. Dataene som beskriver problemet (hvilke objekter har vi og hvor mange klasser er det?

EKSAMEN. Dato: 9. mai 2016 Eksamenstid: 09:00 13:00

INF1010 våren 2019 Onsdag 30. januar. Mer om unntak i Java (med litt repetisjon av I/O først)

1. NetBeans IDE: Lage en enkel mobilapplikasjon

UNIVERSITETET I OSLO

Eksamen. Objektorientert Programmering IGR 1372

EKSAMENSFORSIDE Skriftlig eksamen med tilsyn

HØGSKOLEN I SØR-TRØNDELAG

IN1010 våren januar. Objektorientering i Java

Forkurs INF1010. Dag 3. Andreas Færøvig Olsen Eivind Storm Aarnæs

HØGSKOLEN I SØR-TRØNDELAG Avdeling for informatikk og e-læring - AITeL

Eksamen Objektorientert Programmering 2012

. Ved sensur vl1 ahe bokstaverte deloppgaver (a, b, c,...) telle like mye.

UNIVERSITETET I OSLO

Forkurs INF1010. Dag 3. Andreas Færøvig Olsen Gard Inge Rosvold Institutt for Informatikk, 15.

HØGSKOLEN I SØR-TRØNDELAG

Å lese tall fra en fil, klassen Scanner

Repetisjon. INF gruppe 13

Oblig 4 (av 4) INF1000, høsten 2012 Værdata, leveres innen 9. nov. kl

HØGSKOLEN I SØR-TRØNDELAG Avdeling for informatikk og e-læring

Mer objektorientert programmering

HØGSKOLEN I SØR-TRØNDELAG

Kom forberedt til tirsdag. INF1000 Tips til obligatorisk oppgave 4. Noen generelle tips. Oblig4: Komme igang

HØGSKOLEN I SØR-TRØNDELAG

Eksamen i emnet INF100 Grunnkurs i programmering (Programmering I) Løsningsforslag

IN Notat om I/O i Java

Algoritmer og datastrukturer Eksamen

INF100 Institutt for informatikk Universitetet i Bergen Øving 5

UNIVERSITETET I OSLO

LITT OM OPPLEGGET. INF1000 EKSTRATILBUD Stoff fra uke September 2012 Siri Moe Jensen EKSEMPLER

INF2100. Oppgaver 26. september til 1. oktober 2007

G høgskolen i oslo. Emne: Algoritmer og datastrukturer. Emnekode: 80131A. Faglig veileder: UlfUttersrud. Gruppe(r) : Dato:

Socket og ServerSocket

UNIVERSITETET I BERGEN Det matematisk-naturvitenskapelige fakultet

UNIVERSITETET I OSLO

UNIVERSITETET I OSLO

LC191D Videregående programmering Høgskolen i Sør-Trøndelag, Avdeling for informatikk og e-læring. Else Lervik, januar 2012.

HØGSKOLEN I SØR-TRØNDELAG

INF2100. Oppgaver 23. og 24. september 2010

INF1010 våren januar. Objektorientering i Java

Transkript:

HØGSKOLEN I SØR-TRØNDELAG Avdeling for informatikk og e-læring Kandidatnr: Eksamensdato: 14.desember 2007 Varighet: 0900-1200 Fagnummer: Fagnavn: Klasser: LO347D Web-applikasjoner med Java EE Nettstudenter Studiepoeng: 6 Faglærer(e): Hjelpemidler: Oppgavesettet består av: Vedlegg består av: Else Lervik Lærebøker, alle håndskrevne og trykte hjelpemidler. 2 oppgaver og 6 sider (inkludert forside og vedlegg) 2 sider Merknad: Oppgaveteksten kan beholdes av studenter som sitter eksamenstiden ut. Lykke til! 1

Oppgave 1 JSP vekt 20% Du skal lage en liten ordlek som fungerer som følger: Bruker 1 skriver en tekst. Bruker 2 får opp de siste ordene i teksten og fortsetter. Bruker 3 kan også kople seg på. Det vil si at alle som laster ned siden arbeider med den samme teksten som de utvider på bakgrunn av de hittil siste ordene. Brukergrensesnittet skal være meget enkelt: Dette er en lek er de fire siste ordene i teksten hittil. Brukeren skal skrive inn fortsettelsen. Et trykk på Send-knappen skal gi ut en side med hele teksten (ikke bare de fire siste ordene) slik den ser ut nå. Lag denne siden på enkleste måte. Siden skal ha en Tilbake-knapp som fører brukeren tilbake til siden vist over. All koden legges i samme jsp-fil, og den må lages slik at brukeren alltid først kommer til siden over. Lag siden slik at de fire siste ordene som er lagt inn skrives ut. Du kan anta at det eksisterer en ferdig metode, String hentsisteordene(), som gir deg disse ordene. Vis hvor i koden denne metoden kan plasseres. Applikasjonen lages slik at teksten nullstilles når webtjeneren starter på nytt. Teksten skal ikke lagres på fil eller i database. Oppgave 2 JSF Du skal i denne oppgaven arbeide med bøkene du kjenner fra øving 8. Om hver bok vet vi nå ISBN (globalt entydig boknr), tittel og forfattere. Funksjonaliteten skal være som følger: Brukeren skriver inn deler av ISBN, tittelen og/eller forfatteren. Programmet skal søke på disse verdiene (søkemetoden er gitt), og resultatet skal vises i tabellform i et eget vindu. 2

Hvis ingen bøker passer med søket, skal søket skrives ut, omtrent slik (her er ordet systemering lagt inn under tittel, ellers er det ingenting verken på ISBN eller forfatter): 3

Oppgave a vekt 60% Vedlagt finner du Klassen Bok Klassen Bibliotek Fil med tekster som skal brukes i jsf-koden (tekster.properties) Du skal nå lage det som trengs i tillegg for at applikasjonen skal fungere som beskrevet foran. Bok-informasjonen skal leses inn (se konstruktøren, klassen Bibliotek) i et objekt som er felles for alle brukerne av applikasjonen. Lag tre filer med jsf-kode, en for hver av de tre vinduene. Legg ikke inn noen form for datakontroll. Legg vekt på funksjonaliteten, ikke på hvordan sidene ser ut (formatering/stilark). Lag en eller flere Java-klasser som trengs i tillegg til de to klassene som er gitt. For å spare skrivearbeid kan du forenkle deklareringen av den enkleste typen egenskaper. Eksempel: I stedet for private String forfatter; public String getforfatter() { return forfattersøk; public void setforfatter(string nyforfatter) { forfatter = nyforfatter; kan du skrive: EGENSKAP forfatter Men vær nøye med at navnet på egenskapen er korrekt. Du må skrive fullstendig kode for egenskaper som ikke passer inn i denne malen. Sett opp det du trenger i faces-config.xml i tillegg til de første linjene som er felles for alle slike filer: <?xml version="1.0" encoding="iso-8859-1"?> <faces-config xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/xmlschema-instance" xsi:schemalocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-facesconfig_1_2.xsd" version="1.2"> Oppgave b vekt 20% Sett opp tilleggskode (vis hvor koden skal plasseres i løsningen fra a)) som kontrollerer at isbn som skrives inn, ikke består av andre tegn enn sifrene 0-9 og bindestreker. Det skal gis en meningsfylt feilmelding dersom brukeren skriver inn andre tegn. Datakontrollen skal skje i fasen som heter Process Validation i livssyklusen til JSF-siden. 4

Vedlegg Klassen Bok /* * Bok.java */ package boksok; public class Bok { private String isbn = ""; private String forfatter = ""; private String tittel = ""; public Bok() { public Bok(String isbn, String forfatter, String tittel) { this.isbn = isbn; this.forfatter = forfatter; this.tittel = tittel; /* EGENSKAP: isbn */ public String getisbn() { return isbn; public void setisbn(string nyisbn) { isbn = nyisbn; /* EGENSKAP: tittel */ public String gettittel() { return tittel; public void settittel(string nytittel) { tittel = nytittel; /* EGENSKAP: forfatter */ public String getforfatter() { return forfatter; public void setforfatter(string nyforfatter) { forfatter = nyforfatter; public String tostring() { return isbn + ", " + forfatter + ", " + tittel; Filen tekster.properties (\u00f8 = ø) sidetittel=boks\u00f8k overskrift=s\u00f8k etter b\u00f8ker isbn=isbn tittels\u00f8k=hele eller deler av tittelen forfatters\u00f8k=hele eller deler av forfatternavn s\u00f8k=s\u00f8k ingenfunnet=ingen b\u00f8ker funnet funnet=b\u00f8ker funnet forfatter=forfatter(e) tittel=tittel tilbake=tilbake 5

Klassen Bibliotek /* * Bibliotek.java */ package boksok; import java.util.arraylist; import java.io.*; public class Bibliotek { public static String FILNAVN = "webapps/bokinfo.txt"; private ArrayList<Bok> bøker = new ArrayList<Bok>(); public Bibliotek() { try { BufferedReader leser = new BufferedReader(new FileReader(FILNAVN)); String linje = leser.readline().trim(); while (linje!= null) { String isbn = linje; String tittel = leser.readline().trim(); String forfatter = leser.readline().trim(); bøker.add(new Bok(isbn, forfatter, tittel)); linje = leser.readline(); System.out.println("Bok " + tittel + " lest inn fra fil."); catch (FileNotFoundException e) { System.out.println("Filen eksisterer ikke. Kan ikke fortsette."); System.exit(0); catch (IOException e) { System.out.println("Feil ved lesing fra fil: " + e); e.printstacktrace(); /* EGENSKAP: bøker */ public ArrayList<Bok> getbøker() { return bøker; /* Utfører søk */ public ArrayList<Bok> søk(bok søkeinfo) { // ingen variabler i søkeinfo er null ArrayList<Bok> resultater = new ArrayList<Bok>(); String søkeisbn = søkeinfo.getisbn().trim().tolowercase(); String søketittel = søkeinfo.gettittel().trim().tolowercase(); String søkeforfatter = søkeinfo.getforfatter().trim().tolowercase(); for (Bok b : bøker) { boolean funnet = (søk(søkeisbn, b.getisbn()) && søk(søketittel, b.gettittel()) && søk(søkeforfatter, b.getforfatter())); if (funnet) { resultater.add(b); return resultater; /* Hjelpemetode */ private boolean søk(string søketter, String søki) { if (søketter.trim().equals("")) return true; søki = søki.tolowercase(); return (søki.indexof(søketter) >= 0); 6