Programtervezési minták (GEIAL517M) Jegyzőkönyv
|
|
- Vilmos Orbán
- 8 évvel ezelőtt
- Látták:
Átírás
1 Miskolci Egyetem, Általános Informatikai Tanszék Programtervezési minták (GEIAL517M) Jegyzőkönyv
2 Tartalom Létrehozó minták Egyke Factory Builder Prototype...9 Szerkezeti minták Adapter Bridge Composite (Össztétel) Decorator (Díszítő) Proxy Facade (Homlokzat)...21 Viselkedési minták Command (Parancs) Observer (Megfigyelő) Chain of Responsibility (Felelősség lánc) Mediator (Közvetítő) State (Állapot) Strategy (Stratégia)
3 1 Létrehozó minták 1.1Egyke Feladat: A fogyasztó saját ritmusában, saját algoritmusa szerint működve felhasználja a termelő által előállított terméket. Legyen a raktár egy csak egy példányban létező objektum. o a termelő beteszi a terméket, o a fogyasztó pedig kiveszi A fogyasztó és termelő számra nem kötött legyen véletlen érték között (az elején érdemes fix darabszámmal dolgozni) A termelő és a fogyasztó sebességére nincs kikötésünk, így minden szálban véletlen ideig várakozzunk ( ms) A raktár limitált méretű, csak 3000 terméket képes tárolni. A termék fontos tulajdonsága a neve, amely azonosítja a létrehozó szál neve + sorszáma. Készítsen osztály diagramot az alkalmazás modellezésére! A feladat osztálydiagramja: 3
4 A diagram részei: Producer: Kliens oszály, ismeri a terméket és a raktárt Consumer: Kliens oszály, ismeri a terméket és a raktárt Repository: A Singleton. Definiál egy Instance statikus property-t, mellyel elérhetővé teszi az egyetlen példányt. A statikus get property lockolva van a párhuzamos hozzáférés miatt public static Repository Instance { get { lock (Repository.lockString) { if (instance == null) { instance = new Repository(); } return instance; } } } A termelő és a fogyasztó a raktár példányát csak a statikus property-n keresztül éri el. Ha már volt példányosítva akkor visszatér a példánnyal, ha még nem, akkor létrehozza az új raktár példányt. 4
5 Product: A termék osztálya A Singleton repository használata egyszerű: Új termék hozzáadása: Product p = Repository.Instance.AddProduct(new Product()); Termékeket így vehetünk ki a raktárból: Product p = Repository.Instance.GetProduct(); A Singleton kiváltja a globális változókat, így szabályozottan férhetünk hozzá globális objektumhoz. 5
6 1.2Factory Feladat: Az előző (termelő-fogyasztó) feladatban Különböző megvalósítású, de azonos felületű termékek létrehozása Factory mintával, hogy a termelőktől és a fogyasztóktól elszigeteljük a konkrét típusokat. Cél: Új termék bevezetésekor a termelőnek és a fogyasztónak minimális módosítás, ismeret legyen szükséges. A feladat osztálydiagramja Részei: Az előző feladatból: Consumer, Repository, Producter. A szerepük nem változott. Producer: A producer az előző feladatban betöltött szerepen kívül, ő lett a kliens. Ismeri a terméket és a gyárat, terméket kér a gyártól. Product: Fejlődött az előző feladathoz képest. A Product absztrakt osztály, a termékek jellemzőit foglalja össze. 6
7 Product1, Product2: Konkrét termékek. Közös ősük a Product ostály. ProductFactory: Van egy create metódusa, mely Product típusú objektummal tér vissza. Adott paraméter alapján eldönti, hogy milyen konkrét productot hozzon létre. Példa termékek példányosítására: ProductFactory productfactory = new ProductFactory(); Random r = new Random(); Product p = null; p = productfactory.create(r.next(1, 3)); A minta használatával új termékek bevezetésekor a kliens csak a paraméter változását tudja, változtatni csak a ProductFactory létrehozó metódusát kell. 1.3Builder Feladat: Készítsen egy C# alkalmazást, amely komponensek létrehozásának menetét mutatja be! Készítse el a komponens osztályt! o Legyen ToString metódusa, amely kiírja nevét, és az aktuális szerkezetét! A komponensek különböző felépítésük lehetnek (van neve string): o Portok 0..* (van neve, id-je, amely legyen egyedi, kapacitása) adat (kimenet vagy bemenet) típus (string) o LogInterfész 0 1 (van id-je) Készítsen építő osztályokat tipikus komponensekre! o Adatszűrő (1 bementi adatportja és 1 kimeneti adatportja van) o Monitor (1 bementi adatportja és 1 kimeneti adatportja van) o Információ forrás (1 kimeneti adatportja van) o Információ nyelő (1 bementi adatportja portja van) 7
8 A feladat osztálydiagramja A ComponentBuilder absztrakt osztály ismeri a Component osztály részeit és tartalmazza a Component osztály részeit előállító metódusokat. A Director osztály ismeri a ComponentBuilder absztrakt osztályt és használja metódusait. A Port és a LogInterface osztályok a Component részei. A klines létrehozza a Director-t és átadja neki ComponentBuilder megfelelő leszármazott osztályának a példányát. A főprogram: Director director = new Director(); ComponentBuilder cb = new MonitorBuilder(); director.setcomponentbuilder(cb); director.create(); Component c = director.getcomponent(); cb = new DataFilterBuilder(); director.setcomponentbuilder(cb); director.create(); Component c2 = director.getcomponent(); Console.WriteLine(c.ToString()); Console.WriteLine(c2.ToString()); 8
9 A program kimenete: A minta használatával a termék példányosítása ellenőrzötten történik, csak a director felügyelete mellett lehetséges, ami csak kész terméket ad át a kliensnek. 1.4Prototype Az előző feladat bővítése: A felhasználó tudjon több komponens példányt is létrehozni, amelyet egy listában tárolunk! Az új példányok mindig egy alapértelmezett értékkel jönnek létre, amelyet a felhasználó megváltoztathat. Gondoskodjon arról, hogy a listában levő elemek állapotát meg lehessen változtatni (konzol alkalmazásban egy menü)! Gondoskodjon arról, hogy a klónozott objektumok teljesen függetlenek legyenek a prototípus objektumtól (deep copy) A kibővített osztálydiagram: 9
10 A Prototype interfésznek van egy Clone metódusa, mellyel önmagát klónozza. A Comonent osztály implementálja a Prototype interfészt, ez az osztály a konkrét prototípus a modellben. A Prototípus minta egy egyszerű és hatékony módja objektumok másolásának. Az objektumok inicializálásának idejét rövidíti. 2 Szerkezeti minták 2.1Adapter Az adapter minta használatának gyakorlásához egy egyszerű példa elkészítése a feladat, amelyben szándékosan más néven akarjuk használni a metódusokat. Az elkészített feladatban egy egyszerű, négy alapműveletes számológép osztályhoz csinálok egy példát az osztály adaptálására. 10
11 A diagram részei: ICalculator: A cél felület interfésze. A Client osztály ismeri. Client: Az ügyfél osztály, amely felhasználja a Target interface objektumát RealCalc: Az illesztendő felület, meghatározza az interfészt, melyet illeszteni kell (az adaptee). MyCalculator: Összeilleszti az ICalculator interfészt a RealCalc felületével Példa a használatára: ICalculator calc = new MyCalculator(); double a = 20; double b = 5; Console.WriteLine("{0} Console.WriteLine("{0} Console.WriteLine("{0} Console.WriteLine("{0} + * / {1} {1} {1} {1} = = = = {2}", {2}", {2}", {2}", 11 a, a, a, a, b, b, b, b, calc.add(a, b)); calc.subtract(a, b)); calc.multiply(a, b)); calc.divide(a, b));
12 A kliensnek csak az ICalculator felületét kell ismernie, az adapter elrejti a művelteket ténylegesen végrehajtó osztályok részleteit. 2.2Bridge Feladat: Készítsen egy grafikus alkalmazást, amely 3 féle objektumot kezel: kör, négyzet, kereszt Mindegyiknek legyen alapértelmezett mérete: o A körnek az átmérő o A négyzetnek a két átfogó csúcs távolsága o A keresztnek a hossza Helyezzen el véletlenszerűen grafikus objektumokat a képernyőn Tegye lehetővé, hogy bármelyiket egy közös dialógusablakon (vagy frame) keresztül lehessen átméretezni, áthelyezni! (Vagy klikkelés, vagy combobox a kiválasztásra) Ha valaki megváltoztatja a kijelölt objektumot, akkor a beállító helyen az aktuális értéket lássuk! Használja a Bridge mintát! Definiáljon egy Shape osztályt, aminek van egy implementora, ami kör vagy négyzet vagy plusz jel. A Shape-nek vannak position, size tulajdonságai Ezek a tulajdonságok az implementort használják arra, hogy megváltoztassák az objektumok paramétereit 12
13 Érdemes a kirajzoláshoz is a Shape osztályt használni. Kép az elkészített alkalmazásról: A feladat osztálydiagramja Részei 13
14 Shape: Az elvont ábrázolás felület. Felületet biztosít a Circle, Square és Cross osztályoknak. A hozzá érkező kéréseket az IShapeDrawer Implementor felé továbbítja. Circle, Square, Cross: A finomított elvont ábrázolás osztályai. IShapeDrawer: Az implementor (megvalósító felület) osztály. Kirajzoló felületet biztosít. CanvasDrawer: A konkrét megvalósító osztály. Implementálja a az IShapeDrawer Implementort a wpf-es Canvas controlra tudja kirajzolni az alakzatokat és tuja törölni a Canvas-t. A grafikus objektumok létrehozása: Random r = new Random(); cd = new CanvasDrawer(canvas1); for (int i = 0; i < 30; i++) { int num = r.next(1, 4); Shape s = null; switch (num) { case 1: s = new Cirlcle(this.cd); break; case 2: s = new Square(this.cd); break; case 3: s = new Cross(this.cd); break; } s.size = r.next(10, 50); s.y = r.next(200); s.x = r.next(500); s.id = i; Shapes.Add(s); } Ha változik valamilyen paraméter, akkor az alakzatok újra rajzolása a következőképpen történik: cd.clear(); 14
15 foreach (Shape s in Shapes) { s.draw(); } A minta használatával az objektumokat kirajzoló programrészt lecserélhetjük úgy, hogy a többi osztályt nem kell módosítani (ha például a WPF-es Canvas helyett valami mást akarnék használni). 2.3Composite (Össztétel) Feladat: A komponensek névterekbe vannak hierarchikusan rendezve. Egy névtérben lehetnek komponensek és újabb névterek is. Minden komponensnek vannak tulajdonságai és metódusai a. Legfontosabb a komplexitás, ami egy lebegőpontos szám (mennyire bonyolult a komponens feladata) b. ToString metódus: összesítés, melyik elemből mennyi, majd alelemeit alatta kiírja c. ToXML metódus: a ToString XML verziója d. Count tulajdonság: az alatta lévő összes elem (komponens és névtér) e. ComponentCount tulajdonság: az alatta lévő komponensek száma. f. ContextCount tulajdonság: az alatta lévő komponensek száma Készítsünk egy alkalmazást, amely ezt a fa struktúrát kompozit minta alkalmazásával valósítja meg! a. Adott részfa (csomópont) elemére lekérdezhetjük, hogy mennyi a komplexitása (áthelyezhető-e a részfa egésze egy processzorra)! b. Készítsük el a ToString, ToXML metódusokat! Készítsünk egy grafikus alkalmazást, amely a fenti elemeket használja, és egy fa vezérlőben mutatja az elemeket! Kép az elkészült alkalmazásról: 15
16 A feladat osztálydiagramja Component: A faszerkezet levele (egy komponens) SoftwareElement: Az összetétel osztályok (Component és NameSpace) közös felülete. NameSpace: Összetétel osztály. Lehetnek gyerekei: NameSpace, vagy Component. 16
17 Részlet a hierarchia létrehozásáról: SoftwareElement root = new NameSpace("RootNS"); SoftwareElement c1 = new Component("component1", 2); SoftwareElement c2 = new Component("component2", 4);... (root as NameSpace).Add(c1); (root as NameSpace).Add(c2); Így olyan osztályhierarchia valósul meg, amely az alap objektumok rekurzívan építi egyre bonyolultabb objektumokká A kliensnek nem kell tudnia, hogy a kérést egy komponensnek vagy névtérnek adja át, ugyanis ezek egységesen vannak kezelve, ha a kérést levél kapja, akkor az végrehajtódik, ha belső csomópont, akkor továbbítódik a levelek felé. 2.4Decorator (Díszítő) Példafeladat: Készítsen egy Component osztályt, amely képes végrehajtani egy operációt, majd különböző dekorátorokkal módosítsa a viselkedését. Készítsen egy dekorátor osztályt, amely naplózza a mozgás tényét. Készítsen egy dekorátor osztályt, amely kimondja a kapott parancsot, és ha a pozícióba ér (esemény). Készítsen egy objektumot, amely naplózza is a mozgás tényét és ki is mondja a kapott parancsot. Az elkészített objektum: Component c; RobotComponent rc = new RobotComponent(new Point() { X = 0, Y = 0 }); MovingLoggerDecorator mld = new MovingLoggerDecorator(rc); SpeakerDecorator sd = new SpeakerDecorator(mld); c = sd; 17
18 c.moveto(new Point() { X = 12, Y = 54 }); A két dekorátor hozzáadásával a robot komponens megkapta a további képességeket. Az elkészített konzolos alkalmazás kimenete: Az elkészített feladat osztálydiagramja: 18
19 Az osztálydiagram részei Component: Absztrakt osztály, megadja a felületet azoknak az objektumoknak, melyek dinamikusan bővíthetőek lesznek. Egy absztrakt metódusa van. RobotComponent: A Component osztályból származik, implementálja a MoveTo metódust. ComponentDecorator: Egy Component típusú adattagja van. A Component típusú objektumokat tudja bővíteni, meghatároz egy felületet, amely illeszkedik a Component-re. SpeakerDecorator: A Component MoveTo metódusát kiegészíti úgy, hogy az naplózza a mozgás tényét. MovingLoggerDecorator: A Component MoveTo metódusát kiegészíti úgy, hogy kimondja a kapott parancsot, és ha a pozícióba ér. A minta használatának előnye, hogy a díszítők láncolásával több tulajdonságot egyszerűen tudnunk hozzáadni futásidőben. 2.5Proxy Feladat szövege Készítsen konzolalkalmazást, ami web service-t használva végez el valamilyen műveletet. A szolgáltatás elérése proxy objektumon keresztül történjen. A kliens kódon ne látszódjon, hogy a művelet egy távoli gépen hajtódik végre. Feladat megoldása: 1. Létrehoztam egy új ASP.NET webes alkalmazást és egy Console alkalmazást 19
20 2. A webalkalmazásban létrehoztam egy WebCalc nevű webservice-t, ami tud összeadni, kivonni, szorozni és osztani. 3. A webalkalmazást elindítottam a localhoston, a service wsdl elérhető volt a következő címen: 4. Ez után létrehoztam a console alkalmazást és Visual Studioban hozzáadtam a projekthez egy web referenciát az előbb létrehozott webservice-re. 5. A console alkalmazás Main metódusában használtam a service-t a Visual Studio által generált proxy osztállyal. static void Main(string[] args) { WebCalc.WebCalcSoapClient webcalcproxy = new WebCalc.WebCalcSoapClient(); int a = 3; int b = 6; Console.WriteLine("{0} + {1} = {2}", a, b, webcalcproxy.add(a, b)); Console.ReadKey(); } Az így létrehozott WebCalcSoapClient osztály példánya miatt a távoli végrehajtás helyinek tűnik. A Visual Studio által generált WebCalcSoapClient valójában soap kérés küld a webes szolgáltatásnak. A Console alkalmazás kimenete: 20
21 2.6Facade (Homlokzat) Feladat szövege: Készítsen konzolos alkalmazást, ami egy számítógép elindulását modellezi. A számítógép legalább 4 komponensből álljon. Használja a facade mintát. A feladat osztálydiagramja: 21
22 A diagram részei: Computer: A homlokzat. A kliens (user) kéréseit továbbítja az alrendszerek osztályai felé. Alrendszeri osztályok: CPU, Keyboard, VideoCard, DDRRAM, HDD. Az alrendszeri osztályok nem tudják, hogy ők egy Computer részei, csak elvégzik a kéréseket. A feladatban a Computer osztály Start metódusa modellezi egy számítógép elindulását. Beállítja a billentyűzet kapcsolóit, majd megnézi, hogy nyomtak-e billentyűt. Ha igen, akkor elindítja a BIOS-t, egyébként megkezdi a bootfolyamatot. Betölti a memóriába winchester bootszektorát, majd beállítja a processzor program counter regiszterét a memória boot címére. this.keyboard.capslock = false; this.keyboard.numlock = false; this.keyboard.scrolllock = false; if (this.keyboard.puffer.count!= 0) { this.biosstart(); } this.vcard.display("start computer...\n"); this.memory.load(ram.bootaddress, this.hdd.read(hdd.bootsectoraddress, HDD.SectorSize)); this.cpu.jump(ram.bootaddress); this.cpu.execute(); A használatának fő előnye, hogy a nagyon bonyolult metódushívásokat összegyűjthetjük egy metódusba. Az alrendszerek között jelentősen csökkentik az egymástól függést, laza kapcsolat alakítható ki közöttük. 22
23 3 Viselkedési minták 3.1Command (Parancs) Készítsen egy grafikus számológép alkalmazást, amely Operatorokat, operandusokat (számokat) tartalmaz, Látható a történet, Lehetséges tetszőleges számú művelet visszavonása (Undo), Lehetséges a többszöri ismétlésre (Redo), Véglegesítés (Commit), ilyenkor a történet kezdőpontja az adott pont lesz, előtte levő műveletek nem láthatóak nem vonhatóak vissza, A történetből tetszőleges elem újra elvégezhető. A command pattern-t implementáló számológép alkalmazást WPF-ben írtam meg. Képek az alkalmazásról: 23
24 24
25 A feladat megoldásának osztálydiagramja Részei: CalculatorCommand: absztrakt osztály. parancsaihoz biztosít egy absztrakt ősosztályt A CalculatorCommand leszármazottai egymáshoz rendelik a Calculator-t (a fogadó osztályt) és egy-egy műveletet. A Calculator megfelelő metódusainak hívásával implementálják az Execute és az Unexecute metódusokat A számológép o AddCommand: Parancs osztály az összeadáshoz. o SubtractCommand: Parancs osztály a kivonáshoz. o MultiplyCommand: Parancs osztály a szorzáshoz. o DivideCommand: Parancs osztály az osztáshoz. MainWindow: Hívó és ügyfél a modellben. Létrehozza a CalaculatorCommand példányokat és beállítja a fogadó osztályt, felkéri a létrehozott CalculatorCommandot, hogy hajtasa végre (Execute) a műveletet, vagy vonja vissza (UnExecute) a legutóbb végrehajtott műveleteket. Mindig a legutóbb végrehajtott, még nem visszavont műveletet vonja vissza. Calculator: A implementálja. fogadó osztály. 25 A számológép műveleteit
26 Példa a használatra: Parancsokat hozunk létre végrehajtjuk és tároljuk. calculator = new Calculator(); switch (lastoperation) { case "+": calculatorcommand = new AddCommand(calculator, value); break; case "-": calculatorcommand = new SubtractCommand(calculator, value); break; case "/": calculatorcommand = new DivideCommand(calculator, value); break; case "*": calculatorcommand = new MultiplyCommand(calculator, value); break; default: throw new InvalidOperationException("Operation: " + lastoperation); } calculatorcommand.execute(); Commands.Add(calculatorCommand); Így a kérelmeket objektumokba ágyazzuk, a kliensnek különböző kéréseket adhatunk át, amelyeket sorba rendezhetünk és vissza is vonhatunk. Mivel objektumba vannak ágyazva tudjuk a kéréseket ideiglenesen tárolni, könnyíti a kérések naplózását. 3.2Observer (Megfigyelő) Feladat: Készítsen grafikus alkalmazást, amely - Lehetőséget biztosít egy szín érték beállítására, - Felső részén 3 db csuszka található (R,G,B) színkomponensek állítására, - Alsó részeiben a beállított érték megjelenítése található: 26
27 o 3 db csak olvasható beviteli mező, o Egy adott színű panel, o 3 oszlop megfelelő magassággal. - Ha változtatjuk a felső részben levő csuszkát, akkor az alsó mezőben levő nézetek frissüljenek automatikusan. Képek az elkészített alkalmazásról: 27
28 A feladat osztálydiagramja Részei: IColorPickerSubject: Az alany interfész ebben a modellben. Interfész a megfigyelők csatolásához és értesítés küldéshez. IColorPickerObserver: Frissítő interfész az értesítendő objektumoknak. SliderValues: Az alany interfészt implementálja. Három értéket tartalmaz, a csuszkákhoz. A csuszkák változásáról értesítést küld a megfigyelőknek. RGBColor: Megfigyelő interfészt implementáló osztály. Egy színt reprezentál az RGB színkomponensekkel és ecset objektumot, amely színe az adott RGB. Columns: Megfigyelő interfészt implementáló osztály. A három tulajdonsága a három oszlop magassága százalékban. A minta használatával az objektumok létrehozása a következőképpen történik: public class ColorPickerDataContext { private RGBColor rgbcolor; private SliderValues sv; private Columns columnheights; public ColorPickerDataContext() 28
29 { this.rgbcolor = new RGBColor(); this.sv = new SliderValues(); this.columnheights = new Columns(); sv.registerobserver(rgbcolor); sv.registerobserver(columnheights); }... Innentől, az sv változások esetén értesíti a megfigyelőit. Az alany és a megfigyelők között laza kapcsolat van. Az alany tud a megfigyelőkről, de egyéb információt nem tud, nincs is szükség rá, hogy tudjon. További előnye, hogy könnyen adható hozzá új megfigyelő, a meglévő kód módosítása nélkül. 3.3Chain of Responsibility (Felelősség lánc) Feladat: Készítsünk egy dialógus alapú grafikus alkalmazást, melyben három gomb (Betöltés, Mentés, Kilépés) található, és két check boksz (automatikus, manuális)! Attól függően, hogy melyik elem van kiválasztva, jelenítsünk meg help információt! A kilépés gomb kivételével minden elemhez legyen segítség információ, a dialógus ablakhoz is! Alakítsuk ki a következő felelősség láncot: Betöltés -> Mentés -> Összes gomb -> Alkalmazás Az általános Handle osztályba kell egy SetNextHandle metódus! Kép az elkészített alkalmazásról: 29
30 A feladat osztálydiagramja: HelpHandler: A help rendszer kéréseinek kezeléséhez definiál egy interészt. Implementálja a következő egyedhez a kapcsolatot. SaveButtonHandler, LoadButtonHandler, ButtonHelpHandler, FormHelphandler: Lekezeli a megfelelő kéréseket. Hozzáfér az utána következő help handlerhez. Ha tudja kezelni a kérést, akkor kezeli, egyébként továbbítja a következő help handlernek. Client: Létrehozza a láncot, kéréseket indít a lánc elején lévő help handlernek. Az elkészített alkalmazásban a felelősség lánc a következőképpen épül fel:... private HelpHandler starthelphandler; 30
31 public HelpSystem() { InitializeComponent(); SaveButtonHelpHandler SaveButtonHelpHandler(); LoadButtonHelpHandler LoadButtonHelpHandler(); ButtonHelpHandler bhh FormHelpHandler fhh = sbhh = new lbhh = new = new ButtonHelpHandler(); new FormHelpHandler(); sbhh.setnexthandler(lbhh); lbhh.setnexthandler(bhh); bhh.setnexthandler(fhh); this.starthelphandler = sbhh; }... A lánc kialakítása után help üzenetet a következő metódus állítja be: private void sethelpmessage(object sender) { string name = ((Control)sender).Name; Type type = sender.gettype(); toolstripstatuslabel2.text = this.starthelphandler.handle(name, type); } A minta használatával egyszerűsödik a help információk megjelenítése. Új GUI elem bevezetésével csak egy új osztályt kell elkészíteni, amely a HelpHandlerből származik. A kód többi részét nem kell módosítani. 3.4Mediator (Közvetítő) Közvetítő (Mediátor) minta Feladat szövege: Készítsünk egy dialógus alapú grafikus alkalmazást, melyben o egy városlista lista ablak található a lehetséges elemekkel (városok nevei) 31
32 o beviteli mező, o másik kiválasztott városok lista a felvett városok neveivel, o töröl gomb A következőképpen működjön: o Ha a városlista egy eleme ki van választva, akkor másoljuk be a szöveg tartalmát a beviteli mezőbe, engedélyezzük a hozzáad gombot o Az átmásolt szöveget a felhasználó át tudja írni. o Ha a hozzáad gombot megnyomtuk, akkor a szöveges mező tartalmát hozzáadja a kiválasztott városok listájába a töröl gomb engedélyezett lesz o Ha a töröl gombot megnyomtuk, akkor a kiválasztott városok lista törlődik, a töröl gomb tiltódik, a hozzáad gomb tiltódik Képek az elkészített alkalmazásról: 32
33 A feladat osztálydiagramja: 33
34 Az osztálydiagram részei CityChooserMediator: A közvetítő felület a kollégák között Mediator: Konkrét közvetítő. Ismeri a feladatban szereplő objektumokat. A Copy metódussal a SelectedCity Name property-jét állítja be. Az Add hozzáad egy nevet a városok listájához. A Choose hozzáad egy nevet a kiválasztott városok listájához. CityChooserColleague: Felület a kollégáknak. Ismeri a CityChooserMediatort. City: Konkrét kolléga osztály. Városlistát tartalmaz. A Choose metódussal jelzi a mediátornak, hogy kiválasztottuk egy elemét. Az Add metódussal hozzáad egy nevet a CityList propertyjéhez. A Clear metódus törli az elemeit. SelectedCity: Konkrét kolléga osztály. Egy nevet tartalmaz. A Choose metódussal jelzi a mediátornak, hogy property-jét hozzá kell adni a kiválsztott városokhoz. A minta használata: Példányosítjuk az osztályokat a következő módon: SelectedCity selected; City cities; City choosencities; Mediator m; 34
35 m = new Mediator(); cities = new City(m); choosencities = new City(m); selected = new SelectedCity(m); m.cities = cities; m.choosencities = choosencities; m.selected = selected; A kollégák ismerik a mediátort, de egymást nem és a mediátor is ismeri a kollégákat. Ez a minta laza kapcsolatot eredményez az objektumok között. Központosított vezérlést eredményez. 3.5State (Állapot) Feladat: Média lejátszó modellezése specifikáció alapján az állapot minta felhasználásával. Műveletek: pillanat állj, stop, előre lejátszás, hátrafele lejátszás, sebesség felező, sebesség kétszerező, elejére teker, végére teker. Alapból a film a 0 pozíción áll, és nem megy a lejátszás (stop állapot). Szimuláljunk egy 30 frame/sec-es videót, ami 5 perces, progressbar segítségével! Írjuk ki az alkalmazás állapotát! Írjuk ki az aktuális frame értékét, frissítsük a progressbart 100 ms-onként! 1. ábra A Média lejátszó Frissítsük a vezérlők értékét az állapottól függően! Működés Állapo t\funk ció Pause Forewar d Backward Pillan at állj Nem érhető el, nem csinál semmit Megállítja a lejátszást, állapotvál tás Megállítja a lejátszást, állapotváltá s 35 Begin Nem érhető el, nem csinál semmit End Nem érhető el, nem csinál semmit
36 Stop Nem érhető el, nem csinál semmit Megállítja a lejátszást, és a 0 pozícióra állít, állapotvál tás Megállítja a lejátszást, és a 0 pozícióra állít, állapotváltá s Nem érhető el, nem csinál semmit Nem érhető el, nem csinál semmit Előre játszá s Elkezd lejátszani előre 1x sebességg el, állapotvált ás Ha más sebesség gel játszik, akkor visszaállít 1x előre játszásra Nem érhető el, nem csinál semmit Elkezd lejátszani előre 1x sebességgel, állapotváltás Nem érhető el, nem csinál semmit Hátra játszá s Elkezd lejátszani hátrafele 1x sebességg el, állapotvált ás Nem érhető el, nem csinál semmit Ha más sebességge l játszik, akkor visszaállít 1x hátra játszásra Nem érhető el, nem csinál semmit Elkezd lejátszani hátrafele 1x sebességgel, állapotváltás Sebes ség felező Nem érhető el, nem csinál semmit A sebesség et felezi A sebességet felezi Nem érhető el, nem csinál semmit Nem érhető el, nem csinál semmit Sebes ség kétsz erező Nem érhető el, nem csinál semmit A sebesség et kétszerez i A sebességet kétszerezi Nem érhető el, nem csinál semmit Nem érhető el, nem csinál semmit Elejér e ugrik Pozíció a végére Pozíció az elejére, és játszik tovább Pozíció az elejére, és stop állapot Nem érhető el, nem csinál semmit Pozíció az elejére, és nem játszik tovább Végér e ugrik Pozíció az elejére Pozíció a végére, és stop állapot Pozíció a végére, és játszik tovább Pozíció a végére, és nem játszik tovább Nem érhető el, nem csinál semmit Kép az elkészített alkalmazásról: 36
37 A feladat osztálydiagramja: Részei: MediaPlayer: A állapot környezet osztály. PlayingState: Az MediaPlayer állapot kontextus állapotainak felülete Begin, End, Stop, Pause, PlayingForward, PlayingBackward: Kokrét állapotai a MediaPlayer kontextusnak. A MediaPlayer osztály példányosítása (a Video konstruktorának megadjuk a frame-ek számát és a rátát):... MediaPlayer mp;... 37
38 Video video = new Video(9000, 30); //five minutes this.mp = new MediaPlayer(video); this.mp.state = new Stop();... A minta használatával egyszerűbb, érthetőbb kódot kapunk. Könnyebb modellezni az összetett állapotokat. Ebben a feladatban volt 8 féle funkció és 6 féle állapot ami a minta használata nélkül ami egy 48 case-t tartalmazó switch lenne a minta nélkül. Könnyebb új állapotot felvenni mint egy hosszú switch case szerkezetet átlátni. 3.6Strategy (Stratégia) Feladat: Bővítsük az előző feladatot több média típus lejátszására Mp3 Wmv Avi Az aktuális média típust is kiírattam az alkalmazásban A futást ábrázoló képen lévő lejátszó így indult A feladat kibővített osztálydiagramja: 38
39 A diagram részei Media: A wmv, avi és mp3 algoritmuscsaládokhoz ad egy felületet. WMV, AVI, MP3: Konkrét algoritmuscsaládok. Az adott formátumnak megfelelően implementálják a médiát. MediaPlayer: a stratégia környezet osztály a wmv, avi és mp3 algoritmuscsaládokhoz. Az alkalmazásban egy wmv lejátszása a következőképpen történik:... MediaPlayer mp;... Media media = new Wmv(9000, 30); this.mp = new MediaPlayer(media); this.mp.state = new Stop();... A stratégia programtervezési minta használata egyszerűbb, érthetőbb kódot eredményez, mintha ugyanezt a működés a minta használata nélkül érnénk el, mivel a minta elrejti az algoritmus specifikus adatokat. Új algoritmus családdal bővíthetjük a mintát anélkül, hogy bármelyik osztályt módosítani kellene. Az aktuális algoritmus család futásidőben módosítható. 39
Java VI. Egy kis kitérő: az UML. Osztály diagram. Általános Informatikai Tanszék Utolsó módosítás: 2006. 03. 07.
Java VI. Öröklődés Miskolci Egyetem Általános Informatikai Tanszék Utolsó módosítás: 2006. 03. 07. Java VI.: Öröklődés JAVA6 / 1 Egy kis kitérő: az UML UML: Unified Modelling Language Grafikus eszköz objektum
RészletesebbenWebes alkalmazások fejlesztése 8. előadás. Webszolgáltatások megvalósítása (ASP.NET WebAPI)
Eötvös Loránd Tudományegyetem Informatikai Kar Webes alkalmazások fejlesztése 8. előadás (ASP.NET WebAPI) 2016 Giachetta Roberto groberto@inf.elte.hu http://people.inf.elte.hu/groberto A webszolgáltatás
RészletesebbenINFORMATIKAI ALAPISMERETEK
Informatikai alapismeretek emelt szint 1021 ÉRETTSÉGI VIZSGA 2011. május 13. INFORMATIKAI ALAPISMERETEK EMELT SZINTŰ ÍRÁSBELI ÉRETTSÉGI VIZSGA JAVÍTÁSI-ÉRTÉKELÉSI ÚTMUTATÓ NEMZETI ERŐFORRÁS MINISZTÉRIUM
RészletesebbenBánsághi Anna anna.bansaghi@mamikon.net
ESEMÉNYVEZÉRELT PROGRAMOZÁS Bánsághi Anna anna.bansaghi@mamikon.net 2. ELŐADÁS - C# ÁTTEKINTÉS - 2 2015 Bánsághi Anna 1 of 64 TEMATIKA I. C# ÁTTEKINTÉS II. WPF III. Modern UI 2015 Bánsághi Anna 2 of 64
Részletesebbeneseményvezérelt megoldások Vizuális programozás 5. előadás
Programozási architektúrák, eseményvezérelt megoldások Vizuális programozás 5. előadás Komponens-alapú programozás Kezdelteges formája, az első komponensek: DLL-ek Black box ujrahasznosítható kód Függvényeket
RészletesebbenPHP II. WEB technológiák. Tóth Zsolt. Miskolci Egyetem. Tóth Zsolt (Miskolci Egyetem) PHP II. 2014 1 / 19
PHP II. WEB technológiák Tóth Zsolt Miskolci Egyetem 2014 Tóth Zsolt (Miskolci Egyetem) PHP II. 2014 1 / 19 Tartalomjegyzék Objektum Orientált Programozás 1 Objektum Orientált Programozás Öröklődés 2 Fájlkezelés
RészletesebbenC# osztályok. Krizsán Zoltán
C# osztályok Krizsán Zoltán Fogalma Önálló hatáskőrrel rendelkező, absztrakt adattípus, amely több, különböző elemet tartalmazhat. Minden esetben a heap-en jön létre! A programozó hozza létre, de a GC
RészletesebbenAdatbázis alapú rendszerek gyakorlat Adatbázis alapú alkalmazásfejlesztés Java, C# környezetben
Adatbázis alapú rendszerek gyakorlat Adatbázis alapú alkalmazásfejlesztés Java, C# környezetben Java GUI készítése, Oracle kapcsolódás JDBC-vel A jelen anyagban egy egyszerűsített megközelítéssel vizsgáljuk
RészletesebbenSzervlet-JSP együttműködés
Java programozási nyelv 2007-2008/ősz 10. óra Szervlet-JSP együttműködés Kérés továbbítás technikái legradi.gabor@nik.bmf.hu szenasi.sandor@nik.bmf.hu Szervlet-JSP együttműködés Témakörök Osztálykönyvtár
RészletesebbenObjektumorientált programozás C# nyelven
Objektumorientált programozás C# nyelven 1. rész Osztályok és objektumok Mezık és metódusok Konstruktor és destruktor Láthatósági szintek Névterek és hatókörök Osztály szintő tagok Beágyazott osztályok
RészletesebbenEntity Framework alapú adatbáziselérés
Entity Framework alapú adatbáziselérés Dr. Johanyák Zsolt Csaba http://johanyak.hu A gyakorlat célja Model-first megközelítéssel Entity-Framework modell létrehozása, majd ebből adatbázis generálása LocalDB-ben.
RészletesebbenINFORMATIKAI ALAPISMERETEK
Informatikai alapismeretek középszint 1021 ÉRETTSÉGI VIZSGA 2011. május 13. INFORMATIKAI ALAPISMERETEK KÖZÉPSZINTŰ ÍRÁSBELI ÉRETTSÉGI VIZSGA JAVÍTÁSI-ÉRTÉKELÉSI ÚTMUTATÓ NEMZETI ERŐFORRÁS MINISZTÉRIUM
RészletesebbenAccess adatbázis elérése OLE DB-n keresztül
Access adatbázis elérése OLE DB-n keresztül Készítsünk egy grafikus felülető alkalmazást, ami lehetıvé teszi egy Access adatbázisban tárolt hallgatói adatok (EHA, Név, e-mail cím) lekérdezését (összes
RészletesebbenC# nyelv alapjai. Krizsán Zoltán 1. Objektumorientált programozás C# alapokon tananyag. Általános Informatikai Tanszék Miskolci Egyetem
C# nyelv alapjai Krizsán Zoltán 1 Általános Informatikai Tanszék Miskolci Egyetem Objektumorientált programozás C# alapokon tananyag Tartalom Bevezetés Lokális változó Utasítások Szójáték Why do all real
RészletesebbenA Microsoft Visual Studio 2005 fejlesztőkörnyezet
Vizuális és eseményvezérelt programozás BMF NIK A Microsoft Visual Studio 2005 fejlesztőkörnyezet Az integrált fejlesztőkörnyezet (IDE) alapelemei Projektek és megoldások Új projekt indítása, projektek
RészletesebbenC# feladatgyűjtemény Kovács Emőd, Radványi Tibor, Király Roland, Hernyák Zoltán
C# feladatgyűjtemény Kovács Emőd, Radványi Tibor, Király Roland, Hernyák Zoltán C# feladatgyűjtemény Kovács Emőd, Radványi Tibor, Király Roland, Hernyák Zoltán Publication date 2011 A tananyag a TÁMOP-4.1.2-08/1/A-2009-0046
RészletesebbenSzálkezelés. Melyik az a hívás, amelynek megtörténtekor már biztosak lehetünk a deadlock kialakulásában?
Szálkezelés 1. A szekvencia diagram feladata az objektumok egymás közti üzenetváltásainak ábrázolása egy időtengely mentén elhelyezve. Az objektumok életvonala egy felülről lefelé mutató időtengely. A
RészletesebbenGrafikus felületek készítése 1.
Grafikus felületek készítése 1. SWT Budapes( Műszaki és Gazdaságtudományi Egyetem Méréstechnika és Információs Rendszerek Tanszék Grafikus felületek fejlesztése Java grafikus toolkitek o AWT Na>v widgetek
RészletesebbenBosch Video Client. Kezelési útmutató
Bosch Video Client hu Kezelési útmutató Bosch Video Client Tartalomjegyzék hu 3 Tartalomjegyzék 1 Bevezetés 6 1.1 Rendszerkövetelmények 6 1.2 Szoftvertelepítés 6 1.3 Az alkalmazásban használt jelölések
RészletesebbenObjektumorientált programozás C# nyelven
Objektumorientált programozás C# nyelven 1. rész Osztályok és objektumok Mezık és metódusok Konstruktor és destruktor Névterek és hatókörök Láthatósági szintek Osztály szintő tagok Beágyazott osztályok
Részletesebbenstrings.xml res/values/strings.xml fájlban hozzuk létre a hiányzó string adatforrásainkat A jelenlegi helyett ez álljon: <resources> <string
Resource Objects Adatforrás elemeket hivatkozás (referencia, mutató) segítségével használhatunk, ezek karakterláncok (stringek), képek, azonosítók vagy akár fájlok is lehetnek A mappastruktúra egységesen
RészletesebbenOsztály és objektum fogalma
Osztály és objektum fogalma A C++ programozási nyelv I. CPP1/ 1 Az osztály (class) class: adatok és módszerek (method) (függvények) együttese, amely absztrakt adattípusként működik. objektum: egy osztály
RészletesebbenVizuális programozás gyakorlat
Vizuális programozás gyakorlat Képnézegető alkalmazás WPF alapú felülettel Készítsen egy WPF képnézegető alkalmazást, ami a mellékelt ábrának megfelelően a bal oldali oszlopban (Grid) egy könyvtárban található
RészletesebbenObjektumorientált programozás C# nyelven III.
Objektumorientált programozás C# nyelven III. Kivételkezelés Tulajdonságok Feladatok Készítette: Miklós Árpád Dr. Kotsis Domokos Hallgatói tájékoztató A jelen bemutatóban található adatok, tudnivalók és
RészletesebbenOBJEKTUM ORIENTÁLT PROGRAMOZÁS JAVA NYELVEN. vizsgatételek
OBJEKTUM ORIENTÁLT PROGRAMOZÁS JAVA NYELVEN vizsgatételek 1. Az objektumorientált programozás szemlélete, az objektum fogalma 2. Az objektumorientált programozás alapelvei 3. A Java nyelv története, alapvető
RészletesebbenAIX 6.1. IBM Systems Director Console for AIX
AIX 6.1 IBM Systems Director Console for AIX AIX 6.1 IBM Systems Director Console for AIX Megjegyzés Az információk és a tárgyalt termék használatba vétele előtt olvassa el a Nyilatkozatok oldalszám:
RészletesebbenGrafikus felületek a programozó szempontjából grafikus elemek absztrakt reprezentációja az egyes elemek tulajdonságait leíró adatstruktúrák.
AWT Grafika Bevezető Grafikus felületek a programozó szempontjából grafikus elemek absztrakt reprezentációja az egyes elemek tulajdonságait leíró adatstruktúrák. Fogalmak: geometriai alakzatok, felületek,
RészletesebbenPHP5 Új generáció (2. rész)
PHP5 Új generáció (2. rész)...avagy hogyan használjuk okosan az osztályokat és objektumokat PHP 5-ben. Cikksorozatom elõzõ részében képet kaphattunk arról, hogy valójában mik is azok az objektumok, milyen
RészletesebbenEseményvezérelt alkalmazások fejlesztése II 12. előadás. Objektumrelációs adatkezelés (ADO.NET) Giachetta Roberto
Eötvös Loránd Tudományegyetem Informatikai Kar Eseményvezérelt alkalmazások fejlesztése II 12. előadás Objektumrelációs adatkezelés (ADO.NET) Giachetta Roberto A jegyzet az ELTE Informatikai Karának 2014.
Részletesebben54 481 01 1000 00 00 CAD-CAM
Az Országos Képzési Jegyzékről és az Országos Képzési Jegyzékbe történő felvétel és törlés eljárási rendjéről szóló 133/2010. (IV. 22.) Korm. rendelet alapján. Szakképesítés, szakképesítés-elágazás, rész-szakképesítés,
RészletesebbenScopeImage 9.0. Kamera és képfeldolgozó szoftver. Felhasználói kézikönyv
ScopeImage 9.0 Kamera és képfeldolgozó szoftver Felhasználói kézikönyv Tisztelt felhasználó! Engedje meg, hogy először is gratuláljunk az általunk gyártott termék megvásárlásához. A helytelen használat
RészletesebbenAdatbázis rendszerek I
Adatbázis rendszerek I Szemantikai adatmodellek ek ME- GEIAL Dr. Kovács László Modellezés szerepe Problémakör modellezése adatbázis struktúrával Dolgozó kód név beosztás Feladat kód dolg termék Termék
RészletesebbenMUNKAANYAG. Angyal Krisztián. Szövegszerkesztés. A követelménymodul megnevezése: Korszerű munkaszervezés
Angyal Krisztián Szövegszerkesztés A követelménymodul megnevezése: Korszerű munkaszervezés A követelménymodul száma: 1180-06 A tartalomelem azonosító száma és célcsoportja: SzT-004-55 SZÖVEGSZERKESZTÉS
RészletesebbenJava felhasználói felület
Java felhasználói felület Alapfogalmak Komponens alapok Elek Tibor GUI-val kapcsolatos fogalmak Eseményvezérelt program Program futás: - induló állapot (induló UI) megjelenítése, - eseménykezelő végtelen
RészletesebbenC#, OOP. Osztályok tervezése C#-ban
C#, OOP Osztályok tervezése C#-ban OOP Létrehozás (creating) Megszüntetés (destroying) Túlterhelés (overlading) Felsorolás típus (enumerated types) 2 Hajó osztály Sailboat class using System; class Sailboat
RészletesebbenBEACon TM. Verzió 2.0
BEACon TM Verzió 2.0 A Suprema Inc., a BioEntry TM és a BEACon TM a Suprema Inc. regisztrált márkanevei. Minden jog fenntartva. Ennek a munkának semmilyen részét, ami ezek a márkanevek alatt fut nem lehet
RészletesebbenJVJ DVD-8808 Könyöklő DVD lejátszó Használati utasítás
JVJ DVD-8808 Könyöklő DVD lejátszó Használati utasítás Lejátszható formátumok: MP4/MP3/DVD/SVCD/VCD/DVCD/CD/WMA/JPEG Tartalomjegyzék A. Figyelmeztetések...2 B. Használat előtt...2 Kiegészítők...2 C. A
RészletesebbenGrafikus felhasználói felületek. Abstract Window Toolkit, a java.awt és java.awt.event csomagok
Grafikus felhasználói felületek készítése és eseménykezelés Java-ban Abstract Window Toolkit, a java.awt és java.awt.event csomagok Abstract Window Toolkit Absztraktizálás: az osztályok és funkcionalitások
RészletesebbenOAF Gregorics Tibor: Minta dokumentáció a 3. házi feladathoz 1.
OAF Gregorics Tibor: Minta dokumentáció a 3. házi feladathoz 1. Feladat Szimuláljuk különféle élőlények túlélési versenyét. A lények egy pályán haladnak végig, ahol váltakozó viszonyok vannak. Egy lénynek
RészletesebbenObjektumorientált programozás C# nyelven
Objektumorientált programozás C# nyelven 3. rész Tulajdonságok Indexelık Kivételkezelés Hallgatói tájékoztató A jelen bemutatóban található adatok, tudnivalók és információk a számonkérendı anyag vázlatát
RészletesebbenSATEL. CA-64 RIASZTÓKÖZPONT (1.04.02-es szoftver verzió) Telepítési útmutató
SATEL CA-64 RIASZTÓKÖZPONT (1.04.02-es szoftver verzió) Telepítési útmutató SATEL CA-64 Telepítési útmutató 2 TARTALOMJEGYZÉK A TERMÉK BEMUTATÁSA...3 A RIASZTÓKÖZPONT ÁLTALÁNOS TULAJDONSÁGAI...3 A RENDSZER
RészletesebbenSzéchenyi István Egyetem www.sze.hu/~herno
Oldal: 1/6 A feladat során megismerkedünk a C# és a LabVIEW összekapcsolásának egy lehetőségével, pontosabban nagyon egyszerű C#- ban írt kódból fordítunk DLL-t, amit meghívunk LabVIEW-ból. Az eljárás
RészletesebbenBevezetés a Programozásba II 11. előadás. Adatszerkezetek megvalósítása. Adatszerkezetek megvalósítása Adatszerkezetek
Pázmány Péter Katolikus Egyetem Információs Technológiai és Bionikai Kar Bevezetés a Programozásba II 11. előadás 2014.05.12. Giachetta Roberto groberto@inf.elte.hu http://people.inf.elte.hu/groberto Adatszerkezetek
RészletesebbenIntellio Video System 2. Csatlakozási útmutató a demószerverhez
Intellio Video System 2 Csatlakozási útmutató a demószerverhez Az Intellio Video System Client 2 telepítése Az Intellio Video System Client 2 kliens telepítését az IntellioClient2Setup.exe fájl elindításával
RészletesebbenAlap számológép alkalmazás
Első Androidos programom - Egyszerű műveleteket használó számológép elkészítése Android Developer Tools (ADT) segítségével Alap számológép alkalmazás Android programfejlesztés Tompos Szabolcs Tartalom
Részletesebben3. Gyakorlat Ismerkedés a Java nyelvvel
3. Gyakorlat Ismerkedés a Java nyelvvel Parancssori argumentumok Minden Java programnak adhatunk indításkor paraméterek, ezeket a program egy tömbben tárolja. public static void main( String[] args ) Az
RészletesebbenElemi alkalmazások fejlesztése IV. Adatbázis-kezelés ActiveX vezérlıkkel - 1
ADATBÁZIS-KEZELÉS ACTIVEX VEZÉRLİK ALKALMAZÁSÁVAL I.... 1 ACTIVEX... 1 ACTIVEX CONTROL... 1 SAJÁT ACTIVEX VEZÉRLİ LÉTREHOZÁSA... 1 circctrl.cpp... 2 Háttérszín tulajdonság hozzárendelése a vezérlıhöz...
RészletesebbenBevezetés a programozásba 2
Bevezetés a programozásba 2 7. Előadás: STL konténerek, sablonok http://digitus.itk.ppke.hu/~flugi/ Vector int int main() { vector v(10); int int sum=0; for for (int i=0;i
RészletesebbenWCF, Entity Framework, ASP.NET, WPF 1. WCF service-t (adatbázissal Entity Framework) 2. ASP.NET kliens 3. WPF kliens
WCF, Entity Framework, ASP.NET, WPF 1. WCF service-t (adatbázissal Entity Framework) 2. ASP.NET kliens 3. WPF kliens Hozzunk létre egy ASP.NET Empty Web Site projektet! A projekt neve legyen WCFAPP1. Ez
RészletesebbenINFORMATIKAI ALAPISMERETEK
Informatikai alapismeretek emelt szint 0802 ÉRETTSÉGI VIZSGA 2008. október 20. INFORMATIKAI ALAPISMERETEK EMELT SZINTŰ ÍRÁSBELI ÉRETTSÉGI VIZSGA JAVÍTÁSI-ÉRTÉKELÉSI ÚTMUTATÓ OKTATÁSI ÉS KULTURÁLIS MINISZTÉRIUM
Részletesebben117. AA Megoldó Alfréd AA 117.
Programozás alapjai 2. (inf.) pót-pótzárthelyi 2011.05.26. gyak. hiányzás: kzhpont: MEG123 IB.028/117. NZH:0 PZH:n Minden beadandó megoldását a feladatlapra, a feladat után írja! A megoldások során feltételezheti,
RészletesebbenIntézményi interface technikai dokumentáció
AVIR Intézményi interface technikai dokumentáció 1. Intézményi interface technikai dokumentáció verzió:1.2 (2011-09-30) Definíciók AVIR Adattár alapú Vezető Információs Rendszer Központi Adattárház Központi
RészletesebbenFELÜLET...13 PROJEKTTERV...14
1. FELADAT...3 1.1. FELADATKITŰZÉS:...3 1.2. PONTOSÍTÁS...3 1.2.1. Térkép:...3 1.2.2. Alkalmazott mesterséges intelligencia algoritmusok...3 1.3. ALRENDSZERDIAGRAM...3 2. OSZTÁLYOK...4 2.1. GUI ALRENDSZER(GYURI)...4
RészletesebbenElőzmények 2011.10.23.
Előzmények Dr. Mileff Péter A 80-as évek közepétől a szoftverek komplexitása egyre növekszik. Megjelentek az OO nyelvek. Az OO fejlesztési módszerek a rendszer különböző nézőpontú modelljeit készítik el.
RészletesebbenA táblaszámítógép bemutatása
A táblaszámítógép bemutatása Dokumentum cikkszáma: 419466-211 2007. január Ez az útmutató a számítógép hardveres funkcióit ismerteti. Tartalomjegyzék 1 ek A fő kezelőfelület részegységei....................
RészletesebbenObjektum Orientált Szoftverfejlesztés (jegyzet)
Objektum Orientált Szoftverfejlesztés (jegyzet) 1. Kialakulás Kísérletek a szoftverkrízisből való kilábalásra: 1.1 Strukturált programozás Ötlet (E. W. Dijkstra): 1. Elkészítendő programot elgondolhatjuk
RészletesebbenProgramozás BMEKOKAA146. Dr. Bécsi Tamás 1. Előadás
Programozás BMEKOKAA146 Dr. Bécsi Tamás 1. Előadás Bemutatkozás Előadó: Dr. Bécsi Tamás St.106, (1)463-1044, becsi.tamas@mail.bme.hu Közlekedés-, és Járműirányítási Tanszék www.kjit.bme.hu Programozás
Részletesebbenlibgdx alapok, első alkalmazás
A libgdx letöltésének, telepítési lépéseinek bemutatása, projekt létrehozása, első libgdx alkalmazás elkészítése képernyőképekkel, magyarázatokkal. libgdx alapok, első alkalmazás Android játékfejlesztés
RészletesebbenBook Template Title. Author Last Name, Author First Name
Book Template Title Author Last Name, Author First Name Book Template Title Author Last Name, Author First Name I. rész - Szoftver technológia 1. fejezet - Esettanulmány Bevezetés Az alkalmazás fejlesztésére
RészletesebbenPowershell 1. gyakorlat
Ahhoz, hogy kipróbálhassátok az előre elkészített anyagokat, be kell állítani a Set-ExecutionPolicy ExecutionPolicy RemoteSigned A ps1 kiterjesztésű fájlok a.\névvel indíthatóak 1. Mit hallottak előadáson
RészletesebbenJava programozási nyelv 8. rész Grafikus felhasználói felület
Java programozási nyelv 8. rész Grafikus felhasználói felület Nyugat-Magyarországi Egyetem Faipari Mérnöki Kar Informatikai Intézet Soós Sándor 2005. szeptember A Java programozási nyelv Soós Sándor 1/17
RészletesebbenSorompó kezelés mérlegműszerrel
METRISoft Mérleggyártó KFT PortaWin (PW2) Jármű mérlegelő program 6800 Hódmezővásárhely Jókai u. 30 Telefon: (62) 246-657, Fax: (62) 249-765 e-mail: merleg@metrisoft.hu Web: http://www.metrisoft.hu Módosítva:
RészletesebbenMai számítógép perifériák. Számítógépes alapismeretek 1. beadandó. Lővei Péter (LOPSAAI.ELTE) 2010.
Mai számítógép perifériák Számítógépes alapismeretek 1. beadandó Lővei Péter (LOPSAAI.ELTE) 2010. Tartalom Bemeneti eszközök...3 Egér...3 Billentyűzet...3 Scanner...3 Digitális fényképezőgép...4 Ujjlenyomat
RészletesebbenI. fejezet Hello Világ! Programozás tankönyv. II. Fejezet. Helló Világ! avagy a Miért?-ek elkezdődnek
I. fejezet Hello Világ! Programozás tankönyv II. Fejezet Helló Világ! avagy a Miért?-ek elkezdődnek 1 Programozás tankönyv I. fejezet Majd minden programozó ezzel a kedves kis programmal kezdi a programozás-tanulást:
RészletesebbenEgy dinamikus adatbázis megvalósítása egy megrendelő-raktározó alkalmazáson keresztül.
Eötvös Lóránt Tudományegyetem Informatikai kar Egy dinamikus adatbázis megvalósítása egy megrendelő-raktározó alkalmazáson keresztül. szerző: Nemes András Programtervező Informatikus nappali tagozat. témavezető:
RészletesebbenSzoftvertechnolo gia gyakorlat
Szoftvertechnolo gia gyakorlat Dr. Johanyák Zsolt Csaba http://johanyak.hu 1. Dependency Injection (függőség befecskendezés) tervezési minta A tervezési minta alapgondolata az, hogy egy konkrét feladatot
RészletesebbenSzkeleton tervezése. 100 Generalis faliora. Csapattagok: Konzulens: Szabó András. 2005. március 21.
Szkeleton tervezése 100 Generalis faliora Konzulens: Szabó András Csapattagok: Kenéz Tamás TLSXNP arachnus@tvn.hu Kiss Gergely KNJU43 6er6e1y@gmail.com Papp Gergely L584UF pg554@hszk.bme.hu Rostás Gábor
RészletesebbenProgramozási technikák Pál László. Sapientia EMTE, Csíkszereda, 2009/2010
Programozási technikák Pál László Sapientia EMTE, Csíkszereda, 2009/2010 Előadás tematika 1. Pascal ismétlés, kiegészítések 2. Objektum orientált programozás (OOP) 3. Delphi környezet 4. Komponensek bemutatása
RészletesebbenRIA Rich Internet Application
Áttekintés RIA Rich Internet Application Komplex felhasználói felülettel rendelkező web-alkalmazások Bevezető Flex áttekintés ActionScript Felhasználói felület tervezése Események Szerver oldali szolgáltatásokkal
RészletesebbenSzövegszerkesztő programok: Jegyzettömb, WordPad, Microsoft Word
Szövegszerkesztő programok: Jegyzettömb, WordPad, Microsoft Word A szövegszerkesztők közül az elkészítendő szöveg jellegétől függően választunk programot, és nem feltétlenül azt, amelyiket alapértelmezésben
RészletesebbenAz anyagdefiníciók szerepe és használata az Architectural Desktop programban
Az anyagdefiníciók szerepe és használata az Architectural Desktop programban Az Architectural Desktop program 2004-es változatáig kellett várni arra, hogy az AutoCAD alapú építész programban is megjelenjenek
RészletesebbenSZET GYAK1: Követelmények ellenőrzése
SZET GYAK1: Követelmények ellenőrzése A gyakorlaton a követelmények nyilvántartásával és ellenőrzésével kapcsolatos feladatok közül vizsgálunk meg néhányat. Követelményspecifikáció ellenőrzése átvizsgálással
RészletesebbenSTL. Algoritmus. Iterátor. Tároló. Elsődleges komponensek: Tárolók Algoritmusok Bejárók
STL Elsődleges komponensek: Tárolók Algoritmusok Bejárók Másodlagos komponensek: Függvény objektumok Adapterek Allokátorok (helyfoglalók) Tulajdonságok Tárolók: Vektor (vector) Lista (list) Halmaz (set)
RészletesebbenProgramozás I. 2. gyakorlat. Szegedi Tudományegyetem Természettudományi és Informatikai Kar
Programozás I. 2. gyakorlat Szegedi Tudományegyetem Természettudományi és Informatikai Kar Antal Gábor 1 Vizuális modellezés Programozás: Modellezés és tervezés Implemetálás (Kódolás) Dokumentálás és Tesztelés
Részletesebben4. Öröklődés. Programozás II
4. Öröklődés Programozás II Mielőtt belevágunk Egy Tárgy típusú objektumokat tároló tömb i. elemében tároljunk el egy új tárgyat Rossz módszer: tomb[i].setnev( uj.getnev() ); tomb[i].setertek( uj.getertek()
RészletesebbenA SZOFTVERTECHNOLÓGIA ALAPJAI
A SZOFTVERTECHNOLÓGIA ALAPJAI Objektumorientált tervezés 8.előadás PPKE-ITK Tartalom 8.1 Objektumok és objektumosztályok 8.2 Objektumorientált tervezési folyamat 8.2.1 Rendszerkörnyezet, használati esetek
RészletesebbenJAVA PROGRAMOZÁS 3.ELŐADÁS
Dr. Pál László, Sapientia EMTE, Csíkszereda JAVA PROGRAMOZÁS 3.ELŐADÁS 2014-2015 tavasz Polimorfizmus, absztrakt osztályok, interfészek 2 Példa - Hengerprogram 3 Példa - Hengerprogram 4 Példa - Hengerprogram
RészletesebbenADATBÁZISKEZELÉS ADATBÁZIS
ADATBÁZISKEZELÉS 1 ADATBÁZIS Az adatbázis adott (meghatározott) témakörre vagy célra vonatkozó adatok gyűjteménye. - Pl. A megrendelések nyomon követése kereskedelemben. Könyvek nyilvántartása egy könyvtárban.
RészletesebbenEddig még nem használt vezérlőket is megismerünk: PlaceHolder, RadioButtonList.
Áttekintés Alapesetben az ASP.NET-ben az esemény bekövetkezésekor az oldalunk teljesen újratöltődik és nem tárolja el a kliens állapotát automatikusan. Ezért kell foglalkoznunk a Szerver vagy Kliens oldali
RészletesebbenWelcome3 Bele pteto rendszer
Welcome3 Bele pteto rendszer Programozói kézikönyv beks Kommunikációs Technika Kft 4024, Debrecen, Rákóczi utca 21 www.beks.hu 2013. március 7. Tartalomjegyzék Rendszer telepítési folyamatábra... 6 Welcome3
RészletesebbenEMTP, EGY ÚJ LEVELEZÕ PROTOKOLL ÉS IMPLEMENTÁCIÓJA
EMTP, EGY ÚJ LEVELEZÕ PROTOKOLL ÉS IMPLEMENTÁCIÓJA Iványi Tibor, ivanyit@tigris.klte.hu Csukás Levente, csukasl@fox.klte.hu Kossuth Lajos Tudományegyetem Informatikai és Számító Központ Abstract The well
RészletesebbenBiztonság java web alkalmazásokban
Biztonság java web alkalmazásokban Webalkalmazások fejlesztése tananyag Krizsán Zoltán 1 [2012. május 9.] 1 Általános Informatikai Tanszék Miskolci Egyetem 2012. május 9. Krizsán Zoltán [2012. május 9.]
Részletesebben1. BEVEZETÉS... 5 2. A RENDSZER ELEMEI, ARCHITEKTÚRÁJA... 5
EntryProx Beléptető Rendszer FELHASZNÁLÓI KÉZIKÖNYV v.1.0.7. EntryProx Beléptető Rendszer TARTALOM 1. BEVEZETÉS... 5 2. A RENDSZER ELEMEI, ARCHITEKTÚRÁJA... 5 3. A RENDSZER ÜZEMBE HELYEZÉSE... 7 3.1. Az
RészletesebbenDell Latitude E5440 Kezelési kézikönyv
Dell Latitude E5440 Kezelési kézikönyv Szabályozó modell: P44G Szabályozó típus: P44G001 Notes, Cautions, and Warnings MEGJEGYZÉS: A NOTE indicates important information that helps you make better use
RészletesebbenKétdimenziós rajzolás WPF-ben
Kétdimenziós rajzolás WPF-ben A grafikus megjelenítés módjai WPF-ben: System.Windows.Shapes névtér osztályaival magas szintű, rengeteg metódus, tulajdonságok, eseménykezelés, input kezelés (egér, billentyűzet)
RészletesebbenRövidített felhasználói kézikönyv. H.264 ( 4/8/16 csatornás) Digitális video rögzítő
Rövidített felhasználói kézikönyv H.264 ( 4/8/16 csatornás) Digitális video rögzítő EVD-04/100A1HCE EVD-08/100A1HCE EVD-16/100A1HCE EVD-04/100A1HCB EVD-08/100A1HCB EVD-16/100A1HCB Használja az ajánlott
Részletesebben!!" KÉSZÍTK: ERDÉLYI LAJOS KOLLÁR NÁNDOR WD6OGW BUK8Y7
!!" KÉSZÍTK: ERDÉLYI LAJOS KOLLÁR NÁNDOR WD6OGW BUK8Y7 #$%#&'( 1. Bevezet... 4 1.1. Feladatkiírás:... 4 1.2. Specifikáció... 4 2. A kidolgozás munkafázisai, szakaszai... 6 3. Fejlesztési irányelvek...
RészletesebbenProgramozás BMEKOKAA146. Dr. Bécsi Tamás 8. előadás
Programozás BMEKOKAA146 Dr. Bécsi Tamás 8. előadás Visszatekintés A Windows Console alkalmazások egy karakteres képernyőt biztosítottak, ahol a kimenet a kiírt szöveg, míg a bemenet a billentyűzet volt.
RészletesebbenBudapest, 2009. 1. oldal
e-m@il:vibastile@monornet.hu, web:www.vibastile.hu Budapest, 2009 1. oldal e-m@il:vibastile@monornet.hu, web:www.vibastile.hu TARTALOM 1. A PROGRAM INDÍTÁSA... 3 2. A PROGRAM FUNKCIÓI... 3 3. FIZETÉSI
RészletesebbenBánsághi Anna anna.bansaghi@mamikon.net
ESEMÉNYVEZÉRELT PROGRAMOZÁS Bánsághi Anna anna.bansaghi@mamikon.net 1. ELŐADÁS - C# ÁTTEKINTÉS - 1 2015 Bánsághi Anna 1 of 84 TEMATIKA I. C# ÁTTEKINTÉS II. WPF III. Modern UI 2015 Bánsághi Anna 2 of 84
RészletesebbenSzerializáció. Tóth Zsolt. Miskolci Egyetem. Tóth Zsolt (Miskolci Egyetem) Szerializáció / 22
Szerializáció Tóth Zsolt Miskolci Egyetem 2014 Tóth Zsolt (Miskolci Egyetem) Szerializáció 2014 1 / 22 Tartalomjegyzék 1 Szerializációs Alapfogalmak 2 Szerializációs Megoldások Object Szerializáció XML
RészletesebbenProgramozás 1. 2.gyakorlat
Programozás 1. 2.gyakorlat Ismétlés Objektum: Egy a való világból vett elem (ami lehet elvonatkoztatott is) számítógépes ábrázolása. Pl: Kurzus, Személy stb Minden Objektum rendelkezik: Állapottal Viselkedéssel
RészletesebbenDell Latitude E5540 Kezelési kézikönyv
Dell Latitude E5540 Kezelési kézikönyv Szabályozó modell: P44G Szabályozó típus: P44G001 Megjegyzések, figyelmeztetések és Vigyázat jelzések MEGJEGYZÉS: A MEGJEGYZÉSEK fontos tudnivalókat tartalmaznak,
RészletesebbenKalapácsvetés 2016 szöveges
Kalapácsvetés 2016 Ebben a feladatban a 2016. évi nyári olimpiai játékokon az atlétika férfi kalapácsvetés döntőjének eredményeit kell feldolgoznia. A döntő 6 dobási sorozatból állt, de a 3. sorozat után
RészletesebbenCellCom. Szoftver leírás
CellCom Szoftver leírás A vezérlő szoftver bemutatása 2 www.lenyo.hu Tartalom LCC vezérlőszoftver 5 Rendszerkövetelmények 5 Telepítés 5 Indítás 7 Eltávolítás, újratelepítés és javítás 8 Kulcskezelés 8
RészletesebbenKezelési és szerelési útmutató
Kezelési és szerelési útmutató A Villa rendszer C3S alap, C3K kódzáras, C3C proxy Alapvető funkció 1. A színes vagy fekete-fehér CCD kamera 2. infra éjjellátó funkció 3. Csengetés beltéri monitoron 4.
RészletesebbenAz üzembe helyezéstől. a nyomtatásig. Z45 Color Jetprinter. Az üzembe helyezéstől a nyomtatásig. 2002. január. www.lexmark.com
Az üzembe helyezéstől a nyomtatásig Z45 Color Jetprinter Az üzembe helyezéstől a nyomtatásig 2002. január www.lexmark.com Biztonsági információk A készülékhez csak a mellékelt tápegységet használja vagy
RészletesebbenTöltőfunkció Kezelési Utasítás
METRISoft Mérleggyártó KFT PortaWin (PW2) Jármű mérlegelő program 6800 Hódmezővásárhely Jókai u. 30 Telefon: (62) 246-657, Fax: (62) 249-765 e-mail: merleg@metrisoft.hu Web: http://www.metrisoft.hu Módosítva:
RészletesebbenModellalkotás UML-ben
Modellalkotás UML-ben Modellalkotás UML-ben A Unified Modeling Language (UML) egy grafikus modellező nyelv, amely lehetőséget nyújt egy megoldandó probléma specifikációjának leírására absztrakt szinten,
RészletesebbenHello World Servlet. Készítsünk egy szervletet, amellyel összeadhatunk két számot, és meghívásakor üdvözlőszöveget ír a konzolra.
Hello World Servlet Készítsünk egy szervletet, amellyel összeadhatunk két számot, és meghívásakor üdvözlőszöveget ír a konzolra. Hozzunk létre egy Dynamic Web projectet File New Other itt a következőket
Részletesebben