INF Obligatorisk innlevering 7

Like dokumenter
INF Obligatorisk innlevering 7

INF Obligatorisk innlevering 5

INF Ekstrainnlevering

INF Innleveringsoppgave 6

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

INF Obligatorisk innlevering 6

Obligatorisk oppgave 2: Bilhierarki

Oblig2 - obligatorisk oppgave nr. 2 (av 4) i INF1000

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

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

Oblig2 - obligatorisk oppgave nr. 2 (av 4) i INF1000 v2008

Oppgaver uke 1: Løsningsforslag

Oblig2 - obligatorisk oppgave nr. 2 (av 4) i INF1000 h2006

Oblig2 - obligatorisk oppgave nr. 2 (av 4) i INF1000 v2009

UNIVERSITETET I OSLO

Oblig2 - obligatorisk oppgave nr. 2 (av 4) i INF1000

Innhold. INF1000 Høst Unified Modeling Language (UML) Unified Modeling Language (UML)

Innlevering 2b i INF2810, vår 2017

Fra problem til program

Obligatorisk oppgave 5: Modellering av krav

For å sjekke at Python virker som det skal begynner vi med å lage et kjempeenkelt program. Vi vil bare skrive en enkel hilsen på skjermen.

Oppgaven består av to deler, del A og del B. Alle skal besvare både del A og del B, men det finnes noen valgmuligheter innenfor hver del.

Obligatorisk oppgave nr. 3 (av 4) i INF1000, våren 2006

Oblig4 - forklaringer. Arne og Ole Christian

UNIVERSITETET I OSLO

I dag skal vi ved hjelp av ganske enkel Python-kode finne ut om det er mulig å tjene penger på å selge og kjøpe en aksje.

IN1000 Obligatorisk innlevering 7

Hvordan angripe en større oppgave? (og hva skal jeg gjøre i oblig 7!?)

Objektorientert programmering i Python

Oblig 3 tips litt mer tips enn i oppgaven

INF1010 UML. Marit Nybakken 26. januar 2004

UNIVERSITETET I OSLO

Kan micro:biten vår brukes som en terning? Ja, det er faktisk ganske enkelt!

INF100 INNLEVERING 3 HØSTEN 2004

INF Notat om I/O i Java

Innhold uke 8. Objekter: Bruk og intern organisering. Beskjeder: Oblig 1 6. Beskjeder: Oblig 7 (og 8)

UNIVERSITETET I OSLO

Øvingsforelesning i Python (TDT4110)

Nyttige Linux-kommandoer. Hvordan du kan jobbe mer effektivt Dag Langmyhr

Etter uke 9 skal du. Introduksjon til objektorientert programmering. Innhold. Klasser som abstraksjoner

INF1000: Forelesning 7

MAT-INF 1100: Obligatorisk oppgave 1

UNIVERSITETET I OSLO

2 Om statiske variable/konstanter og statiske metoder.

1 Kodegenerering fra Tau Suiten

Installere JBuilder Foundation i Mandrake Linux 10.0

MAT-INF 1100: Obligatorisk oppgave 1

Det du skal gjøre i denne oppgava er først å sette opp bakgrunnen til spillet og så rett og slett å få firkanter til å falle over skjermen.

Sudokubrettet Et sudokubrett består av n n ruter. Vi bruker følgende begreper i oppgaven:

INF1000: Forelesning 7. Konstruktører Static

Etter uke 6 skal du. Introduksjon til objektorientert programmering. Hva skjedde ~1967? INF1001. Grunnkurs i objektorientert programmering

Tetris. Introduksjon. Skrevet av: Kine Gjerstad Eide. Lag starten på ditt eget tetris spill!

Flytte innhold fra Fronter til Canvas

INF1000: noen avsluttende ord

TDT4110 Informasjonsteknologi, grunnkurs Uke 35 Introduksjon til programmering i Python

UNIVERSITETET I OSLO

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

Arbeidskrav 1. Se fremdriftsplanen for innleveringsfrist. Emneansvarlig: Olav Dæhli 1

RingAccess en innføring

Øving 0 - Xcode TDT4102

Drosjesentralen. I-120: Obligatorisk oppgave 2, 2000

Vårt system kan kjøres ved å skrive. STUD1 konto fredo 37 (holdeplass)

Læringsmål og pensum. v=nkiu9yen5nc

INF1000: noen avsluttende ord

Inspiration-Norge. Brukermanual Kidspiration. Se mer på 2

IN Notat om I/O i Java

Et større programeksempel. Hvordan løse et reelt problem med en objektorientert fremgangsmåte

Hvordan installere Java og easyio på Windows

INF 2820 V2016: Obligatorisk innleveringsoppgave 3

KF Lokal personalhåndbok - brukerveiledning for redaktør

Mer objektorientert programmering

INF1000 Eksamen 2014 (modifisert)

Presentasjon av oblig 2

Informasjon Eksamen i IN1000 høsten 2017

Verden. Steg 1: Vinduet. Introduksjon

INF Uke 10. Ukesoppgaver oktober 2012

INSTALLASJONSVEILEDNING OPPDATERING TIL VERSJON Mamut datax Software DETALJERT STEG-FOR-STEG VEILEDNING FOR HVORDAN

Introduksjon til Eclipse

Informasjon Eksamen i IN1000 og IN1001 høsten a) 1 poeng. 1b) 1 poeng. Tid. Oppgavene. Tillatte hjelpemidler. 30. november kl. 14.

Hvor gammel er du? Hvor gammel er du? Del 1: Skrive ut til skjerm. Gjøre selv. Skrevet av: Sindre O. Rasmussen, Kodeklubben Trondheim

INF Obligatorisk oppgave 2

Man blir så bedt om å oppgi dagens dato, før BIBLIO's hovedmeny kommer til syne i farget tekst.

INF 2120 PROSJEKT: <DROP 3 GRUPPE 7> ATLE WANDSVIK DAMIR NEDIC SOHAIL AHMED CHAUDRY LARS ANTHONY MAPOY FOZIA SAEED

UNIVERSITETET I OSLO

Brukerveiledning for identifisering med BankID

UNIVERSITETET I OSLO

Visma.net Expense. Lederne sitt reiseregningsprogram

Obligatorisk oppgave 6 i INF1010: Dekryptering

Prosjektoppgave. i «IMT Objekt-orientert programmering» våren 2016

Brukerveiledning Agresso - planlegger Innlegging av opprinnelig budsjett, budsjettjusteringer og lokalbudsjett

WinTid Scheduler. Oppgradering til versjon HRM

Prosjektoppgave: Bildedatabase. TDT4145 Datamodellering og Databasesystemer. Våren 2008

Prosjektoppgave: Bildedatabase. TDT4145 Datamodellering og Databasesystemer. Våren 2007

INF1000 Prøveeksamen Oppgave 7 og 9

UNIVERSITETET I OSLO

Programmeringsspråket C Del 3

Programmeringsspråket C Del 3

UNIVERSITETET I OSLO

UNIVERSITETET I OSLO

Løsningsforslag eksamen in105, høsten 2000

Transkript:

INF1000 - Obligatorisk innlevering 7 Frist: 14:00 3. november 2015 Administrasjon av eierskap og utlån av DVD-er I denne oppgaven skal du skrive et program som holder orden på dine egne og andres DVD-er. Programmet skal støtte utlån av DVD-er. Det vil si at det skal være mulig å låne ut DVD-ene en selv eier og låne DVD-er fra andre. Programmet skal holde styr på hvilke DVD-er en person eier, hvilke DVD-er personen eier som er utlånt til andre og hvilke DVD-er personen låner fra andre. Når programmet starter skal du lese fra fil og opprette en datastruktur ut fra det du leser inn. Det skal også være en kommandoløkke i programmet som printer ut en meny og tar imot kommandoer fra bruker. Et eksempel på kjøring av programmet finner du på side 5 og utover. UML-diagrammet som du finner lenger nede viser hvilke klasser du minimum skal bruke for å løse oppgaven, samt relasjonene mellom disse. Innlesing fra og skriving til fil Når programmet starter, skal det lese filen dvdarkiv.txt. Filen inneholder informasjon om hvilke personer som skal være med i systemet, hvilke DVD-er de eier, om de lånes ut og eventuelt hvem de lånes ut til. Se neste avsnitt for hvordan denne filen skal se ut. Tilleggsoppgave (frivillig): Når bruker har avsluttet programmet, skal den oppdaterte datastrukturen skrives tilbake til filen dvdarkiv.txt. Dette er lurt å trene på, men ikke noe krav for å bestå oppgaven. Brukerdialog med kommandoløkke Kommandoløkken skal tilby følgende kommandoer: 1

1: Ny person Oppretter en ny person. Programmet skal be om personens navn. 2: Kjop Lager en ny DVD. Programmet skal be om 1. hvilken person som har kjøpt DVD-en 2. hva tittelen på DVD-en er Husk å sjekke at personen ikke kjøper flere eksemplarer av samme DVD. 3: Laan Brukes når en person vil låne en DVD av en annen. Programmet skal be om 1. hvilken person som vil låne 2. hvilken person det skal lånes fra 3. tittelen på den aktuelle DVD-en Husk å sjekke at eieren virkelig eier den angitte DVD-en og at den ikke allerede er utlånt. Husk også at en person ikke kan låne av seg selv. 4: Vis person Viser en oversikt over alle DVD-ene en spesifikk person eier og låner for øyeblikket. Programmet skal be om hvilken person det skal vises en oversikt for. Hvis navnet angis som *(stjerne), skal oversikten omfatte alle personene i systemet. Oversikten skal for hver person vise 1. tittelen på alle DVD-ene som han eller hun eier 2. hvilke av disse som for tiden lånes ut og hvem som låner dem 3. hvilke DVD-er personen selv har lånt fra andre og hvem de er lånt fra 5: Vis oversikt Gir en oversikt over alle personene i arkivet. For hver person skal det angis 1. hvor mange DVD-er han eller hun eier 2. hvor mange han/hun har lånt ut for tiden 3. hvor mange han/hun selv har lånt 6: Retur Skal benyttes når en lånt DVD skal leveres tilbake til dens rettmessige eier. Programmet skal be om hvilken person som har lånt DVD-en og tittelen til DVD-en. 2

Husk å sjekke at DVD-en finnes og at den har vært utlånt til den angitte personen. 7: Avslutt Avslutter kommandoløkken. Filstruktur Filen dvdarkiv.txt skal ha følgende struktur: Alle personene som er inkludert i programmet skal listes opp først. Hvert navn skal stå på sin egen linje. Etter at alle navnene er listet opp, skal det stå en -(bindestrek) på sin egen linje. Deretter skal en og en person listes opp. Under navnet vil det stå tittelen på DVD-en en selv eier. Hvis den for tiden er leid ut, vil tittelen begynne med en *(stjerne). Da vil den som låner DVD-en stå på neste linje. Om den ikke er lånt ut, vil da tittelen stå uten *(stjerne). Etter hver persons opplisting av sine eide DVD-er vil det stå en - (bindestrek). Filen som ble skrevet fra eksemplet bakerst(se side 6) vil se slik ut: Per Kari - Per The hobbit 1 *The music man Kari - Kari Denne eksempelfilen vil ved innlesing gi en datastruktur der vi har personene Per og Kari, hvor Per eier DVD-ene The hobbit 1 og The music man og Kari har lånt sistnevnte. UML-diagram Implementasjonen skal bygge på UML-strukturen vist i figur 1 på neste side, men du kan fritt lage flere klasser og relasjoner dersom du ønsker det. Legg merke til at det er tre relasjoner mellom Person og DVD: 1) er for eierskapet, 2) DVD-er du selv eier og låner bort til andre og 3) DVD-er du låner 3

Figure 1: UML-diagram for implementasjonen fra andre og som andre eier. Vær oppmerksom på at ikke alt i oppgaven er eksplisitt angitt (blant annet metoder og variabler); det er for at du selv skal kunne definere dette slik du ønsker. Legg vekt på oversiktlig og lettlest kode. Det forventes at kommentarer, variabel- og metodenavn er gode og forklarende til hva de representerer. Fremgangsmåte for innleveringer i INF1000 1. Lag en fil som heter README.txt. Følgende spørsmål skal være besvart i filen: (a) Hvordan synes du innleveringen var? Hva var enkelt og hva var vanskelig? (b) Hvor lang tid (ca) brukte du på innleveringen? (c) Var det noen deler du ikke fikk til? Hvis ja: Hvilken del av oppgaven er det som ikke fungerer? Hvorfor tror du at det ikke fungerer? 4

Hva ville du gjort for å få oppgaven til å fungere hvis du hadde mer tid? 2. Logg inn på Devilry. 3. Lever de alle de aktuelle.java-filene og README.txt samme innlevering. 4. Husk å trykke lever og sjekk deretter at innleveringen din er komplett. Samarbeid Husk at samarbeid om ideer, strukturer etc er helt OK, men du skal aldri kopiere Java-kode fra andre. Reglene for dette finner du på http://www.mn. uio.no/ifi/studier/admin/obliger/. 5

Eksempel på kjøring Dette er et eksempel på en interaksjon med programmet; i dette tilfellet er arkivet tomt i starten. > java DVDarkiv > 1 Hva heter den nye personen? > Per > 2 Hvem har kjopt DVD-en? > Per Hva er tittelen paa DVD-en? > The hobbit 1 > 2 6

Hvem har kjopt DVD-en? > Per Hva tittelen paa DVD-en? > The music man > 1 Hva heter den nye personen? > Kari > 3 Hvem vil laane DVD-en? > Kari Hvem skal DVD-en laanes fra? > Per Hva er tittelen paa DVD-en? > The music man 7

> 5 Person: Per Eier: 2 Laant: 0 Utlaant: 1 Person: Kari Eier: 0 Laant: 1 Utlaant: 0 > 3 Hvem vil laane DVD-en? > Kari Hvem skal DVD-en laanes fra? > Johannes Det er ingen personer som heter Johannes. > 4 Hvilken person vil du se? (* for alle) > Kari 8

Person: Kari Kari eier ingen DVD-er. Kari laaner ikke bort noen DVD-er. DVD-er Kari laaner: The music man er laant fra Per. > 7 Programmet avsluttes. Legg merke til at brukeren i ett tilfelle oppga gale data; da kom det en feilmelding og arkivet ble ikke endret. 9