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

C# .NET .NET (C# a Visual Basic) Machr na OOP - Editor vnořených seznamů American English version English version

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í
polemes 5 Stáhnout řešení
Avatar
Zdeněk Pavlátka
Tým ITnetwork
Avatar
Zdeněk Pavlátka:

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  +5 2.11.2015 9:28
Kolik jazyků umíš, tolikrát jsi programátor.
Avatar
polemes
Redaktor
Avatar
polemes:

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

Nahoru Odpovědět 2.11.2015 16:17
5 + 5 = 1010
Avatar
patrik.valkovic
Šéfredaktor
Avatar
patrik.valkovic:

Pěkný machr :)

Nahoru Odpovědět  +4 2.11.2015 16:21
Nikdy neumíme dost na to, abychom se nemohli něco nového naučit.
Avatar
Zdeněk Pavlátka
Tým ITnetwork
Avatar
Odpovídá na polemes
Zdeněk Pavlátka:

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

Nahoru Odpovědět  +1 2.11.2015 19:22
Kolik jazyků umíš, tolikrát jsi programátor.
Avatar
polemes
Redaktor
Avatar
polemes:

Kdo se všechno zůčastní?

Nahoru Odpovědět 2.11.2015 22:15
5 + 5 = 1010
Avatar
Eldan
Člen
Avatar
Eldan:

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
Zdeněk Pavlátka
Tým ITnetwork
Avatar
Odpovídá na Eldan
Zdeněk Pavlátka:

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
Nahoru Odpovědět  +2 6.11.2015 21:07
Aj tisícmíľová cesta musí začať jednoduchým krokom.
Avatar
Zdeněk Pavlátka
Tým ITnetwork
Avatar
Odpovídá na Libor Šimo (libcosenior)
Zdeněk Pavlátka:

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):

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
Zdeněk Pavlátka
Tým ITnetwork
Avatar
Odpovídá na Libor Šimo (libcosenior)
Zdeněk Pavlátka:

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):

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  +1 7.11.2015 9:42
Aj tisícmíľová cesta musí začať jednoduchým krokom.
Avatar
polemes
Redaktor
Avatar
polemes:

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
5 + 5 = 1010
Avatar
polemes
Redaktor
Avatar
polemes:

a program ma Delat novou ,editovat i otvirat?

Nahoru Odpovědět 7.11.2015 13:12
5 + 5 = 1010
Avatar
Lukáš Křehula
Redaktor
Avatar
Odpovídá na polemes
Lukáš Křehula:

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

 
Nahoru Odpovědět  +1 7.11.2015 16:56
Avatar
Zdeněk Pavlátka
Tým ITnetwork
Avatar
Odpovídá na Libor Šimo (libcosenior)
Zdeněk Pavlátka:

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
Nahoru Odpovědět 7.11.2015 19:39
Aj tisícmíľová cesta musí začať jednoduchým krokom.
Avatar
Zdeněk Pavlátka
Tým ITnetwork
Avatar
Nahoru Odpovědět 7.11.2015 19:40
Kolik jazyků umíš, tolikrát jsi programátor.
Avatar
Libor Šimo (libcosenior):

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:
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  +1 7.11.2015 20:03
Proč to dělat složitě, když to jde jednoduše.
Avatar
Zdeněk Pavlátka
Tým ITnetwork
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):

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):

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):

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
polemes
Redaktor
Avatar
polemes:

Joo jsem první :D

Nahoru Odpovědět 8.11.2015 15:09
5 + 5 = 1010
Avatar
Odpovídá na polemes
Michael Škrášek:

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

Nahoru Odpovědět 8.11.2015 15:24
Proč to dělat složitě, když to jde jednoduše.
Avatar
polemes
Redaktor
Avatar
polemes:

Ne ja ted delam machra na Android :D

Nahoru Odpovědět 8.11.2015 19:02
5 + 5 = 1010
Avatar
polemes
Redaktor
Avatar
polemes:

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

Nahoru Odpovědět 8.11.2015 19:19
5 + 5 = 1010
Avatar
Michael Škrášek:

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

Nahoru Odpovědět 14.11.2015 11:32
Proč to dělat složitě, když to jde jednoduše.
Avatar
polemes
Redaktor
Avatar
polemes:

Š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
5 + 5 = 1010
Avatar
Odpovídá na polemes
Michael Škrášek:

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
Proč to dělat složitě, když to jde jednoduše.
Avatar
polemes
Redaktor
Avatar
polemes:

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
5 + 5 = 1010
Avatar
Odpovídá na polemes
Michael Škrášek:

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

Nahoru Odpovědět 14.11.2015 12:40
Proč to dělat složitě, když to jde jednoduše.
Avatar
polemes
Redaktor
Avatar
polemes:

Ukolníček:

PS: Ty čary tam dal WinSnap :)

Editováno 14.11.2015 12:44
Nahoru Odpovědět 14.11.2015 12:43
5 + 5 = 1010
Avatar
Odpovídá na polemes
Michael Škrášek:

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

Nahoru Odpovědět 14.11.2015 12:47
Proč to dělat složitě, když to jde jednoduše.
Avatar
polemes
Redaktor
Avatar
polemes:

Tobě taktéž. Děkuji.

Nahoru Odpovědět 14.11.2015 12:57
5 + 5 = 1010
Avatar
Zdeněk Pavlátka
Tým ITnetwork
Avatar
Zdeněk Pavlátka:

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

polemes - 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:

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
Proč to dělat složitě, když to jde jednoduše.
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.