Elemi alkalmazások fejlesztése III.

Méret: px
Mutatás kezdődik a ... oldaltól:

Download "Elemi alkalmazások fejlesztése III."

Átírás

1 Elemi alkalmazások fejlesztése III. Memóriajáték 1. Készítette: Szabóné Nacsa Rozália people.inf.elte.hu/nacsa/qt4/eaf3/ Qt

2 memorygame Játék közben 2

3 memorygame Kártyák kiválasztása 3

4 Az alkalmazás osztálydiagramja mod02 mod02 mod03 4

5 A modul tartalma Látványelemek Saját kártya vezérlő készítése (CardButton osztály) Saját kártya csoport vezérlő készítése (CardGroup osztály) Adatok Kártya csomag kezelő osztály elkészítése (CardPack osztály) Kártya csomagokat (többet!) kezelő osztály elkészítése (CardPackSet osztály) Alkalmazás Kártya csomagok megjelenítése (cardviewer, cardtree projektek) 5

6 Utils modul: segéd függvények utils.h utils.h, utils.cpp #include <QString> namespace Utils void initrandomgenerator(); //Véletlenszám generátor inicializálása int getnextrandomnumber(const int max); //[0..max] közé eső véletlenszám QString getapplicationdirprefix(); //Az éppen futó alkalmazás elérési útvonala ; utils.cpp #include <QDir> #include <QApplication> #include <QTime> void Utils::initRandomGenerator() QTime t = QTime::currentTime(); #include "utils.h" srand(t.hour()*12 + t.minute()*60 + t.second()*60); int Utils::getNextRandomNumber(const int max) return (int) (((float) max)*rand()/(rand_max + 0.1)); QString Utils::getApplicationDirPrefix() return qapp >applicationdirpath() + QDir::separator(); 6

7 CardButton: definíció cardbutton cardbutton.h cardbutton.h class CardButton : public QPushButton Q_OBJECT #include <QPushButton> #include <QPixmap> public: CardButton( QWidget * parent = 0); ~CardButton(); void setpixmap (QPixmap pixmap) mpixmap=pixmap; int getid() return mid; void setid(int id) mid = id; protected: void paintevent(qpaintevent * event); public slots: void slotclicked(); signals: void cardbuttonclicked(cardbutton*); void cardbuttonclicked(int); private: QPixmap mpixmap; int mid; ; 7

8 CardButton: implementáció cardbutton cardbutton.cpp cardbutton.cpp CardButton::CardButton( QWidget * parent) : QPushButton( parent ) connect(this,signal(clicked()),this,slot(slotclicked())); #include <QPainter> #include <QPaintEvent> #include "cardwidget.h" void CardButton::slotClicked() emit cardbuttonclicked(this); emit cardbuttonclicked(mid); void CardButton::paintEvent (QPaintEvent * /*event*/) int side = qmin(size().width(), size().height()); QRect rect((size().width() side) / 2, (size().height() side) / 2, side, side); QPainter painter; painter.begin(this); painter.drawpixmap(rect,mpixmap); painter.end(); 8

9 CardButtonGroup: definíció cardbuttongroup cardbuttongroup.h cardbuttongroup.h typedef QList<CardButton*> CardButtonList; class CardButtonGroup : public QFrame #include <QFrame> Q_OBJECT #include <QList> public: CardButtonGroup(QWidget *parent = 0); class QGridLayout; void newcardbuttongroup(int row, int col); class QPixmap; CardButton* getcardbutton(int i); class CardButton; public slots: void updatecardbuttonpixmap(int cardbuttonid, QPixmap pixmap); void setcardbuttonenabled(int cardbuttonid, bool b); signals: void cardbuttonclicked(int i); void cardbuttongroupchanged(int numrows, int numcols); private: void insertcardbuttons(int row, int col ); void removecardbuttons(); void debugcardbuttons(); private: int mnumrows; int mnumcols; CardButtonList cardbuttonlist; QGridLayout *cardbuttonlayout; ; 9

10 CardButtonGroup: konstruktor, newcardbuttongroup cardbuttongroup cardbuttongroup.cpp cardbuttongroup.cpp CardButtonGroup::CardButtonGroup(QWidget *parent) :QFrame(parent), mnumrows(0), mnumcols(0) cardbuttonlayout = new QGridLayout; setlayout(cardbuttonlayout); void CardButtonGroup::newCardButtonGroup(int row, int col) removecardbuttons(); insertcardbuttons(row, col ); mnumrows = row; mnumcols = col; 10

11 CardButtonGroup: insert, remove, update cardbuttongroup cardbuttongroup.cpp cardbuttongroup.cpp void CardButtonGroup::insertCardButtons(int row, int col ) CardButton *cardbutton; for (int i = 0; i < row; i++) for (int j = 0; j< col; j++) cardbutton = new CardButton(this); cardbutton >setsizepolicy( QSizePolicy( (QSizePolicy::Expanding),(QSizePolicy::Expanding))); cardbutton >setid(i*col+j); cardbuttonlayout >addwidget(cardbutton,i,j); //Registers cardbutton to cardbuttonlist.append(cardbutton); //Add cardbutton to container connect(cardbutton, SIGNAL(cardButtonClicked(int)), this, SIGNAL(cardButtonClicked(int))); show(); emit cardbuttongroupchanged(row,col); void CardButtonGroup::removeCardButtons( ) while (!cardbuttonlist.isempty()) delete cardbuttonlist.takefirst(); void CardButtonGroup::updateCardButtonPixmap(int cardbuttonid, QPixmap pixmap) cardbuttonlist.at(cardbuttonid) >setpixmap(pixmap); cardbuttonlist.at(cardbuttonid) >update(); 11

12 cardgroup cardgroup.ui Saját vezérlő használata Qt Designer ben 12

13 cardgroup cardgroup.ui Saját vezérlő elhelyezése az űrlapon cardbuttongroup 13

14 Az alkalmazás osztálydiagramja mod02 mod02 mod03 14

15 card card.h, card.cpp Card osztály #include <Qpixmap> card.h class Card public: Card(QString text, QPixmap pixmap); QPixmap getpixmap()return mpixmap; QString gettext()return mtext; QString tostring(); private: QString mtext; QPixmap mpixmap; ; typedef QList<Card*> CardList; Card::Card(QString text, QPixmap pixmap) card.cpp : mtext(text), mpixmap(pixmap) QString Card::toString() QString ret = " Text=" + mtext + " PixmapValid = " + QString::number(!mPixmap.isNull()) + " "; return ret; 15

16 cardpackset cardpackset.h Kártyacsomagok tárolása name.txt back.* képfájlok 16

17 CardPack osztály: definíció cardpack cardpack.h cardpack.h class CardPack public: CardPack(); ~CardPack(); QString getname()return mname; Card* getback()return mback; CardList &getfaces()return mfaces; Card* getface(int index); QPixmap getfacepixmap(int index); QString getfacetext(int index); void shufflecards(); bool loadcardpack(const QString &subdirpath) ; QString tostring(); private: QString mname; Card* mback; //updated by constructor CardList mfaces; ; typedef QList<CardPack*> CardPackList; 17

18 Kártya csomag osztály implementálása cardpack.cpp cardpack cardpack.cpp CardPack::CardPack() : mname(""), mback(0) CardPack::~CardPack() while (!mfaces.isempty()) delete mfaces.takefirst(); delete mback; Card* CardPack::getFace(int index) return mfaces.at(index); QPixmap CardPack::getFacePixmap(int index) return mfaces.at(index) >getpixmap(); QString CardPack::getFaceText(int index) return mfaces.at(index) >gettext(); 18

19 cardpack cardpack.cpp : loadcardpack Kártyacsomag betöltése: csomag neve cardpack.cpp name.txt betöltése bool CardPack::loadCardPack(const QString &subdirpath) //read name.txt QFile namefile(subdirpath + "/name.txt"); //name.txt exists!!! if(!namefile.open(qiodevice::readonly QIODevice::Text)) qwarning(qstring("warning: ** name.txt file is missing or not a text file. ** \nsubdirpath \"" + subdirpath + "\"").toascii()); return false; QTextStream in(&namefile); while (!in.atend()) mname += in.readline();... 19

20 Kártyacsomag hátlapjának betöltése, kártya létrehozása cardpack cardpack.cpp : loadcardpack cardpack.cpp hátlap betöltése... QStringList imagefilters; //Create filters for images foreach (QByteArray format, QImageReader::supportedImageFormats()) imagefilters += "*." + format; //Load back.* QStringList allfiles; foreach(qstring file, QDir(subDirPath).entryList(imageFilters, QDir::Files)) allfiles += QFileInfo(QDir(subDirPath),file).baseName(); if(!allfiles.contains("back")) qwarning(qstring("warning: ** Back file is missing from the \n\"" + subdirpath + "\"\ndirectory.").toascii()); return false; QStringList backfiles; foreach(qstring file, QDir(subDirPath).entryList(QStringList("back.*"), QDir::Files)) backfiles += QFileInfo(QDir(subDirPath),file).fileName(); QString backfile = backfiles.at(0); //Take the first back.* mback = new Card("Back",QPixmap(subDirPath + "/" + backfile));... 20

21 Kártyacsomag előlapjainak betöltése cardpack cardpack.cpp : loadcardpack cardpack.cpp előlapok betöltése... //Load faces //Add faces to subdir's pack but skip backs mfaces.clear(); foreach(qstring file, QDir(subDirPath).entryList(imageFilters, QDir::Files)) if (! (file.startswith("back."))) mfaces.append(new Card(file, QPixmap(subDirPath + "/" + file))); return true; 21

22 Kártyacsomag előlapjainak keverése, szövegesítése cardpack cardpack.cpp : loadcardpack cardpack.cpp void CardPack::shuffleCards() for (int i= 0; i < mfaces.size() * mfaces.size(); ++i) int ind1 = Utils::getNextRandomNumber(mFaces.size()); int ind2 = Utils::getNextRandomNumber(mFaces.size()); while(ind1 == ind2) ind2 = Utils::getNextRandomNumber(mFaces.size()); qswap(mfaces[ind1],mfaces[ind2] ); // <QtAlgorithms> előlapok keverése QString CardPack::toString() QString ret = "\npack name = " + mname + "\n"; előlapok ret += QString("Back: %1\n").arg(mBack >tostring()); szövegesítése for (int i = 0; i < mfaces.size(); ++i) ret += QString("\t Face #%1: %2 \n").arg(i).arg(mfaces.at(i) >tostring()); return ret; 22

23 cardpackset osztálydiagram CardPackSet osztály 23

24 CardPackSet : definíció cardpackset.h cardpackset cardpackset.h #include "cardpack.h" class CardPackSet public: CardPackSet(); ~CardPackSet(); void loadfromappresource(); void loadfromappdirectory(const QString &dir = "/packs"); void loadfrompath(const QString &path); CardPackList getpacklist()return mcardpacklist;; QStringList getpacknames(); CardPack* getbyname(const QString& name); CardPack* getbyindex(const int i); private: CardPackSet(const CardPackSet&); CardPackSet& operator=(const CardPackSet&); private: CardPackList mcardpacklist; ; 24

25 CardPackSet : konstruktor, destruktor cardpackset cardpackset.cpp cardpackset.cpp CardPackSet::CardPackSet() CardPackSet::~CardPackSet() while (!mcardpacklist.isempty()) delete mcardpacklist.takefirst(); #include <QDir> #include <QImageReader> #include <QString> #include <QFileInfo> #include <QImage> #include <QPixmap> #include <QFile> #include <QTextStream> #include <QMessageBox> #include "utils.h" #include "cardpackmanager.h" #include "cardpack.h" 25

26 CardPackSet osztály: getek cardpackset cardpackset.cpp cardpackset.cpp QStringList CardPackSet::getPackNames() QStringList packnames; foreach(cardpack *pack, mcardpacklist) packnames += pack >getname(); return packnames; CardPack* CardPackSet::getByName(const QString& name) CardPack *cardpack = NULL; foreach(cardpack *pack, mcardpacklist) if (name == pack >getname()) cardpack = pack; return cardpack; CardPack* CardPackSet::getByIndex(const int index) CardPack *cardpack = NULL; if(index < mcardpacklist.size()) cardpack = mcardpacklist.at(index); return cardpack; 26

27 CardPackSet osztály: kártyacsomagok betöltése cardpackset cardpackset.cpp : load... cardpackset.cpp void CardPackSet::loadFromAppResource() loadfrompath(qstring(":/datafiles/packs")); void CardPackSet::loadFromAppDirectory(const QString &dir) loadfrompath(utils::getapplicationdirprefix() + dir); card.qrc <!DOCTYPE RCC> <RCC version="1.0"> <qresource> <file alias="datafiles/packs/default.pack/name.txt">datafiles/packs/default.pack/name.txt</file> <file alias="datafiles/packs/default.pack/back.png">datafiles/packs/default.pack/back.png</file> <file alias="datafiles/packs/default.pack/01.jpg">datafiles/packs/default.pack/01.jpg</file>... <file alias="datafiles/packs/default.pack/12.jpg">datafiles/packs/default.pack/12.jpg</file> <file alias="datafiles/packs/default.pack/13.jpg">datafiles/packs/default.pack/13.jpg</file> <file alias="datafiles/packs/default.pack/14.jpg">datafiles/packs/default.pack/14.jpg</file> </qresource> </RCC> 27

28 CardPackSet osztály: csomagok betöltése cardpackset cardpackset.cpp : load... cardpackset.cpp void CardPackSet::loadFromPath(const QString &path) mcardpacklist.clear(); QDir packsdir(path); //Create subdirs of packs directory without. and.. QStringList subdirs; foreach (QString subdir, packsdir.entrylist(qdir::dirs QDir::NoDotAndDotDot)) subdirs += subdir; for (int i = 0; i < subdirs.size(); ++i) QString subdirpath = path + "/" + subdirs.at(i); QDir subdir(subdirpath); CardPack *pack = new CardPack(); if(pack >loadcardpack(subdirpath)) mcardpacklist.append(pack); 28

29 Kártya nézegető (cardviewer) alkalmazás cardviewer cardviewer 29

30 A kártya nézegető alkalmazás osztálydiagramja cardviewer osztálydiagram cardviewer - osztálydiagram 30

31 A kártya nézegető alkalmazás osztálydiagramja cardviewer osztálydiagram cardviewer - osztálydiagram Qt Designer programozás 31

32 Az alkalmazás felületterve cardviewer mainform.ui mainform.ui packcombobox cardbuttongroup 32

33 CardViewer: mainform.h mainform.h #include <QWidget> cardviewer mainform.h #include "ui_mainform.h" class CardPackSet; class MainForm : public QWidget, private Ui_MainForm Q_OBJECT public: MainForm(QWidget *parent = 0); public slots: void on_packcombobox_currentindexchanged(int index); void slotcardclicked(int i); private: CardPackSet* mcardpackset; ; 33

34 CardViewer: mainform.cpp cardviewer mainform.cpp mainform.cpp #include <QMessageBox> #include <math.h> #include "cardpackset.h" #include "cardbutton.h" #include "mainform.h" MainForm::MainForm(QWidget *parent) : QWidget(parent) setupui(this); mcardpackset = new CardPackSet(); mcardpackset >loadfromappdirectory(); packcombobox >additems(mcardpackset >getpacknames()); packcombobox >setcurrentindex(0); connect(cardbuttongroup, SIGNAL(cardButtonClicked(int)), this, SLOT(slotCardClicked(int))); 34

35 CardViewer: mainform.cpp cardviewer mainform.cpp mainform.cpp void MainForm::on_packComboBox_currentIndexChanged(int index) int side = (int) sqrt(mcardpackset >getpacklist().at(index) >getfaces().count()) + 1; //<math.h> cardbuttongroup >newcardbuttongroup(side,side); for (int i= 0; i< mcardpackset >getpacklist().at(index) >getfaces().count(); i++) cardbuttongroup >updatecardbuttonpixmap(i, QPixmap(mCardPackSet >getpacklist().at(index) >getfacepixmap(i))); QString text = mcardpackset >getpacklist().at(index) >getfaces().at(i) >gettext(); cardbuttongroup >getcardbutton(i) >settooltip(text.left(text.indexof("."))); void MainForm::slotCardClicked(int i) QMessageBox::information(this, "Card Group Test Information", "Card Click \ncardid = " + QString::number(i) ); 35

36 Fordítás, futtatás main.cpp #include <QApplication> #include "mainform.h" int main (int argc, char *argv[]) QApplication app(argc,argv); MainForm *mainform = new MainForm; mainform >setwindowtitle("card Viewer Application"); mainform >show(); return app.exec(); qmake project qmake cardviewer.pro make./cardviewer 36

37 A bemutatott osztályok, az azokat tesztelő projektek, valamint a kártya nézegető alkalmazás programjai megtalálhatók a people.inf.elte.nacsa/qt4/eaf3/mod02/projects/ címen. 37

Alkalmazások fejlesztése III. Qt 4 /C++ alapú grafikus alkalmazás - Memóriajáték 1/2

Alkalmazások fejlesztése III. Qt 4 /C++ alapú grafikus alkalmazás - Memóriajáték 1/2 Tartalomjegyzék Memóriajáték...2 A memóriajáték osztálydiagramja...2 A projektben használt segéd függvények (Utils)...3 utils.h...3 utils.cpp...3 CardButton osztály...4 cardbutton.h...4 cardbutton.cpp...5

Részletesebben

Elemi alkalmazások fejlesztése III.

Elemi alkalmazások fejlesztése III. Elemi alkalmazások fejlesztése III. Bevezetés Készítette: Szabóné Nacsa Rozália nacsa@inf.elte.hu people.inf.elte.hu/nacsa/qt4/eaf3/ Qt 4 2007 EAF3 Qt4 Bevezetés (mod01) 1 A Qt assistant nyitó ablaka www.trolltech.com

Részletesebben

Elemi alkalmazások fejlesztése III.

Elemi alkalmazások fejlesztése III. Elemi alkalmazások fejlesztése III. Grafikus felületű alkamazások készítése Bevezetés I. Készítette: Szabóné Nacsa Rozália nacsa@inf.elte.hu people.inf.elte.hu/nacsa/qt4/eaf3/ Qt 4 2009 1 www.trolltech.com

Részletesebben

Elemi alkalmazások fejlesztése III.

Elemi alkalmazások fejlesztése III. Elemi alkalmazások fejlesztése III. Bevezetés Készítette: Szabóné Nacsa Rozália nacsa@inf.elte.hu people.inf.elte.hu/nacsa/qt4/eaf3/ Qt 4 2007 1 A Qt assistant nyitó ablaka www.trolltech.com 2 Alkalmazás

Részletesebben

Elemi alkalmazások fejlesztése III.

Elemi alkalmazások fejlesztése III. Elemi alkalmazások fejlesztése III. MDI alkalmazás II. (Számla) Készítette: Szabóné Nacsa Rozália nacsa@inf.elte.hu people.inf.elte.hu/nacsa/qt4/eaf3/ Qt 4 2007 1 Számla felépítése fejléc tábla 2 Az alkalmazás

Részletesebben

Tervezőeszközök, fejlesztőeszközök használata Qt alapú alkalmazásoknál. Saját vezérlő használata tervezőben (worldclocks)

Tervezőeszközök, fejlesztőeszközök használata Qt alapú alkalmazásoknál. Saját vezérlő használata tervezőben (worldclocks) Tartalomjegyzék Tervezőeszközök, fejlesztőeszközök használata Qt alapú alkalmazásoknál...1 Saját vezérlő használata tervezőben (worldclocks)...1 DigitalClock osztály (módosítás)...2 MyForm osztály...3

Részletesebben

Elemi alkalmazások fejlesztése IV. Adatbázis-kezelő GUI alkalmazás készítése 3. Összetett tábla karbantartása

Elemi alkalmazások fejlesztése IV. Adatbázis-kezelő GUI alkalmazás készítése 3. Összetett tábla karbantartása Elemi alkalmazások fejlesztése IV. Adatbázis-kezelő GUI alkalmazás készítése 3. Összetett tábla karbantartása Készítette: Szabóné Nacsa Rozália nacsa@inf.elte.hu people.inf.elte.hu/nacsa/eaf4/ Qt 4 2007

Részletesebben

Alkalmazások fejlesztése III. Qt 4 /C++ alapú MDI alkalmazás: Számlakészítő program 2/3

Alkalmazások fejlesztése III. Qt 4 /C++ alapú MDI alkalmazás: Számlakészítő program 2/3 Tartalomjegyzék Feladat...2 Az alkalmazás osztálydiagramja...2 Modell-nézet (model-view) tervezési minta (bevezetés)...3 Számlatételek kezelése, karbantartása ( táblázat kezelés )...4 A táblázatkezelő

Részletesebben

Egységes és objektumközpontú adatbázis-kezelés (2. rész)

Egységes és objektumközpontú adatbázis-kezelés (2. rész) Egységes és objektumközpontú adatbázis-kezelés (2. rész) A folytatásában a bemutatjuk, hogyan kezelhetünk Qt rendszer alatt SQL sormutatót, és készíthetünk grafikus felületet programoknak a Qt Designer

Részletesebben

MySql elindítása. Elemi alkalmazások fejlesztése IV. Feladat. Az alkalmazás adatbázisa

MySql elindítása. Elemi alkalmazások fejlesztése IV. Feladat. Az alkalmazás adatbázisa Elemi alkalmazások fejlesztése IV. C++/Qt adatbáziskezel ő alkalmazás készítése Kdevelop környezetben I. MySql elindítása [nacsa@localhost nacsa]$ su Password:jelszó [root@localhost nacsa]# /usr/bin/safe_mysqld

Részletesebben

Elemi alkalmazások fejlesztése IV.

Elemi alkalmazások fejlesztése IV. Elemi alkalmazások fejlesztése IV. C++/Qt adatbáziskezelő alkalmazás készítése Kdevelop környezetben I. Készítette: Szabóné Nacsa Rozália 1 MySql elindítása [nacsa@localhost nacsa]$ su Password:jelszó

Részletesebben

Elemi alkalmazások fejlesztése III. A Qt assistant elindítása. Ajánlott ir odalom. A Qt assistant nyitó ablaka

Elemi alkalmazások fejlesztése III. A Qt assistant elindítása. Ajánlott ir odalom. A Qt assistant nyitó ablaka Elemi alkalmazások fejlesztése III Ajánlott ir odalom Egy ablakos alkalmazás készítése I. C++ / Qt felhasználásával Qt dokumentáció online: www.trolltech.com lokális változat: Kdevelop help vagy /usr/share/doc...

Részletesebben

Qt rajzolás munkafüzet. Elemi Alkalmazások fejlesztése 3.

Qt rajzolás munkafüzet. Elemi Alkalmazások fejlesztése 3. Qt rajzolás munkafüzet Elemi Alkalmazások fejlesztése 3. 1. fejezet Impresszum Qt rajzolás munkafüzet (C)2006 Zimler Attila Tamás Visszajelzéseket szivesen fogadok. A munkafüzet

Részletesebben

Elemi alkalmazások fejlesztése III

Elemi alkalmazások fejlesztése III Elemi alkalmazások fejlesztése III Egy ablakos alkalmazás készítése I. C++ / Qt felhasználásával készítette: Szabóné Nacsa Rozália 1 Ajánlott irodalom Qt dokumentáció online: www.trolltech.com lokális

Részletesebben

Programozás II gyakorlat. 4. Öröklődés

Programozás II gyakorlat. 4. Öröklődés Programozás II gyakorlat 4. Öröklődés Feladat Egy játékfejlesztő cég olyan programot fejleszt, amely nyilvántartja az alkalmazottai adatait. Tároljuk minden személy: Nevét (legfeljebb 50 karakter) Születési

Részletesebben

Eseménykezelés. Aszinkron kommunikáció

Eseménykezelés. Aszinkron kommunikáció Eseménykezelés Aszinkron kommunikáció Feladat Készítsünk egy stoppert, amely másodpercenként jelzi a múló időt. Ez a folyamat egy adott jelzés hatására induljon el; ugyanezen jelzés ismétléseinek hatására

Részletesebben

Alkalmazások fejlesztése III. Qt 4 /C++ alapú MDI alkalmazás: Számlakészítő program 1/3

Alkalmazások fejlesztése III. Qt 4 /C++ alapú MDI alkalmazás: Számlakészítő program 1/3 Tartalomjegyzék Feladat...2 A számla elemei...2 A dokumentumot tároló fájl felépítése...3 A számlakészítő program osztálydiagramja...4 Field osztály...4 field.h...4 field.cpp...5 Fields osztály...6 fields.h...6

Részletesebben

Alkalmazások fejlesztése III. Qt 4 /C++ alapú grafikus alkalmazás Bevezetés I.

Alkalmazások fejlesztése III. Qt 4 /C++ alapú grafikus alkalmazás Bevezetés I. Tartalomjegyzék Alkalmazás készítés Qt osztályokkal...2 A qmake eszköz...2 Hello Qt (hello)...2 Objektumok közötti kommunikáció (quit)...3 Fordítás/futtatás...4 Grafikus felület létrehozása, vezérlők szinkronizálása

Részletesebben

Elemi alkalmazások fejlesztése III.

Elemi alkalmazások fejlesztése III. Elemi alkalmazások fejlesztése III. Egy ablakos alkalmazás készítése II. C++ / Qt / KDevelop felhasználásával készítette: Szabóné Nacsa Rozália lektorálta: Párniczky Krisztina 1 Fájlkezelés Olvasás 2 A

Részletesebben

Feladat. Tervezés és implementálás

Feladat. Tervezés és implementálás Tartalomjegyzék FELADAT...2 Elvárások...2 TERVEZÉS ÉS IMPLEMENTÁLÁS...2 Megjelenési terv...2 Grafikus felület készítése...3 Modulszerkezet...3 Osztály diagram...3 MillMain form...4 Vezérlő k elrendezése...4

Részletesebben

Elemi alkalmazások fejlesztése III

Elemi alkalmazások fejlesztése III Elemi alkalmazások fejlesztése III Qt SDI alkalmazás készítése I Kdevelop környezetben Készítette: Szabóné Nacsa Rozália Steingart Ferenc 1 Feladat Készítsünk egy számlakezel ő ablakos alkalmazást! Számlafejléc

Részletesebben

bool _freehand = false; QPoint _lastpoint; // ebben a pontban volt az utolsó rajzolásnál az egérmutató

bool _freehand = false; QPoint _lastpoint; // ebben a pontban volt az utolsó rajzolásnál az egérmutató canvas.h #pragma once #include #include #include #include #include #include #include // terület kiválasztáshoz struct RajzParameterek

Részletesebben

QLabel *label = new Qlabel("Hello Qt!",0);

QLabel *label = new Qlabel(Hello Qt!,0); #include #include int main(int argc,char **argv) QApplication app(argc,argv); QLabel *label = new Qlabel("Hello Qt!",0); app.setmainwidget(label); label->show(); return app.exec();

Részletesebben

Összetett alkalmazások

Összetett alkalmazások Összetett alkalmazások Ablakok A grafikus felületű alkalmazásokban a vezérlőket ablakokra helyezzük ablaknak minősül bármely vezérlő, amely egy QWidget, vagy bármely leszármazottjának példánya, és nincs

Részletesebben

Hálózati alkalmazások

Hálózati alkalmazások Hálózati alkalmazások Hálózati alkalmazások QT osztályai A Qt támogatja az FTP és HTTP alapú hálózati alkalmazások készítését. A QFtp osztály segítségével lehet fájlokat megadott hálózati helyekre fel-

Részletesebben

Budapest, 2007. március. ELTE Informatikai Kar

Budapest, 2007. március. ELTE Informatikai Kar Tartalomjegyzék Alkalmazás készítés Qt osztályokkal...2 A qmake eszköz...2 Hello Qt (hello)...2 A projekt elkészítésének lépései...3 Objektumok közötti kommunikáció (quit)...3 A projekt elkészítésének

Részletesebben

Dinamikus felületű alkalmazások. Stílusok, időzítő, képek

Dinamikus felületű alkalmazások. Stílusok, időzítő, képek Dinamikus felületű alkalmazások Stílusok, időzítő, képek Felhasználói felület fajtái Az alkalmazásaink grafikus felülete alapvetően kétféle lehet: statikus: az alkalmazás felületén lévő vezérlőket induláskor

Részletesebben

Grafikus Qt programok írása segédeszközök nélkül

Grafikus Qt programok írása segédeszközök nélkül Grafikus Qt programok írása segédeszközök nélkül Grafikus felületű Qt programokat ahogy láttuk, készíthetünk egy egyszerű szövegszerkesztővel is, bár a Qt jó támogatást ad a grafikus felület grafikus tervezésére

Részletesebben

WEBFEJLESZTÉS 2. ADATBÁZIS-KEZELÉS, OSZTÁLYOK

WEBFEJLESZTÉS 2. ADATBÁZIS-KEZELÉS, OSZTÁLYOK WEBFEJLESZTÉS 2. ADATBÁZIS-KEZELÉS, OSZTÁLYOK Horváth Győző Egyetemi adjunktus 1117 Budapest, Pázmány Péter sétány 1/C, 2.420 Tel: (1) 372-2500/1816 2 Ismétlés Ismétlés 3 Fájl/Adatbázis 3 4 Szerver 2 CGI

Részletesebben

Eseményvezérelt alkalmazások fejlesztése I 7. előadás. Összetett grafikus felületű alkalmazások. Giachetta Roberto

Eseményvezérelt alkalmazások fejlesztése I 7. előadás. Összetett grafikus felületű alkalmazások. Giachetta Roberto Eötvös Loránd Tudományegyetem Informatikai Kar Eseményvezérelt alkalmazások fejlesztése I 7. előadás Összetett grafikus felületű alkalmazások Giachetta Roberto http://people.inf.elte.hu/groberto Ablakok

Részletesebben

Alkalmazások fejlesztése III. Qt 4 /C++ alapú MDI alkalmazás: Számlakészítő program 3/3

Alkalmazások fejlesztése III. Qt 4 /C++ alapú MDI alkalmazás: Számlakészítő program 3/3 Tartalomjegyzék Feladat...2 Az alkalmazás osztálydiagramja...2 Űrlap elkészítése...3 Grafikus felület kialakítása...3 A felületen elhelyezett elemek...3 invoiceform.h...3 invoiceform.cpp...5 Főablak elkészítése...11

Részletesebben

3D-s számítógépes geometria és alakzatrekonstrukció

3D-s számítógépes geometria és alakzatrekonstrukció 3D-s számítógépes geometria és alakzatrekonstrukció 3a. Tesztkörnyezet I http://cg.iit.bme.hu/portal/node/312 https://portal.vik.bme.hu/kepzes/targyak/viiima01 Dr. Várady Tamás, Salvi Péter BME, Villamosmérnöki

Részletesebben

Elemi alkalmazások fejlesztése III

Elemi alkalmazások fejlesztése III Elemi alkalmazások fejlesztése III Egyablakos alkalmazás készítése I. Qt/X11 felhasználásával Kdevelop környezetben készítette: Steingart Ferenc Szabóné Nacsa Rozália Ajánlott irodalom Qt dokumentáció

Részletesebben

Elemi alkalmazások fejlesztése III

Elemi alkalmazások fejlesztése III Elemi alkalmazások fejlesztése III C++/ Qt alapú SDI alkalmazás készítése I. Készítette: Szabóné Nacsa Rozália Steingart Ferenc 1 Feladat Készítsünk egy számlakezel ő ablakos alkalmazást! Számlafejléc

Részletesebben

Eseménykezelés. Aszinkron kommunikáció

Eseménykezelés. Aszinkron kommunikáció Eseménykezelés Aszinkron kommunikáció Feladat Készítsünk egy stoppert, amely másodpercenként jelzi a múló időt. Ez a folyamat egy adott jelzés hatására induljon el; ugyanezen jelzés ismétléseinek hatására

Részletesebben

Eseményvezérelt alkalmazások fejlesztése I 6. előadás. Összetett alkalmazások megvalósítása. Giachetta Roberto

Eseményvezérelt alkalmazások fejlesztése I 6. előadás. Összetett alkalmazások megvalósítása. Giachetta Roberto Eötvös Loránd Tudományegyetem Informatikai Kar Eseményvezérelt alkalmazások fejlesztése I 6. előadás Összetett alkalmazások megvalósítása Giachetta Roberto A jegyzet az ELTE Informatikai Karának 2014.

Részletesebben

Programozás C++ -ban 2007/4

Programozás C++ -ban 2007/4 Programozás C++ -ban 2007/4 1. Az adatokhoz való hozzáférés ellenőrzése Egy C programban a struktúrák minden része mindig elérhető. Ugyanakkor ez nem a legkedvezőbb helyzet. Több szempontból is hasznos

Részletesebben

infix kifejezés a+b ab+ +ab postfix kifejezés prefix kifejezés a+b ab+ +ab a+b ab+ +ab Készítette: Szabóné Nacsa Rozália

infix kifejezés a+b ab+ +ab postfix kifejezés prefix kifejezés a+b ab+ +ab a+b ab+ +ab Készítette: Szabóné Nacsa Rozália infix kifejezés a+b ab+ +ab Készítette: Szabóné Nacsa Rozália nacsa@inf.elte.hu postfix kifejezés prefix kifejezés a+b ab+ +ab a+b ab+ +ab 4 Lengyelforma J. Lukasewitz lengyel matematikus használta el

Részletesebben

osztályok kapcsolata Származtatatás C++ Izsó Tamás 2014. március 19. Izsó Tamás Származtatatás/ 1

osztályok kapcsolata Származtatatás C++ Izsó Tamás 2014. március 19. Izsó Tamás Származtatatás/ 1 Származtatatás C++ Izsó Tamás 2014. március 19. Izsó Tamás Származtatatás/ 1 Dinamikus tagváltozó az osztályban class RVektor { i n t n ; R a c i o n a l i s p ; p u b l i c : RVektor ( i n t n=10 ) :

Részletesebben

C#, OOP. Osztályok tervezése C#-ban

C#, 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észletesebben

Eseményvezérelt alkalmazások fejlesztése I 3. előadás. Dinamikus felületű alkalmazások. Giachetta Roberto

Eseményvezérelt alkalmazások fejlesztése I 3. előadás. Dinamikus felületű alkalmazások. Giachetta Roberto Eötvös Loránd Tudományegyetem Informatikai Kar Eseményvezérelt alkalmazások fejlesztése I 3. előadás Dinamikus felületű alkalmazások Giachetta Roberto http://people.inf.elte.hu/groberto A felhasználói

Részletesebben

Programozás II. ATM példa Dr. Iványi Péter

Programozás II. ATM példa Dr. Iványi Péter Programozás II. ATM példa Dr. Iványi Péter 1 ATM gép ATM=Automated Teller Machine Pénzkiadó automata Kezelő szoftvert szeretnénk írni Objektum-orientált módon 2 Követelmények Egyszerre csak egy embert

Részletesebben

Programozás II gyakorlat. 8. Operátor túlterhelés

Programozás II gyakorlat. 8. Operátor túlterhelés Programozás II gyakorlat 8. Operátor túlterhelés Kezdő feladat Írjunk egy Vector osztályt, amely n db double értéket tárol. A konstruktor kapja meg az elemek számát. Írj egy set(int idx, double v) függvényt,

Részletesebben

Körkörös listák. fej. utolsó. utolsó. fej

Körkörös listák. fej. utolsó. utolsó. fej Körkörös listák fej utolsó fej utolsó Példa. Kiszámolós játék. Körben áll n gyermek. k-asával kiszámoljuk őket. Minden k-adik kilép a körből. Az nyer, aki utolsónak marad. #include using namespace

Részletesebben

Eseményvezérelt alkalmazások

Eseményvezérelt alkalmazások Szabóné Nacsa Rozália nacsa@inf.elte.hu Eseményvezérelt alkalmazások A Windows alkalmazások eseményvezérelt alkalmazások Esemény: egér kattintás billenty leütés stb. Üzenetkezelés Operációs rendszer kódja

Részletesebben

Programozási alapismeretek :: beadandó feladat. Felhasználói dokumentáció. Molnár Tamás MOTIABT.ELTE motiabt@inf.elte.

Programozási alapismeretek :: beadandó feladat. Felhasználói dokumentáció. Molnár Tamás MOTIABT.ELTE motiabt@inf.elte. Programozási alapismeretek :: beadandó feladat Készítő adatai Név: Molnár Tamás EHA: MOTIABT.ELTE E-mail cím: motiabt@inf.elte.hu Gyakorlatvezető: Horváth László Feladat sorszáma: 23. Felhasználói dokumentáció

Részletesebben

Széchenyi István Egyetem www.sze.hu/~herno

Szé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észletesebben

Adatbázis-kezelés ODBC driverrel

Adatbázis-kezelés ODBC driverrel ADATBÁZIS-KEZELÉS ODBC DRIVERREL... 1 ODBC: OPEN DATABASE CONNECTIVITY (NYÍLT ADATBÁZIS KAPCSOLÁS)... 1 AZ ODBC FELÉPÍTÉSE... 2 ADATBÁZIS REGISZTRÁCIÓ... 2 PROJEKT LÉTREHOZÁSA... 3 A GENERÁLT PROJEKT FELÉPÍTÉSE...

Részletesebben

Elemi alkalmazások fejlesztése IV. Adatbáziskezel alkalmazás készítése QtDesignerben. Készítette: Szabóné Nacsa Rozália

Elemi alkalmazások fejlesztése IV. Adatbáziskezel alkalmazás készítése QtDesignerben. Készítette: Szabóné Nacsa Rozália Elemi alkalmazások fejlesztése IV. Adatbáziskezel ő alkalmazás készítése QtDesignerben Készítette: Szabóné Nacsa Rozália 1 Származtatásos modulszerkezet Q t form.ui U formbase.h Örökl ő dés form.h formbase.cpp

Részletesebben

Programozás C++ -ban

Programozás C++ -ban Programozás C++ -ban 4. Bevezetés az osztályokba 4.1 Az adatokhoz való hozzáférés ellenőrzése Egy C programban a struktúrák minden része mindig elérhető. Ugyanakkor ez nem a legkedvezőbb helyzet. Több

Részletesebben

4. Öröklődés. Programozás II

4. Ö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észletesebben

117. AA Megoldó Alfréd AA 117.

117. 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észletesebben

500. CC Megoldó Alfréd CC 500.

500. CC Megoldó Alfréd CC 500. Programozás alapjai 2. PótZH 2010.05.20. gyakorlat: G1/IB.146 Hiány:3 ZH:7,71 MEGOLD SCH/500. Hftest: 0 ZHp: Minden beadandó megoldását a feladatlapra, a feladat után írja! A megoldások során feltételezheti,

Részletesebben

Access adatbázis elérése OLE DB-n keresztül

Access 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észletesebben

Objektum elvű alkalmazások fejlesztése Kifejezés lengyel formára hozása és kiértékelése

Objektum elvű alkalmazások fejlesztése Kifejezés lengyel formára hozása és kiértékelése Objektum elvű alkalmazások fejlesztése Kifejezés lengyel formára hozása és kiértékelése Készítette: Gregorics Tibor Szabóné Nacsa Rozália Alakítsunk át egy infix formájú aritmetikai kifejezést postfix

Részletesebben

3. Osztályok II. Programozás II

3. Osztályok II. Programozás II 3. Osztályok II. Programozás II Bevezető feladat Írj egy Nevsor osztályt, amely legfeljebb adott mennyiségű nevet képes eltárolni. A maximálisan tárolható nevek számát a konstruktorban adjuk meg. Az osztályt

Részletesebben

C# 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. 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észletesebben

OAF Gregorics Tibor: Minta dokumentáció a 3. házi feladathoz 1.

OAF 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észletesebben

PHP 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. 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észletesebben

500. DD Megoldó Alfréd DD 500.

500. DD Megoldó Alfréd DD 500. Programozás alapjai 2. (inf.) zárthelyi 2009.05.21. gyakorlat: / Érdemjegy: QBX734 () IB319/32. Hftest: Minden beadandó megoldását a feladatlapra, a feladat után írja! A megoldások során feltételezheti,

Részletesebben

BME MOGI Gépészeti informatika 7.

BME MOGI Gépészeti informatika 7. BME MOGI Gépészeti informatika 7. 1. feladat Írjon Windows Forms alkalmazást egy kör és egy pont kölcsönös helyzetének vizsgálatára! A feladat megoldásához hozza létre a következő osztályokat! Pont osztály:

Részletesebben

A feladat lényege egy felhasználói típusnak a zsák típusnak a megvalósítása.

A feladat lényege egy felhasználói típusnak a zsák típusnak a megvalósítása. Feladat Készítsen egy egész számokat tartalmazó zsák típust! A zsákot dinamikusan lefoglalt tömb segítségével ábrázolja! Implementálja a szokásos műveleteket (elem betevése, kivétele, üres-e a halmaz,

Részletesebben

Statikus adattagok. Statikus adattag inicializálása. Speciális adattagok és tagfüggvények. Általános Informatikai Tanszék

Statikus adattagok. Statikus adattag inicializálása. Speciális adattagok és tagfüggvények. Általános Informatikai Tanszék Speciális adattagok és tagfüek Miskolci Egyetem Általános Informatikai Tanszék CPP7 / 1 Statikus adattagok Bármely adattag lehet static tárolási osztályú A statikus adattag az osztály valamennyi objektuma

Részletesebben

3D-s számítógépes geometria és alakzatrekonstrukció

3D-s számítógépes geometria és alakzatrekonstrukció 3D-s számítógépes geometria és alakzatrekonstrukció Tesztkörnyezet I http://cg.iit.bme.hu/portal/node/312 https://portal.vik.bme.hu/kepzes/targyak/viiima01 Dr. Várady Tamás, Dr. Salvi Péter BME, Villamosmérnöki

Részletesebben

Maximum kiválasztás tömbben

Maximum kiválasztás tömbben ELEMI ALKALMAZÁSOK FEJLESZTÉSE I. Maximum kiválasztás tömbben Készítette: Szabóné Nacsa Rozália Gregorics Tibor tömb létrehozási módozatok maximum kiválasztás kódolása for ciklus adatellenőrzés do-while

Részletesebben

Objektumorientált programozás C# nyelven III.

Objektumorientá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észletesebben

A jobboldalon a pnlright egy Stacked Widget Állítsuk be az első lapot és nevezzük el pnldraw-ra:

A jobboldalon a pnlright egy Stacked Widget Állítsuk be az első lapot és nevezzük el pnldraw-ra: A Rajzolás lap A rajzolás lap elemi rajzolási lehetőségek bemutatására szolgál. A rajzolás a jobboldali pnlright widget egyik lapjára rakott widgetre történik. A pnlright egy több lapot tartalmazó widget

Részletesebben

Adattípusok. Max. 2GByte

Adattípusok. Max. 2GByte Adattípusok Típus Méret Megjegyzés Konstans BIT 1 bit TRUE/FALSE SMALLINT 2 byte -123 INTEGER 4 byte -123 COUNTER 4 byte Automatikus 123 REAL 4 byte -12.34E-2 FLOAT 8 byte -12.34E-2 CURRENCY / MONEY 8

Részletesebben

A lista eleme. mutató rész. adat rész. Listaelem létrehozása. Node Deklarálás. Létrehozás. Az elemet nekünk kell bef zni a listába

A lista eleme. mutató rész. adat rész. Listaelem létrehozása. Node Deklarálás. Létrehozás. Az elemet nekünk kell bef zni a listába A lista eleme 0 adat rész mutató rész Listaelem létrehozása p: Node 0 0 3 0 Az elemet nekünk kell bef zni a listába Deklarálás struct Node { int int value; Node* next; next; adattagok Létrehozás Node*

Részletesebben

Adattípusok. Max. 2GByte

Adattípusok. Max. 2GByte Adattípusok Típus Méret Megjegyzés Konstans BIT 1 bit TRUE/FALSE TINIINT 1 byte 12 SMALLINT 2 byte -123 INTEGER 4 byte -123 COUNTER 4 byte Automatikus 123 REAL 4 byte -12.34E-2 FLOAT 8 byte -12.34E-2 CURRENCY

Részletesebben

Adatbá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 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észletesebben

OOP: Java 8.Gy: Abstract osztályok, interfészek

OOP: Java 8.Gy: Abstract osztályok, interfészek OOP: Java 8.Gy: Abstract osztályok, interfészek 26/1 B ITv: MAN 2019.04.03 Abszrakt metódus és absztrakt osztály. Gyakran előfordul a tervezés során, hogy egy osztály szintjén tudjuk, hogy valamilyen metódus

Részletesebben

Osztályok. construct () destruct() $b=new Book(); $b=null; unset ($b); book.php: <?php class Book { private $isbn; public $title;

Osztályok. construct () destruct() $b=new Book(); $b=null; unset ($b); book.php: <?php class Book { private $isbn; public $title; PHP5 objektumok 1 Osztályok class, new book.php: construct () destruct() $b=new Book(); törlés: $b=null; vagy unset ($b); -elnevezési konvenciók private $isbn; public $title; function

Részletesebben

abkezel.java import java.awt.*; import java.awt.event.*; import javax.swing.*; import java.sql.*; public class abkezel extends JFrame {

abkezel.java import java.awt.*; import java.awt.event.*; import javax.swing.*; import java.sql.*; public class abkezel extends JFrame { Adatkezelés JDBC-vel 1 abkezel.java import java.awt.*; import java.awt.event.*; import javax.swing.*; import java.sql.*; public class abkezel extends JFrame { private JTabbedPane jtp; private JPanel dp,

Részletesebben

.Net adatstruktúrák. Készítette: Major Péter

.Net adatstruktúrák. Készítette: Major Péter .Net adatstruktúrák Készítette: Major Péter Adatstruktúrák általában A.Net-ben számos nyelvvel ellentétben nem kell bajlódnunk a változó hosszúságú tömbök, listák, sorok stb. implementálásával, mert ezek

Részletesebben

Java programozási nyelv 5. rész Osztályok III.

Java programozási nyelv 5. rész Osztályok III. Java programozási nyelv 5. rész Osztályok III. 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/20 Tartalomjegyzék

Részletesebben

ANDROID ALKALMAZÁSFEJLESZTÉS

ANDROID ALKALMAZÁSFEJLESZTÉS ANDROID ALKALMAZÁSFEJLESZTÉS Adattárolás SharedPreference Belső - külső tároló PreferenceActivity Felhő alapú tárolás SQLite sicz.mj[tekercs]gmail.com Sicz-Mesziár János 2013. július 3. Shared Preference

Részletesebben

Objektumorientált programozás C# nyelven

Objektumorientá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észletesebben

Programozási technológia II 3. előadás. Objektumorientált tervezés. 2016 Giachetta Roberto groberto@inf.elte.hu http://people.inf.elte.

Programozási technológia II 3. előadás. Objektumorientált tervezés. 2016 Giachetta Roberto groberto@inf.elte.hu http://people.inf.elte. Eötvös Loránd Tudományegyetem Informatikai Kar Programozási technológia II 3. előadás Objektumorientált tervezés 2016 Giachetta Roberto groberto@inf.elte.hu http://people.inf.elte.hu/groberto Objektumok,

Részletesebben

Adatok speciális megjelenítése

Adatok speciális megjelenítése Adatok speciális megjelenítése Speciális adatmegjelenítés Az adatok csoportos megjelenítéshez a nézet számos osztályt (QListView, QTableView, QTreeView) biztosít, amelyekből származtatással továbbiakat

Részletesebben

Mobil informatika gyakorlat. 2. óra: NFC a gyakorlatban

Mobil informatika gyakorlat. 2. óra: NFC a gyakorlatban Mobil informatika gyakorlat 2. óra: NFC a gyakorlatban Mi az NFC? Near Field Communication Rövid hatótávolságú rádiófrekvenciás technológia (tipikusan 5-10 cm) 13,56 MHz frekvencia Az ISO/IEC 14443 szabvány

Részletesebben

Események C#-ban Krizsán Zoltán iit

Események C#-ban Krizsán Zoltán iit Krizsán Zoltán Mi az? Aszinkron törtt rténésről értesítés s egy vagy több t objektum számára. Delegátumok segíts tségével valósítja meg a C#. 2 Lehetőségek 1. Egy objektum bejelentheti érdeklődését egy

Részletesebben

Programozási nyelvek Java

Programozási nyelvek Java Programozási nyelvek Java Kozsik Tamás előadása alapján Készítette: Nagy Krisztián 13. előadás Throwable Error Exception RuntimeException IOException Saját (általában) Nem ellenörzött kivételek (Unchecked

Részletesebben

Programozás I. 5. Előadás: Függvények

Programozás I. 5. Előadás: Függvények Programozás I 5. Előadás: Függvények Függvény Egy alprogram Egy C program általában több kisméretű, könnyen értelmezhető függvényből áll Egy függvény megtalálható minden C programban: ez a main függvény

Részletesebben

Grafikus Felhasználói Felületű (GUI) program készítése a QT Creatorral, illetve a Microsoft Visual Studio-val

Grafikus Felhasználói Felületű (GUI) program készítése a QT Creatorral, illetve a Microsoft Visual Studio-val Grafikus Felhasználói Felületű (GUI) program készítése a QT Creatorral, illetve a Microsoft Visual Studio-val A feladat A feladat egy kis számológép elkészítése. A számológép a következőképpen néz majd

Részletesebben

C++ Standard Template Library (STL)

C++ Standard Template Library (STL) Programozási Nyelvek és Fordítóprogramok Tanszék Programozási Nyelvek I. Témák 1 STL alapok 2 STL fogalmak 3 Konténerek 4 Iterátorok 5 Funktorok C++ STL Ne fedezzük fel újra spanyolviaszt! Sok adatszerkezet/algoritmus

Részletesebben

Adatbázisok webalkalmazásokban

Adatbázisok webalkalmazásokban Sapientia - EMTE, Pannon Forrás,,Egységes erdélyi felnőttképzés a Kárpát-medencei hálózatban 2010 A JDBC API A Data Access Object tervezési minta Adatforrás - DataSource JDBC architektúra A JDBC API java.sql

Részletesebben

C# osztályok. Krizsán Zoltán

C# 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észletesebben

STL. Algoritmus. Iterátor. Tároló. Elsődleges komponensek: Tárolók Algoritmusok Bejárók

STL. 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észletesebben

Általános szoftver architektúrák

Általános szoftver architektúrák Általános szoftver architektúrák Szoftverek architektúrája Szoftver architektúrának nevezzük a szoftver fejlesztése során meghozott elsődleges tervezési döntések halmazát. Az architektúra létrehozása során

Részletesebben

Kalapácsvetés 2016 szöveges

Kalapá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észletesebben

Java Programozás 9. Gy: Java alapok. Adatkezelő 5.rész

Java Programozás 9. Gy: Java alapok. Adatkezelő 5.rész Java Programozás 9. Gy: Java alapok Adatkezelő 5.rész 15/1 B ITv: MAN 2018.04.22 A Keresés funkció Programlogika: 1. A keresés az etm táblamodellben fog keresni, és a találat rekordokat átmásolja egy másik

Részletesebben

Vizuális és eseményvezérelt programozás , II. félév BMF NIK

Vizuális és eseményvezérelt programozás , II. félév BMF NIK Vizuális és eseményvezérelt programozás 2006 2007, II. félév BMF NIK Eseménykezelés A képviselő( delegate ) Képviselők C# nyelvi megvalósítása Metódushívás képviselőn keresztül Az esemény ( event ) Esemény

Részletesebben

Programozás II. 2. Dr. Iványi Péter

Programozás II. 2. Dr. Iványi Péter Programozás II. 2. Dr. Iványi Péter 1 C++ Bjarne Stroustrup, Bell Laboratórium Első implementáció, 1983 Kezdetben csak precompiler volt C++ konstrukciót C-re fordította A kiterjesztés alapján ismerte fel:.cpp.cc.c

Részletesebben

Osztály és objektum fogalma

Osztá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észletesebben

Képfájlok beolvasása és megjelenítése

Képfájlok beolvasása és megjelenítése Programozás 3 1 2016 Képfájlok beolvasása és megjelenítése Előzmények Eddig a Rajzolás, Grafika és az Interaktivitás lap programját készítettük el. Ennek a programnak néhány új funkcionalítással ellátott

Részletesebben

Dinamikus adatszerkezetek. 2D generikus tömb: C++ 2D generikus tömb: C++

Dinamikus adatszerkezetek. 2D generikus tömb: C++ 2D generikus tömb: C++ Dinamikus adatszerkezetek 2D generikus tömb: C++ template class CArray2D protected: TYPE **m_array; long m_row, m_col; public: CArray2D(long row, long col) // konstruktor m_array = new TYPE*[row];

Részletesebben

Dinamikus adatszerkezetek. 2D generikus tömb: C++ 2D generikus tömb: C++ 2D tömb: Java versus C++ 2D tömb: Java.

Dinamikus adatszerkezetek. 2D generikus tömb: C++ 2D generikus tömb: C++ 2D tömb: Java versus C++ 2D tömb: Java. 2D generikus tömb: C++ Dinamikus adatszerkezetek template class CArray2D protected: TYPE **m_array; long m_row, m_col; public: CArray2D(long row, long col) // konstruktor m_array = new TYPE*[row];

Részletesebben

Modell megvalósítása. Gregorics Tibor: Eseményvezérelt alkalmazások fejlesztése I.

Modell megvalósítása. Gregorics Tibor: Eseményvezérelt alkalmazások fejlesztése I. Modell megvalósítása Mivel modell független a nézettől, és újrahasznosítható, nem tudható előre, milyen módon, milyen körülmények között hívják meg műveleteit. A hívás paramétereit, a modell állapotát

Részletesebben