IT rekvalifikace s garancí práce. Seniorní programátoři vydělávají až 160 000 Kč/měsíc a rekvalifikace je prvním krokem. Zjisti, jak na to!
Hledáme nové posily do ITnetwork týmu. Podívej se na volné pozice a přidej se do nejagilnější firmy na trhu - Více informací.

Soutěž: Machr na OOP - Editor vnořených seznamů

Soutěž již skončila

Zadání

V této soutěži budete tvořit editor s uživatelským rozhraním. Editor bude umožňovat vytvářet a upravovat stromovou strukturu, kde data budou mít pevně dané datové typy (nastavené při vytvoření), jaké typy bude program podporovat je na vás.
Tady máte malou ukázku pro snažší pochopení:

zaměstnanci:
        Pavel:
                pozice: bezpečnostní technik  (string)
                věk: 32                        (byte)
        Marie:
                pozice: sekretářka            (string)
                věk: 24                        (byte)

Editor bude obsahovat ukládání a načítání, a to ve dvou formátech:
lidsky čitelném - můžete použít např. JSON nebo XML
binárním - snažte se o co nejmenší velikost uloženého souboru

U načítání poškozených souborů je vaším úkolem načíst co nejvíce dat dokážete a upozornit uživatele, že soubor je poškozený (případně i označit chybějící data ve stromové struktuře).

Aplikace bude obsahovat i nápovědu.

Co se týče kódu, budu hodnotit hlavně reprezentaci dat a přehlednost kódu (takže nezapomeňte na komentáře).

Bodování:

  • uživatelské rozhraní: max 18 bodů
  • formáty souborů: max 8 bodů za každý
  • načítání poškozených souborů: max 15 bodů
  • nápověda: max 10 bodů
  • reprezentace dat: max 24 bodů
  • přehlednost kódu: max 17 bodů

Povolené jazyky jsou Java a C# / Visual Basic.

Výhra

Vítěz dostane placku Machr, a ocenění do portfolia.

Výhra

Výsledky

Jméno bodů Řešení ( Stáhnout vše )
Michael Škrášek 41 Stáhnout řešení
Martin Skalík 5 Stáhnout řešení
Aktivity
Avatar
Zdeněk Pavlátka:2.11.2015 9:28

V této soutěži budete tvořit editor pro úpravu dat uložených ve stromové struktuře.

Soutěž končí 14.11.2015 12:00:00, tak se nezapomeň zapojit! :-)

Odpovědět
2.11.2015 9:28
Kolik jazyků umíš, tolikrát jsi programátor.
Avatar
Martin Skalík
Tvůrce
Avatar
Martin Skalík:2.11.2015 16:17

Ti lidé mají mít jen pozici a věk?

 
Nahoru Odpovědět
2.11.2015 16:17
Avatar
Patrik Valkovič:2.11.2015 16:21

Pěkný machr :)

Nahoru Odpovědět
2.11.2015 16:21
Nikdy neumíme dost na to, abychom se nemohli něco nového naučit.
Avatar
Odpovídá na Martin Skalík
Zdeněk Pavlátka:2.11.2015 19:22

To byla jen ukázka, ta data bude zadávat uživatel.

Nahoru Odpovědět
2.11.2015 19:22
Kolik jazyků umíš, tolikrát jsi programátor.
Avatar
Martin Skalík
Tvůrce
Avatar
Martin Skalík:2.11.2015 22:15

Kdo se všechno zůčastní?

 
Nahoru Odpovědět
2.11.2015 22:15
Avatar
Eldan
Člen
Avatar
Eldan:6.11.2015 19:39

Napadlo mě, že bych se mohl zúčastnit, ale nechápu úplně zadání. Mohl bys ho trochu přiblížit, příp. ukázat nějaký příklad?

Nahoru Odpovědět
6.11.2015 19:39
Unobfuscated executable == free source code
Avatar
Odpovídá na Eldan
Zdeněk Pavlátka:6.11.2015 19:48

Jako inspiraci se můžete podívat na tento program - je to podobný princip:
http://www.minecraftforum.net/…dows-and-mac

Pokud bys nechápal nějakou konkrétní část zadání, klidně mi napiš kterou a já jí podrobněji vysvětlím.

Editováno 6.11.2015 19:49
Nahoru Odpovědět
6.11.2015 19:48
Kolik jazyků umíš, tolikrát jsi programátor.
Avatar
Odpovídá na Zdeněk Pavlátka
Libor Šimo (libcosenior):6.11.2015 21:07

Tak toto vôbec nebude ľahké.

Nahoru Odpovědět
6.11.2015 21:07
Aj tisícmíľová cesta musí začať jednoduchým krokom.
Avatar
Odpovídá na Libor Šimo (libcosenior)
Zdeněk Pavlátka:7.11.2015 8:31

proto jsem to dal na 14 dní... A také proto je to bodově rozděleno na části, např. když budeš mít extra jednoduché a nepropracované uživatelské rozhraní (max 18 bodů), ale povede se ti práce se soubory (až 31 bodů), stále na tom budeš dobře.

Minimum na výhru určím podle toho, jak se vám bude dařit.

Nahoru Odpovědět
7.11.2015 8:31
Kolik jazyků umíš, tolikrát jsi programátor.
Avatar
Odpovídá na Zdeněk Pavlátka
Libor Šimo (libcosenior):7.11.2015 8:41

Do akej urovne ma byt stromova struktura, alebo neobmedzene?

Nahoru Odpovědět
7.11.2015 8:41
Aj tisícmíľová cesta musí začať jednoduchým krokom.
Avatar
Odpovídá na Libor Šimo (libcosenior)
Zdeněk Pavlátka:7.11.2015 9:33

to je na tobě, minimálně ale 5 úrovní

Nahoru Odpovědět
7.11.2015 9:33
Kolik jazyků umíš, tolikrát jsi programátor.
Avatar
Libor Šimo (libcosenior):7.11.2015 9:42

Napríklad takto?

Firma
  názov
  miesto
  zameranie
    Dcérska spoločnosť
      názov
      miesto
      zameranie
      pocet zamestnancov
                      Oddelenie
                        názov
                        zameranie
                        pocet zamestnancov
                                          Pracovník
                                            meno
                                            vek
                                            zaradenie
                                            plat

Dobre tomu rozumiem?
Samozrejme, že je to na užívateľovi, čo si tam dá.
Sorry, to sú len 4 úrovne.

Editováno 7.11.2015 9:44
Nahoru Odpovědět
7.11.2015 9:42
Aj tisícmíľová cesta musí začať jednoduchým krokom.
Avatar
Martin Skalík
Tvůrce
Avatar
Martin Skalík:7.11.2015 13:08

Tak ja to pochopil uplne jinak :D
podle me bude malo bodu :)

Editováno 7.11.2015 13:10
 
Nahoru Odpovědět
7.11.2015 13:08
Avatar
Martin Skalík
Tvůrce
Avatar
Martin Skalík:7.11.2015 13:12

a program ma Delat novou ,editovat i otvirat?

 
Nahoru Odpovědět
7.11.2015 13:12
Avatar
Odpovídá na Martin Skalík
Lukáš Křehula:7.11.2015 16:56

Pokud si přečteš zadání pozorně tak najdeš odpovědi na své otázky

 
Nahoru Odpovědět
7.11.2015 16:56
Avatar
Odpovídá na Libor Šimo (libcosenior)
Zdeněk Pavlátka:7.11.2015 17:36

Tady máš rozšířenou ukázku ze zadání, samozřejmě můžeš mít úplně jiné datové typy, tohle je narychlo vymyšlené
http://www.itnetwork.cz/dev-lighter/647

Nahoru Odpovědět
7.11.2015 17:36
Kolik jazyků umíš, tolikrát jsi programátor.
Avatar
Odpovídá na Zdeněk Pavlátka
Libor Šimo (libcosenior):7.11.2015 19:39

:Tym je to dost zjednodusene. ;-)

Nahoru Odpovědět
7.11.2015 19:39
Aj tisícmíľová cesta musí začať jednoduchým krokom.
Avatar
Nahoru Odpovědět
7.11.2015 19:40
Kolik jazyků umíš, tolikrát jsi programátor.
Avatar
Libor Šimo (libcosenior):7.11.2015 19:45

Mozno uvidime. :-)

Nahoru Odpovědět
7.11.2015 19:45
Aj tisícmíľová cesta musí začať jednoduchým krokom.
Avatar
Odpovídá na Zdeněk Pavlátka
Michael Škrášek:7.11.2015 20:03
Editor bude obsahovat ukládání a načítání, a to ve dvou formátech:
lidsky čitelném - můžete použít např. JSON nebo XML

To znamená, že si můžu udělat vlastní formát?

např.

firma-
{
jmeno:firma1(string)
zamestnanci-
{
adam-
{
vek:22(byte)
}
}
}
Nahoru Odpovědět
7.11.2015 20:03
"I choose a lazy person to do a hard job. Because that person will find an easy way to do it. " Bill Gates
Avatar
Nahoru Odpovědět
7.11.2015 20:10
Kolik jazyků umíš, tolikrát jsi programátor.
Avatar
Odpovídá na Michael Škrášek
Libor Šimo (libcosenior):8.11.2015 0:26

Ja som to pochopil takto.
Po spusteni aplikacie (ak je to prvy krat) sa otvori okno s textom: Aplikacia vytvori databazu toho, co potrebujes, napriklad obchodneho retazca, ako je MackDonald. (Ak uz bolo skor nieco zadane a ulozene, vypise sa databaza, ktora bude nacitana bud zo suboru .xml alebo .dat, podla ponuky a vyberu uzivatela.)
Na hornej liste su ikony, na ktore ked nabehnes mysou, vyskoci okno s napovedou, co mozes robit, vyskusaj. ;-)
V napovedach budu ponuky pridat jednotlive zlozky databazy s moznostou vyberu datoveho typu. Vzdy tam bude nazov premennej a jej typ, napr. veta, slovo, cele cislo, desatinne cislo, datum. Tieto data sa budu pridavat do stromovej strukruty. Po kazdom novom zadani sa automaticky novy item ulozi do databazy (.xml a .dat) a zmena sa vypise do hlavneho okna.
Dalej tam budu tlacitka na ulozenie do formatu. xml a .dat.

Nahoru Odpovědět
8.11.2015 0:26
Aj tisícmíľová cesta musí začať jednoduchým krokom.
Avatar
Odpovídá na Michael Škrášek
Libor Šimo (libcosenior):8.11.2015 0:26

Ja som to pochopil takto.
Po spusteni aplikacie (ak je to prvy krat) sa otvori okno s textom: Aplikacia vytvori databazu toho, co potrebujes, napriklad obchodneho retazca, ako je MackDonald. (Ak uz bolo skor nieco zadane a ulozene, vypise sa databaza, ktora bude nacitana bud zo suboru .xml alebo .dat, podla ponuky a vyberu uzivatela.)
Na hornej liste su ikony, na ktore ked nabehnes mysou, vyskoci okno s napovedou, co mozes robit, vyskusaj. ;-)
V napovedach budu ponuky pridat jednotlive zlozky databazy s moznostou vyberu datoveho typu. Vzdy tam bude nazov premennej a jej typ, napr. veta, slovo, cele cislo, desatinne cislo, datum. Tieto data sa budu pridavat do stromovej strukruty. Po kazdom novom zadani sa automaticky novy item ulozi do databazy (.xml a .dat) a zmena sa vypise do hlavneho okna.
Dalej tam budu tlacitka na ulozenie do formatu. xml a .dat.

Nahoru Odpovědět
8.11.2015 0:26
Aj tisícmíľová cesta musí začať jednoduchým krokom.
Avatar
Libor Šimo (libcosenior):8.11.2015 0:32

Neviem preco to dalo 2 x, prosim moderatora o zmazanie jedneho prispevku. :-)

Nahoru Odpovědět
8.11.2015 0:32
Aj tisícmíľová cesta musí začať jednoduchým krokom.
Avatar
Martin Skalík
Tvůrce
Avatar
Martin Skalík:8.11.2015 15:09

Joo jsem první :D

 
Nahoru Odpovědět
8.11.2015 15:09
Avatar
Odpovídá na Martin Skalík
Michael Škrášek:8.11.2015 15:24

To ti nezávidim, teď budeš netrpělivě čekat 5 dnů ... :)

Nahoru Odpovědět
8.11.2015 15:24
"I choose a lazy person to do a hard job. Because that person will find an easy way to do it. " Bill Gates
Avatar
Martin Skalík
Tvůrce
Avatar
Martin Skalík:8.11.2015 19:02

Ne ja ted delam machra na Android :D

 
Nahoru Odpovědět
8.11.2015 19:02
Avatar
Martin Skalík
Tvůrce
Avatar
Martin Skalík:8.11.2015 19:19

i kdyby machr na android nebyl tak mam v planu nejake apky na svuj mobil

 
Nahoru Odpovědět
8.11.2015 19:19
Avatar
Michael Škrášek:14.11.2015 11:32

Už jenom půl hodiny a mně toho ještě tolik chybí ... :( asi to nestihnu

Nahoru Odpovědět
14.11.2015 11:32
"I choose a lazy person to do a hard job. Because that person will find an easy way to do it. " Bill Gates
Avatar
Martin Skalík
Tvůrce
Avatar
Martin Skalík:14.11.2015 12:30

Šrášku gratuluji asi to vyhrajes me toho moc chybí Protože jsem delal Android :D

 
Nahoru Odpovědět
14.11.2015 12:30
Avatar
Odpovídá na Martin Skalík
Michael Škrášek:14.11.2015 12:34

Mně taky - nemám nápovědu, dodělaný editor, binární formát souboru a přehlednost taky nebude nejlepší - prostě jsem to nesthil, většinu věcí ani nevim jestli funguj protože jsem to nestihl vyzkoušet. Vždyť jsem to odeslal 11:59 :DDDD

Nahoru Odpovědět
14.11.2015 12:34
"I choose a lazy person to do a hard job. Because that person will find an easy way to do it. " Bill Gates
Avatar
Martin Skalík
Tvůrce
Avatar
Martin Skalík:14.11.2015 12:36

No ja to prakticky mam chybi mi stanoveny typ pri zadavani a hodne jsem si to ulechčil Ale ten Android si myslim že mam dobry

Nebál ses že naskočí 12:00 :D ?

Editováno 14.11.2015 12:38
 
Nahoru Odpovědět
14.11.2015 12:36
Avatar
Odpovídá na Martin Skalík
Michael Škrášek:14.11.2015 12:40

Však to byly hrozný nervy :D bylo to asi o 40s

Nahoru Odpovědět
14.11.2015 12:40
"I choose a lazy person to do a hard job. Because that person will find an easy way to do it. " Bill Gates
Avatar
Martin Skalík
Tvůrce
Avatar
Martin Skalík:14.11.2015 12:43

Ukolníček:

PS: Ty čary tam dal WinSnap :)

Editováno 14.11.2015 12:44
 
Nahoru Odpovědět
14.11.2015 12:43
Avatar
Odpovídá na Martin Skalík
Michael Škrášek:14.11.2015 12:47

Jo vypadá to dobře, přeju štěstí ;)

Nahoru Odpovědět
14.11.2015 12:47
"I choose a lazy person to do a hard job. Because that person will find an easy way to do it. " Bill Gates
Avatar
Martin Skalík
Tvůrce
Avatar
Martin Skalík:14.11.2015 12:57

Tobě taktéž. Děkuji.

 
Nahoru Odpovědět
14.11.2015 12:57
Avatar
Zdeněk Pavlátka:15.11.2015 16:22

Díky všem za účast, zde jsou výsledky:

Martin Skalík - 5 bodů
obecné připomínky:

  • dělal jsi úplně jinou aplikaci
  • Upravit extends Novy - podle názvů to nedává smysl...

uživatelské rozhraní: - 3 body

  • pořádně nefunguje

formáty souborů: - 0 bodů
načítání poškozených souborů: - 0 bodů

  • ukládání nefunguje -> nemám co načítat

nápověda: - 1 bodů

  • moc toho v té aplikaci nemáš a ani to jsi nepopsal celé

reprezentace dat: - 0 bodů

  • tu jsem nepochopil, všechno uchovávat jako soubory je trochu divné

přehlednost kódu: - 1 bod

  • v celém kódu jsem našel 2 komentáře - a to vysvětlení co znamená @Override a že "file = fc.showOpenDi­alog(null);" znamená "file = vyber z dialogu"
  • podivné názvy: např. metoda NapsatDoTextArea načítá ze souboru do ArrayListu...

Michael Škrášek - 41 bodů
obecné připomínky:

  • nemáš ošetřené výjimky
  • sizeof vrací počet bytů, které proměnná zabírá, rozsah získáš např. u intu pomocí int.MinValue, int.MaxValue
  • nechápu proč ke každému enum dáváš [Flags], tady to nedává smysl
  • škoda, že jsi to nedokončil, byl jsi na dobré cestě ;)

uživatelské rozhraní: - 10 bodů

  • vypadá dobře, snadné používání
  • při pokusu o přidání hodnoty do nového souboru spadne s chybou (actual_node je null)
  • není dokončené, spousta věcí nefunguje - např. nastavování hodnot

formáty souborů: - 7 bodů

  1. přehledný typ - 7 bodů
  • pokud je zapnutý přehledný zápis, je dobře čitelný
  • přepínání přehledného zápisu a šetření místem se mi zdá zbytečné, u přehledného souboru se na velikost moc nehraje, od toho je binární soubor, navíc máš nastavení pod nápovědou...
  1. binární typ - 0 bodů
  • chybí

načítání poškozených souborů: - 0 bodů

  • u poškozeného souboru aplikace spadne...

nápověda: - 0 bodů

  • chybí

reprezentace dat: - 16 bodů

  • něco takového jsem si představoval
  • DataValue by se dalo rozdělit podle typů (pomocí dědění), je to lepší než uchovávat všechno jako string

přehlednost kódu: - 8 bodů

  • chtělo by to více komentářů
  • soubor Data by bylo lepší rozdělit na více souborů - 1 soubor pro každou třídu
  • jinak to není tak špatné

Tentokrát placku nikdo nezískává, snad někdy příště.

Editováno 15.11.2015 16:24
Nahoru Odpovědět
15.11.2015 16:22
Kolik jazyků umíš, tolikrát jsi programátor.
Avatar
Odpovídá na Zdeněk Pavlátka
Michael Škrášek:15.11.2015 16:28

Vím, všechno jsem děla na rychlo a něměl skoro nic ošetřené a vyzkoušené :/

Nahoru Odpovědět
15.11.2015 16:28
"I choose a lazy person to do a hard job. Because that person will find an easy way to do it. " Bill Gates
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 38 zpráv z 38.