Stručna Praksa II Informatika - Autobuska stanica

Embed Size (px)

Citation preview

  • 7/28/2019 Struna Praksa II Informatika - Autobuska stanica

    1/16

    1

    Radna mesta

    "Aplikacija za autobusku stanicu"

    Alati za izradu aplikacije

    Alati koji su korieni za izradu ove aplikacije su: NetBeans IDE 7.0 BETA za programiranje i

    izradu formi aplikacije, Micro Olap Database Designer for MySql za kreiranje dijagrma beze

    podataka i generisanje baze podataka, MySql Query za proveravanje SQL upita pre unoenja u

    kod, Adobe Fireworks za izradu grafike u korisnikim formama.

    Opis aplikacije

    "Aplikacija za autobusku stanicu" je namenjena da se koristiti u autobuskim stanicama a uz

    male prepravke moe se koristiti i za eleznike stanice. Aplikacija slui za evidenciju o

    radnicima, radnim mestima, autoprevoznicima, relacijama autoprevoznika, prodaji karata,

    mesenih karata, pravljenje izvetaja o radnicima, prodatim kartama, prodatim mesenim

    karatama, pregled finansiskog izvetaja...

    Struktura baze podataka aplikacije

    Struktura beze se sastoji od osam povezanih tabela i tri odvojene (nepovezane) tabele.

    RadniciKarte

    Autoprevoznci

    i relacije

    Autoprevoznci

    Relacije

    Klijenti

    Mesene karte

    Izvetaj radnici

    Izvetaj

    mesene karte

    Izvetaj

    karte

    0,N 1,1 1,1

    1,N

    1,1

    1,N

    1,1

    1,N

    1 N

    1 1

    1 N

    1,1

    0,N

    1,1

    1,1

    0,N

    1 1

    0,N

  • 7/28/2019 Struna Praksa II Informatika - Autobuska stanica

    2/16

    2

    Struktura baze iz "Mikro olapa" Dijagram

    SQL struktura baze podataka za "Autobusku stanicu"

    CREATE DATABASE IF NOT EXISTS `stanica`; //***Kreirannje eme baze poataka za bezu "Stanica" ako nepostoji ista

    USE `stanica`; //*** Koristi ime "stanica" za kreiranje baze podataka

    SET FOREIGN_KEY_CHECKS=0;

    CREATE TABLE `RadnoMesto` ( //***Kreiranje tabele "Radno mesto"

    `IDRadMesto` int(11) NOT NULL , //***Kreiranje primarnog klua po nazivom "IDRanoMesto"

    `Naziv` varchar(50), //***Kreiranje atributa "Naziv" kao naziv radnog mesta

    PRIMARY KEY(`IDRadMesto`) //***Obeleavanje atributa "IDRanoMesto" kaopromarnog kljua

    )

    ENGINE=INNODB //***Tip kreirane beze za tabelu

    CHARACTER SET latin2 ; //***Ko koji omogudava unos karaktera kao to su ",d,,,..."

    CREATE TABLE `RadniciIzv` ( //***Kreiranje tabele "RaniciIzv" onosno izvetaj za ranike

    `IDRadnik` int(11) NOT NULL, //*** Kreiranje primarnog klua po nazivom "IDRanik"

    `Ime` varchar(20), //***Kreiranje atributa

  • 7/28/2019 Struna Praksa II Informatika - Autobuska stanica

    3/16

    3

    `Prezime` varchar(20), //***Kreiranje atributa

    `RadnoMesto` varchar(50), //***Kreiranje atributa

    `Sef` varchar(50), //***Kreiranje atrib

    uta

    `Plata` int(11), //***Kreiranje atributa

    PRIMARY KEY(`IDRadnik`) //***Obeleavanje atributa "IDRanik" kao promarnog kljua

    )

    ENGINE=INNODB //***Tip kreirane beze za tabelu

    CHARACTER SET latin2 ; //***Ko koji omogudava unos karaktera kao to su ",d,,,..."

    CREATE TABLE `MKIzvestaj` (

    `RedBr` int(11) NOT NULL AUTO_INCREMENT,

    `IDKarte` int(11),

    `ImeK` varchar(50),

    `PrezimeK` varchar(50),

    `ZaMesec` varchar(50),

    `Autoprevoznik` varchar(50),

    `MestoPolaska` varchar(50),

    `MestoDolaska` varchar(50),

    `ImeIzd` varchar(50),

    `PrezimeIzd` varchar(50),

    `DatumIZD` date,

    `Cena` int(11),

    PRIMARY KEY(`RedBr`)

    )

    ENGINE=INNODB

    CHARACTER SET latin2 ;

    CREATE TABLE `karteIzv` (

    `RedBr` int(11) NOT NULL AUTO_INCREMENT,

    `IDKarte` int(11) NOT NULL,

    `Ime` varchar(20),

    `Prezime` varchar(20),

    `Autoprevoznik` varchar(50),

    `MestoPolaska` varchar(80),

    `VremePolaska` varchar(50),

    `MestoDolaska` varchar(50),

    `DatumIZD` date,

    `Cena` int(11),

    PRIMARY KEY(`RedBr`)

    )

    ENGINE=INNODB

    CHARACTER SET latin2 ;

    CREATE TABLE `AutoPrevoznik` (

    `IDAP` int(11) NOT NULL,

    `Naziv` varchar(50),

    `Adresa` varchar(50),

    `Mesto` varchar(50),

    `Tel` varchar(15),

  • 7/28/2019 Struna Praksa II Informatika - Autobuska stanica

    4/16

    4

    `Imejl` varchar(50),

    PRIMARY KEY(`IDAP`)

    )

    ENGINE=INNODB

    CHARACTER SET latin2 ;

    CREATE TABLE `Relacija` (

    `IDRelacije` int(11) NOT NULL,

    `MestoPolaska` varchar(50),

    `VremePolaska` varchar(50),

    `MestoDolaska` varchar(50),

    `Tip` varchar(50),

    PRIMARY KEY(`IDRelacije`)

    )

    ENGINE=INNODB

    CHARACTER SET latin2 ;

    CREATE TABLE `Radnik` (

    `IDRadnik` int(11) NOT NULL,

    `Ime` varchar(50),

    `Prezime` varchar(50),

    `Adresa` varchar(50),

    `Mesto` varchar(50),

    `Tel` varchar(15),

    `DatumRodjenja` date,

    `Plata` int(11),

    `Sef` int(11) DEFAULT '0',

    `IDRadMesto` int(11) NOT NULL DEFAULT '0',

    PRIMARY KEY(`IDRadnik`),

    CONSTRAINT `Ref_01` FOREIGN KEY (`Sef`)

    REFERENCES `Radnik`(`IDRadnik`)

    ON DELETE NO ACTION

    ON UPDATE NO ACTION,

    CONSTRAINT `Ref_11` FOREIGN KEY (`IDRadMesto`)

    REFERENCES `RadnoMesto`(`IDRadMesto`)

    ON DELETE NO ACTION

    ON UPDATE NO ACTION

    )

    ENGINE=INNODB

    CHARACTER SET latin2 ;

    CREATE TABLE `AR` (

    `IDAP` int(11) NOT NULL DEFAULT '0',

    `IDRelacije` int(11) NOT NULL DEFAULT '0',

    `Cena` int(11),

    PRIMARY KEY(`IDAP`, `IDRelacije`),

    CONSTRAINT `Ref_06` FOREIGN KEY (`IDAP`)

    REFERENCES `AutoPrevoznik`(`IDAP`)

    ON DELETE NO ACTION

    ON UPDATE NO ACTION,

    CONSTRAINT `Ref_09` FOREIGN KEY (`IDRelacije`)

    REFERENCES `Relacija`(`IDRelacije`)

    ON DELETE NO ACTION

    ON UPDATE NO ACTION

    )

    ENGINE=INNODB

    CHARACTER SET latin2 ;

    CREATE TABLE `Klijenti` (

    `IDKlijent` int(11) NOT NULL,

    `Ime` varchar(50),

    `Prezime` varchar(50),

  • 7/28/2019 Struna Praksa II Informatika - Autobuska stanica

    5/16

    5

    `Adresa` varchar(50),

    `Mesto` varchar(50),

    `Tel` varchar(15),

    `DatumRodjenja` date,

    `Status` varchar(50),

    `Popust` int(11),

    `IDAP` int(11) NOT NULL DEFAULT '0',

    `IDRelacije` int(11) NOT NULL DEFAULT '0',

    PRIMARY KEY(`IDKlijent`),

    CONSTRAINT `Ref_13` FOREIGN KEY (`IDAP`, `IDRelacije`)

    REFERENCES `AR`(`IDAP`, `IDRelacije`)

    ON DELETE NO ACTION

    ON UPDATE NO ACTION

    )

    ENGINE=INNODB

    CHARACTER SET latin2 ;

    CREATE TABLE `Karta` (

    `IDKarte` int(11) NOT NULL,

    `DatumIzd` date,

    `IDRadnik` int(11) NOT NULL DEFAULT '0',

    `IDAP` int(11) NOT NULL DEFAULT '0',

    `IDRelacije` int(11) NOT NULL DEFAULT '0',

    PRIMARY KEY(`IDKarte`),

    CONSTRAINT `Ref_08` FOREIGN KEY (`IDRadnik`)

    REFERENCES `Radnik`(`IDRadnik`)

    ON DELETE NO ACTION

    ON UPDATE NO ACTION,

    CONSTRAINT `Ref_07` FOREIGN KEY (`IDAP`, `IDRelacije`)

    REFERENCES `AR`(`IDAP`, `IDRelacije`)

    ON DELETE NO ACTION

    ON UPDATE NO ACTION

    )

    ENGINE=INNODB

    CHARACTER SET latin2 ;

    CREATE TABLE `MesecneKarte` (

    `IDKarte` int(11) NOT NULL,

    `IDKlijent` int(11) NOT NULL DEFAULT '0',

    `DatumIzd` date,

    `ZaMesec` varchar(50),

    `IDRadnik` int(11) NOT NULL DEFAULT '0',

    PRIMARY KEY(`IDKarte`),

    CONSTRAINT `Ref_10` FOREIGN KEY (`IDRadnik`)

    REFERENCES `Radnik`(`IDRadnik`)

    ON DELETE NO ACTION

    ON UPDATE NO ACTION,

    CONSTRAINT `Ref_12` FOREIGN KEY (`IDKlijent`)

    REFERENCES `Klijenti`(`IDKlijent`)

    ON DELETE NO ACTION

    ON UPDATE NO ACTION

    )

    ENGINE=INNODB

    CHARACTER SET latin2 ;

    SET FOREIGN_KEY_CHECKS=1;

  • 7/28/2019 Struna Praksa II Informatika - Autobuska stanica

    6/16

    6

    Poetak rada sa aplikacijom

    Po pokretanju aplikacije otvara se przor sa formom za unos prezimena radnika i njegovg ID-ja

    gde u zavisnosti od unesenih podataka (Slika "log in") pojavljuje meni za radnika koji prodaje

    karte ili meni za direktora

    ili zamenika direktora.Postoji i jedna tajna ifra

    koja se koristi kad ef ili

    radnik nisu jo ubaeni u

    bazu.

    Slika "log in".

    Meni za direktora i zamenika direktora

    Ovaj meni sadri forme koje slue za evidenciju radnika,radnih mesta, izvetaja o svim

    radnicima,izvetaj o prodatim karatama, i izvetaj o prodatim mesenim kartama kao i mali

    finansiski izvetaj za svaku formu.

  • 7/28/2019 Struna Praksa II Informatika - Autobuska stanica

    7/16

    7

    Forma "Radnici"

    Forma "Radnici" slui za unos podataka koji slue za evidenciju o radnicima i njihovim

    efovima. Pored unosa tu su jo opcije za izmenu podataka, osveavanje tabele i brisanje

    podataka iz baze podataka. Samim unosom ili izmenom podataka unese se podaci pored ove

    tabele i u tabelu izvetaji o radnicima. Pored ovih opcija tu je deo za brzu pretragu po

    kategorijama kao i dugme koje otvara formu gde se unose radna mesta. Na formi postoje dva

    radio batona koja sle da se odredi dali zaposleni ima efa ili nema. Kad se oznai radio baton

    "nema efa" ispisuje se podataka da e se uneti da radnik nema efa ili druga opcija da ima efa

    pa se ef bira iz kombo boksa.U opciji "File" na gornjoj liniji padajueg menija nalazi se opcija

    izlaz iz programa. U "Opcijama" se nalaze opcije koje slue za otvaranje formi kao to su"Radnici","Radna mesta","Izvetaj Radnici","Izvetaj karte","Izvetaj mesene karte", i

    simulacije dugmadi "Unesi","Izmeni","Osvei","Obrii". U liniji menija se jo nalazi padajui

    meni "Pomo"(slika levo) , koji sadri opcije "O nama" (slika desno), koja slui informacije o

    nama i kako nas moete kontaktirati igde nas moete nai, kao i opciju "O programu" koja sadri

    podatke i opis ovog programa. Forma sadri u liniji menija i opciju "Odjavi se" koja otvara formu

    "Log In".

  • 7/28/2019 Struna Praksa II Informatika - Autobuska stanica

    8/16

    8

    Forma "Radna mesta"

    Forma "Radna mesta" se pokree iz forme "Radnici" koja sadri dugme za otvaranje ove forme.

    Forma slui za dodavanje novih radnih mesta,izmenu podataka o radnim mestima nihovo brisanje

    i osveavanje tabele kao i dugme "Meni" koje otvara formu "Meni "za direktora. Radno mesto sa

    "ID"-jem "1" mora biti "Direktor", sa "2" mora biti "Zamenik direktora", sa "3" mora biti

    "Prodaja karata" jer prva dva imaju pristup meniju za direktore a trei me niju za radnike. Ova

    forma ne poseduje gornji padjui meni.

  • 7/28/2019 Struna Praksa II Informatika - Autobuska stanica

    9/16

    9

    Forma "Izvetaj radnici"

    Forma "Izvetaj radnici" slui da se vodi evidencija o svim radnicima u preduzeu (o onima koji

    jo rade i onima koji su radili). Forma sadri glavnu tabelu za pregled svih podataka kao to su

    "ID Radnika", "Ime", "Prezime", "Radno mesto", "Ime iprezime efa", "Platu", "PDV", "Plata +

    PDV". Kao i dugmad za brisanje osveavanje tabele i tampanje tabele. Takoe sadri i set za

    brzu i naprednu pretragu i mali finansiski izvetaj i brzi kalkulator. Podaci se unose u ovu tabelu

    preko forme "Radnici".

    Forma "Izvetaj mesene karte"

    Ova forma slui za evidenciju o svim prodatim mesenim kartama,slui za brisanje netanih

    podataka,a tu je i dugme za osveavanje tabele, kao i dugme za tampanje izvetaja iz tabele.

    Ispod tabele i dugmadi nalazi se deo koji slui za pretragu podataka. Uskoro svakoj formi postoji

  • 7/28/2019 Struna Praksa II Informatika - Autobuska stanica

    10/16

    10

    postoji deo za brzu pretragu pa i ovde. Brza pretraga slui da se brzo pronau podaci po izabranoj

    kategoriji. U ovoj formi jo postoji deo za naprednu pretragu koji slui za nalaenje detaljnih

    podataka. Deo za pretragu po datumima slui za pretragu podataka po nekim vremenskim

    rokovima. Ovoj formi je dodat i mali finansiski izvetaj za direkore i one koji vode evidenciju o

    tome. Tu se nalazi na primer broj pordatih karata, ukupan prihod,PDV,ostatak...

    Forma "Izvetaj karte"

    Ova forma je dosta slina kao i forme "Izvetaj radnici" i "Izvetaj mesene karte". Ovde se

    vodi evidencija o svim prodatim kartama u stanici, nihova pretraga, prgled, tampanje i brisanje.

  • 7/28/2019 Struna Praksa II Informatika - Autobuska stanica

    11/16

    11

    Meni za radniike

    Umeniju za radnike

    postoje 4 opcije koje slue

    za prodaju karata, prodaju

    mesenih karatadodavanje relacija i

    autoprevoznika,

    dodavanje klijenata...

    Svaka forma jo sadri

    meni koji sadri "File"

    gde se nalazi opcija za za

    izlazak iz

    programa,"Opcije" slui za

    odabir svih korisnikih formi koje sadri ovaj meni,"Pomo" slui za krau informaciju o samom

    "programu" i informaciju "o nama" i "Odjavi se" slui za izlazak iz svih formi i otvaranje forme

    "Log in".

    Forma "Autoprevoznici"

    Slui za ubacivanje podataka o novim autoprevoznicima, brisanje i izmenu podataka, kojima

    se kasnije preko ID autoprevoznika dodaje relacija autoprevozniku. Ubacuju se podaci kao

    toautoprevozniku. Ubacuju se podaci kao to su ID autoprevoznika, naziv autoprevoznika,

    adresa, mesto, telefon,i-mejl. Forma sadri dugme ka formama relacije, autoprevoznici i relacije,

  • 7/28/2019 Struna Praksa II Informatika - Autobuska stanica

    12/16

    12

    kao brzu pretragu. Gore se nalazi meni koji sadri opcije file,opcije,pomo,odjava. Kod za

    brisanje podataka iz baze :

    Forma "Relacije"

    Slui za unos, izmenu,brisanje podataka o novim relacijama kojima se kreu autoprevoznici.

    Forma sadri polja za unos teksta kao to su "IDRelacije","Mesto Polaska","VremePolaska","Mesto dolaska","Tip karte", koji moe biti na primer mesena ili u jednom smeru...

    Forma jo sadri dugmadi za unos,izmenu,brisanje podataka kao i dugmad za osveenje tabele i

    otvaranje formi za dodavanje novih autoprevoznika i formu za spajanje autoprevoznika i relacije.

    Brza pretraga kao i kod svih formi slui za pretragu po kategorijama gde se kluna re upisuje u

    tekstualno polje i pritiskom na "Enter" dobijaju se rezultati pretrage a kada je tekstualno polje

    prazno i pritiskom na "Enter" u tabeli se prikazuju svi podaci iz baze. Takoe forma sadri liniju

  • 7/28/2019 Struna Praksa II Informatika - Autobuska stanica

    13/16

    13

    menija na vrhu gde se nalaze meniji kao to su "File" gde postoji opcija za izlazak iz programa,

    "Opcije" gde se nalaze opcije za otvaranje formi kao to su "Relacije","Karte","Mesene

    karte","Autoprvoznici","Klijenti","AIR", a tu su i jo i opcije "Unesi","Izmeni","Osvei","Obrii"

    koje simuliraju dugmad za "Unos","Izmeni","Osvei","Obrii".

    Forma "Relacije i autoprevoznici"

    Slui za spajanje relacije i autoprevoznika. Unose se podaci kao to je autoprevoznik odnosno

    njegov ID i ID relacije. A preko forme kroz kombo bokove unese se podaci o

    autoprevozniku,mestu dolaska, mestu polaska , vremenu polaska i tipu karte, a cene se u ovoj

    tabeli samo dodeljuje autoprevozniku i relaciji. Forma takoe kao i sve druge sadri dugme za

    unos podataka, uzmenu podataka, osveavanje tabele, i brisanje podataka, kao i deo za brzu

    pretragu. Forma sadri i dugmad za otvaranje formi za daodavanje relacije i autoprevoznika. Za

    podatak vreme polaska treba ukucati "---" tamo gde je tip "mesene karte".Glavni deo koda za

    brzu pretragu

    .

  • 7/28/2019 Struna Praksa II Informatika - Autobuska stanica

    14/16

    14

    Forma "Prodaja mesenih karata"

    Slui za evidenciju o prodaji menih karata i unos novih karata. Tabela sadri podatke o

    "IDKarte", "IDKlijenta", "Ime" klijenta, "Prezime" klijenta, "Datum izdavanja" karte,"Mesec" za

    koji se izdaje karta,"Ime i Prezime" izdavaa karte i cenu karte sa popustom ako postoji koji se

    unosi u formi "Klijenti" a cena u formi "Relacije i autoprevoznici" a to se sve obruje(deli i

    mnoi...) u formi "Prodaja mesenih karata". Slika sa kodom ispod:

    Dumad za upravljanje

    programom

  • 7/28/2019 Struna Praksa II Informatika - Autobuska stanica

    15/16

    15

    Forma "Prodaja karata"

    Slui za detaljnu evidenciju o prodatim kartama i unos novih. Pri unosu imamo podatke kao

    to su "IDKarte" koji nemoe da se ponavlja ve je jedinstven, zatim imamo "Datum Izdavanja"

    karte kojije fiksiran i nemoe ga niko menjati, u kombo boksu "Izdavalac"smeteni su "ID-jevi"

    svih radnika koji rade na radnom mestu "Prodaja karata" i samo oni mogu prodavati karte.

    Izborom nekog "ID-ja" ispisuje se ime radnika iji "ID" je izabran. Izborom "Autoprevoznika"

    puni se kombo boks "od Relacija", "do Relacija", "Vreme Polaska", "Tip karte" (da li je karta u

    jednom smeru...), "Cena " karte se automatski ispisuje u srazmeri sa izabranim prethodnim

    kombo boksovima. U prozoru imao samo tri dugmeta plus dugme za "meni" (koje nas vraa na

    prozor menija za radnike) jer dugme za izmenu ovde nije potrbno. Dugme za unos podataka slui

    da se podaci koji su izabrani u kombo boksovima i tekstualnim poljma unesu u bazu podataka i

    posle svakog unosa tabela se osveava. Dugme osvei-osveava glavnu tabelu i vraa joj poetne

    podatke, odnosno sve podatke koje postoje u bazi. Dugme obrii slui za brisanje selektovanog

    reda u tabeli. Brza pretraga se vri tako to se iz kombo boksa izabere kategorija koja koja eli da

    se pretrauje i u tekstualno polje se upisuje kjuna re za pretragu i pritiskom na taster "Enter"

    ispisuju se rezultati pretrage u tabelu, brisanjem celog teksta iz tekst polja i pritiskom na taster

    "Enter" tabela se puni starim sadrajem. Unosom podataka u bazu (odnsno tabelu karte) podaci

    se unose i u tabelu "Karte izvetaj" radi pregleda.

    Brza pretraga slui da se

    brzo mogu pronai sve

    kategorije podataka koje

    se nalaze u tabeli

  • 7/28/2019 Struna Praksa II Informatika - Autobuska stanica

    16/16

    16

    Forma "Klijenti"

    Ova forma slui za unos, izmenu, brisanje podataka o klijentima. Pored unosa podataka i ostalih

    opcija forma sadri i kombo boks za popust na mesene karte klijentu u zavisnosti od njegovog

    statusa. Forma sadri i opcije za brzu pretragu podataka i dugme koje vodi radnika na formu

    "Prodaja mesenih karata".