TDDC30 Programmering i Java, Datastrukturer och Algoritmer Lektion 5. Laboration 4 Lådplanering Exempel på grafik, ett avancerat program Frågor



Relevanta dokument
TDDC30 Programmering i Java, Datastrukturer och Algoritmer Lektion 5. Laboration 4 Lådplanering Exempel på layout, ett GUI-baserat program Frågor

TDDC30 Programmering i Java, Datastrukturer och Algoritmer Lektion 3

TDDC30 Programmering i Java, Datastrukturer och Algoritmer Lektion 3

Objektorienterad programmering med Java Swing. Programexempel. Swing och AWT AWT. = Abstract windowing toolkit

Föreläsning 15 (16) Historik (java.awt) Historik (javax.swing) Introduktion till Swing

Design och konstruktion av grafiska gränssnitt

Grafiska användargränssnitt i Java

Grafiska användargränssnitt i Java

Objektorienterad Programkonstruktion. Föreläsning 3 9 nov 2015

Bruksanvisning för SeSAm GENETICA : Mendels Lagar

TDDC30/725G63. Objektorienterad programmering i Java, datastrukturer och algoritmer

1 Grafiska komponenter

Försättsblad till skriftlig tentamen vid Linköpings Universitet

Design och konstruktion av grafiska gränssnitt

TDDE10 m.fl. Objektorienterad programmering i Java Föreläsning 7 Erik Nilsson, Institutionen för Datavetenskap, LiU

Malmö högskola 2007/2008 Teknik och samhälle

Föreläsning 1: Introduktion till kursen

Denna vecka. Idag. Grafiskt användarsnitt. Vi kommer att se

Tentamen. 2D4135 vt 2004 Objektorienterad programmering, design och analys med Java Torsdagen den 3 juni 2004 kl

Subklasser och arv Inledning till grafik (JFrame och JPanel). Något om interface. Objektorienterad programvaruutveckling GU (DIT011) Subklasser

Försättsblad till skriftlig tentamen vid Linköpings Universitet

Malmö högskola 2007/2008 Teknik och samhälle

Swing. MER Java Foundation Classes (JFC) Vad är farorna. Hur lära sig? LayoutManagers. Exempel på några av komponenterna

Swing. MER Java Foundation Classes (JFC) Hur lära sig? Vad är farorna. LayoutManagers. Exempel på några av komponenterna

TDIU01 (725G67) - Programmering i C++, grundkurs

PROGRAMMERINGSTEKNIK TIN212

Föreläsnings 11 - GUI, Händelsestyrda program, MVC

Lab5 för prgmedcl04 Grafik

Objektorienterad Programkonstruktion. Föreläsning 3 7 nov 2016

Teoretisk del. Facit Tentamen TDDC kl (6) 1. (6p) "Snabba frågor" Alla svar motiveras väl.

Tentamen. Datalogi I, grundkurs med Java 10p, 2D4112, Lördagen den 30 november 2002 kl , salar E33, E34

UMEÅ UNIVERSITET 26 april 2002 Instutionen för datavetenskap. Grafproblem. Laboration 4, Datastrukturer och Algoritmer VT02

TDIU01 / 725G

Programmering B PHP. Specialiseringen mot PHP medför att kursens kod i betygshanteringen heter PPHP1408.

Tor Sterner-Johansson Thomas Johansson Daniel Henriksson

Gränssnitt för FakeGranska. Lars Mattsson

7,5 högskolepoäng. Objektorienterad systemutveckling I Provmoment: Ladokkod: 21OS1B Tentamen ges för: Lycka till! /Peter & Petter

Grundläggande programmering, STS 1, VT Sven Sandberg. Föreläsning 18

TENTAMEN I PROGRAMMERING. På tentamen ges graderade betyg:. 3:a 24 poäng, 4:a 36 poäng och 5:a 48 poäng

TDDC30/725G63. Objektorienterad programmering i Java, datastrukturer och algoritmer

Kursanalys DA2003 sommar 2017

Objektorienterad programmering, Java, 5p TDBA63

TDDC74 - Projektspecifikation

Försättsblad till skriftlig tentamen vid Linköpings Universitet

DI-institutionen Sid 1 av 6 Hans-Edy Mårtensson Sten Sundin

Laboration 3 GUI-programmering

Poäng. Start v. Applikationsprogramm ering i Python 7.5. Antal registrerade (män/kvinnor) 50 (34/16)

Välkomna till DIT012 IPGO

Imperativ programmering i ADA

Facit Tentamen TDDC (7)

Föreläsning 13. Träd

Försättsblad till skriftlig tentamen vid Linköpings Universitet

TENTAMEN. Objektorienterade applikationer CHALMERS. 2018/2019, lp 3 DAT055. Uno Holmer

Verktyg och Utvecklingsmiljö. Föreläsning 2 Eclipse

Fyra i rad Javaprojekt inom TDDC32

INFORMATIK - MED SYSTEMVETENSKAPLIG INRIKTNING, GRK/A (1-30 HP)

Försättsblad till skriftlig tentamen vid Linköpings Universitet

Värmedistribution i plåt

Kravspecifikation. Sammanfattning. Fyra i rad Javaprojekt inom TDDC32. Version 2.0. Datum Dokumentnummer

Model View Controller. Objekt-orienterad programmering och design (DIT952) Niklas Broberg, 2016

Malmö högskola 2007/2008 Teknik och samhälle

Tentamen. DD2385 Programutvecklingsteknik vt 2013 Onsdagen den 22 maj 2013 kl Hjälpmedel: penna, suddgummi, linjal

Tentamen i EDAF oktober Skrivtid: Skriv bara på ena sidan av pappret tentorna kommer att scannas in, och endast framsidorna rättas.

729G06 Föreläsning 1 Objektorienterad programmering

OOP Objekt-orienterad programmering

OBJEKTORIENTERAD PROGRAMVARUUTVECKLING

Legorobot. Lär dig programmera en legorobot. Teknikåttan Ola Ringdahl Lena Kallin Westin

Teoretisk del. Facit Tentamen TDDC (6)

Tentamen. DD2385 Programutvecklingsteknik vt Fredagen den 5 juni 2009 kl Inga hjälpmedel utom penna, sudd och linjal

1. Definiera klassvariabel. 2. Instansvariabel för klass. Selektera klass i Browsern och tryck på statics. Definiera protokollnamn, Protocol->Add...

Tentamen för kursen Objektorienterad programvaruutveckling GU (DIT010)

Föreläsning 1: Introduktion till kursen

Föreläsning 1: Introduktion till kursen

Problemlösning. Veckodagsproblemet Gissa talet Siffersumman

Grafiska användargränssnitt i Java

Objektorienterad Programkonstruktion

Dagens föreläsning (F15)

Introduktion till kursen och MATLAB

TENTAMEN: Design och konstruktion av grafiska gränssnitt DAT215/TIG091

TAOP61/TEN 1 OPTIMERING AV REALISTISKA SAMMANSATTA SYSTEM

729G75: Programmering och algoritmiskt tänkande. Tema 1. Föreläsning 1 Jody Foo

Individuell inlämningsuppgift TEK210

kl Tentaupplägg

Vop handledning. Användarhandledning till Vop applikationen. UPPGJORD: Mattias Gyllsdorff GODKÄND:Mattias Gyllsdorff REV: A DATUM:

PROJEKTRAPPORT EDA095 NÄTVERKSPROGRAMMERI

TENTAMEN: Algoritmer och datastrukturer. Läs detta!

Inlämningsuppgifter, EDAF30, 2015

EDAA01 Programmeringsteknik - fördjupningskurs

ITK:P1 Föreläsning 4. Grafiska gränssnitt i Java. AWT-komponenter

MMA132: Laboration 2 Matriser i MATLAB

TDDC74 Programmering: Abstraktion och modellering Tenta, kl 14 18, 11 juni 2014

Uppgifter i Blackboard 9

trafiksimulering Intro OU5 trafiksimulering

Laboration 3 HI1024, Programmering, grundkurs, 8.0 hp

Koda ett mattetest 3 av 5. Lektionen handlar om att göra en variabel i programmet för ett multiplikationstest. Koda ett mattetest 3 av 5

SMD091 Lektion 9. Definition. Inkapsling. Lite repetition. Grafik. Gränssnitt Definition och Implementation. Sammansättning... Implementation.

PROGRAMMERING. Ämnets syfte. Kurser i ämnet

Transkript:

TDDC30 Programmering i Java, Datastrukturer och Algoritmer Lektion 5 Laboration 4 Lådplanering Exempel på grafik, ett avancerat program Frågor 1 Laboration 4 - Introduktion Syfte: Öva på självständig problemlösning Problem: Ett antal lådor ska flyttas, helst på ett optimalt sätt. För att flytta en viss låda krävs ett visst antal personer Man kan endast flytta lådorna som står överst Information om hur lådorna är placerade samt antal personer som krävs för att flytta dem är sparat på en fil 2 1

Laboration 4 Optimering Optimering: Inte självklart hur lådorna ska flyttas... Varje låda tar lika lång tid att flytta Kan ev. flytta mer än en låda per tidsenhet Minimera tiden det tar att flytta alla lådor för ett visst antal arbetare Minimera lönekostnaden. Flera personer kan flytta snabbare men inte säkert att den totala kostnaden blir lägre 3 Laboration 4 - Lådkonfigurationsfil Lådkonfigurationsfil 9 Antalet lådor. a 2 Låda a kräver 2 personer för att flyttas. b 5 c 3 d 1 e 3 f 1 g 3 h 2 i 5 9 Antalet lådor som står på. a b Låda a står på låda b b g b e e f f h e i c e c d d 4 2

Laboration 4 - Krav Programmet skall kunna läsa in nya lådkonfigurationer från fil. Användaren skall kunna välja vilken fil som skall användas vid varje körning. Gränssnittet kan vara grafiskt eller textbaserat. En tydlig presentation av lösningen krävs. I vilken ordning flyttas lådorna? Hur mycket kostar det? Hur lång tid tar det? Läs laborationsbeskrivningen noggrant! 5 Laboration 4 - Uppgifter Uppgift 1: Skapa och implementera en algoritm som ger en möjlig ordning att plocka ner lådorna. Pröva på givna och egna konfigurationer Information om antal personer som krävs används inte. Uppgift 2: Minimera tiden, givet ett antal arbetare. X personer -> Flera lådor kan ev. flyttas samtidigt. Hitta den bortplockningssekvens som ger minimal tid Uppgift 3: Minimera totala lönekostnaden Flytta en låda tar 15 min, arbetare kostar 100 kr/timme Krävs det tio arbetare vid en tidpunkt kommer dessa kräva betalt under hela flytten även om de är overksamma! 6 3

Laborationsrapport innefattande: Laboration 4 - Examination Kortfattad beskrivning av valda datastrukturer (klassdiagram) samt en motivering av era val. Diskussion av hur lämpliga era val visade sig vara. Beskrivning av de algoritmer ni använt för att lösa respektive uppgift samt dess tidskomplexitet. Jämförelse med andra idéer ni haft. Hur nära optimal lösning? Rapporten bör omfatta 1-2 A4 sidor 7 Laboration 4 - Examination Uppgiften bedöms med G VG För G: Ett textuellt gränssnitt En intelligent heuristik Snyggt uppdelat program Rapport För VG: Helt grafiskt gränssnitt Visar tillhörande bild i de fall det finns 8 4

Krav för VG: Laboration 4 - Examination Uppgiften ska ha fått godkänd muntlig redovisning senast på fredag 1/3. Källkoden samt rapport ska ha skickats in senast hård deadline på onsdag 3/3. Avklarad med maximalt en komplettering, inlämnad senast en vecka efter retur. Ett VG på lab 3 & 4 medför en (del)uppgift på tentamen värd tre poäng automatiskt godkänd! ungefär 25% upp till betyg 3 mer tid till resten av uppgifterna 9 Laboration 4 - Intermission Nu, lite praktiskt! 10 5

Tips - Användbara komponenter JLabel Visar enkla textsträngar i GUI, men med.. ImageIcon Kan stoppas in i en JLabels konstruktor för att visa en bild i GUI! ImageIcon icon = new ImageIcon( /home/stude123/minbild.gif ); JLabel label = new Jlabel(icon); // visa bilden! getcontentpane().add(label); 11 Tips - Användbara komponenter JTextArea Ett fler-radigt textfält, men kan bli för stort att visa allt av.. JScrollPane Kan dekorera en annan komponent med scroll-lister! JTextArea textarea = new JTextArea(); // linda in textarean i scroll-lister JScrollPane scrollpane = new JScrollPane(textArea); // lägg till scrollpanen istället! getcontentpane().add(scrollpane); 12 6

Tips - Användbara komponenter JFileChooser Visar öppna/spara fil dialog enkelt! JFileChooser chooser = new JFileChooser(); // visa dialogen int result = chooser.showopendialog(null); // kolla så att användaren klickade ok, inte avbryt if(result == JFileChooser.APPROVE_OPTION) { // hämta ut filen användaren valde System.out.println( Du öppnade filen: " + chooser.getselectedfile().getname()); } 13 Tips - Användbara komponenter JRadioButton Visar en checkbox som, om man har flera, bara en kan vara vald av, åt gången. // skapa alla knappar JRadioButton radio1 = new JRadioButton( Första ); JRadioButton radio2 = new JRadioButton( Andra ); JRadioButton radio3 = new JRadioButton( Tredje ); // lägg till dom i en grupp, inom vilken bara en av // dom kan vara vald åt gången ButtonGroup group = new ButtonGroup(); group.add(radio1); group.add(radio2); group.add(radio3); getcontentpane().add(radio1); // osv för alla knappar 14 7

Uppgift Ett väl strukturerat program Uppgift: Du har fått kod för en simulering kallad Game of life (hur nu den fungerar). Simuleringen är uppbyggd av flera klasser: en grupp klasser som utför simuleringens beräkningar och en JComponent som kan rita upp den. 15 Uppgift Ett väl strukturerat program 1. Skriv ett fullständigt program som kör och visar upp simuleringen. 2. Lägg till tre knappar Start Stop Step som ger motsvarande kommandon till simuleringen. 3. Lägg till en slider, speed, som bestämmer hastigheten på simuleringen Krav: Det ska gå att ENKELT och SNABBT lägga till någon annan simulering, som körs samtidigt i samma program. 16 8

Uppgiften är redan nästan löst En JFrame med begärda knappar har skapats Lösning... En klass som kan stanna och stoppa en simulering har skapats Ett interface har skapats: alla simuleringar måste implementera detta En controller behövs ska starta upp systemet och hantera händelser från vyn 17 9