Sunteți pe pagina 1din 9

Proiecte pentru cursul de Programare Java

Ultima modificare: 06.01.2014 Link versiune actualizat a documentului: https://db.tt/hPsO3HEk

Precizri:
Proiectele se vor realiza n echipe de 2-3 studeni. Pn la data de 22.10.2013 se vor alege temele, se vor forma echipele i se vor comunica profesorului la adresa de email: raluca.lefticaru@fmi.unibuc.ro. Fiecare proiect din lista urmtoare poate fi ales de o singur echip, proiectele vor fi asignate echipelor n ordinea primirii opiunilor pe email. La sfritul documentului se gsete un tabel cu proiectele i echipele care le vor implementa. Pentru realizarea proiectului n echip se va utiliza un sistem de control al versiunilor, de exemplu SVN (Subversion), CVS (Concurrent Version System), GIT. Se va folosi o platform (cu gzduire free) pentru repository-ul proiectului dezvoltat, se vor instala i utiliza diferii clieni pentru sistemul de control al versiunilor ales (de exemplu TurtoiseSVN, Subclipse pentru Subversion). Evoluia proiectului se va monitoriza periodic. La sfritul semestrului (primele dou sptmni din ianuarie) se va prezenta versiunea final a proiectului, documentaia acestuia (format tiprit + electronic pe CD sau email), se va preda codul surs, n documentaie va fi inclus un link la repository-ul configurat i va fi furnizat un user pentru acces. Nota primit la susinerea proiectului va reprezenta 50% din nota final. Nota poate fi diferit ntre membrii aceleai echipe, n funcie de modul n care rspund la ntrebrile legate de proiectul realizat i contribuia sa la implementarea lui.

Bibliografie:
Horia Georgescu, Introducere n universul Java, Editura tehnic, Bucureti, 2002. Stefan Tanas, Cristian Olaru, tefan Andrei, Java de la 0 la expert (ediia a II-a), Editura Polirom, 2007, 2011. Cristian Frsinaru, Curs practic de Java, Bucureti, Editura Matrix Rom, 2005. Daniel Danciu, George Mardale, Arta programrii n Java, vol. I - Concepte fundamentale, Editura Albastr Daniel Danciu, George Mardale, Arta programrii n Java, vol. II - Algoritmi i structuri de date, Editura Albastr Florian Mircea Boian, Rare Florin Boian, Tehnologii fundamentale Java pentru aplicaii Web, Editura Albastr, Cluj-Napoca, 2004. Bruce Eckel, Thinking in Java, Prentice Hall, 2003 Michael Morrison, Sams Teach Yourself Wireless Java with J2ME in 21 Days, Sams, 2001.

List de proiecte
Proiect 1. Pretty printing 1 (& syntax highlighting). Scriei un program care primete la intrare un program Java (eventual scris neuniform) i l transform ntr-un program Java scris respectnd regulile stilului profesionist de redactare a instruciunilor (indentare a subinstruciunilor, o singur instruciune pe un rnd, fr mai mult de o linie vid, etc.). La afiarea programului rezultat se poate face higlighting pe sintaxa, se pot scrie cu bold cuvintele cheie etc. Proiect 2. Presupunem c suntem n campanie electoral i dorim s vizualizm situaia statistic a unui sondaj electoral. Presupunem ca avem urmtorul caz: - Partidul P1 42% - Partidul P2 12% - Partidul P3 8% - Partidul P4 6% - Partidul P5 5% - Celelalte partide 27% Realizai un applet sau un program Java cu o interfa grafic swing care s pun n eviden aceste proporii. De exemplu, un cerc care sa conin diferite culori pentru anumite sectoare de cerc, reprezentate proporional cu procentele furnizate n urma sondajului electoral. Se va permite utilizatorului s introduc procentele respective ntr-un tabel (cu o coloan pentru semnificaie i o coloan pentru procent), s aleag culorile, dimensiunea cercului, ce informaii s se afieze n legend, fontul folosit etc. Proiect 3. Construii un applet sau un program Java cu o interfa grafic swing care s permit micorarea/mrirea lungimii catetelor unui triunghi dreptunghic ABC folosind dou bare de defilare. De asemenea afiai si tangenta unghiurilor ascuite ale triunghiului, oferii utilizatorului ct mai multe opiuni de customizare (grosimea liniei, culorile folosite la desenare, tipul fontului cu care se afieaz literele A, B, C, tangenta). Proiect 4. Realizai jocul X i 0 (ntre 2 utilizatori sau utilizator-calculator). Se va ine evidena jocurilor (scor, nr. jocuri ctigate de fiecare juctor). Proiect 5. Calculator de buzunar pentru numere reale. n afar de operaiile standard va avea n meniu funcii pentru Copy, Paste, butoane pentru , 1/x, n! i va permite introducerea unei expresii complexe, cu paranteze i mai muli operatori aritmetici,

iar la apsarea tastei Enter va calcula valoarea expresiei. Proiect 6. Scriei un applet Java care genereaz la apsarea unui buton o minte colorat (distinct de precedentele), care se izbete i ricoeaz de marginile unui dreptunghi. Se vor genera cel mult N mingi (de exemplu N = 20). Apsnd un alt but on, acestea se pot opri din micarea lor, n ordine invers generrii lor. Eventual se va permite ca mingile s se ciocneasc. Proiect 7. Scriei un applet Java care poate genera trei mingi colorate cu rou, galben i albastru atunci cnd se apas cte un buton (denumite eventual Rou, Galben i Albastru). Acestea mingi se izbesc i ricoeaz ntr-un dreptunghi dat. Dac se reapas un buton precedent, atunci mingea generat anterior se oprete, aprnd n locul ei alta de aceeai culoare. Furnizai cte un buton Stop pentru fiecare dintre aceste 3 culori, menit s opreasc micarea mingii de culoarea respectiv. Punei la dispoziie i cte o bar de defilare necesar pentru modificarea vitezei mingilor colorate. Proiect 8. Breakout. Scriei un program Java, care folosete fire de execuie, pentru simulare a jocului Breakout. Acesta const dintr-un suport care se mic orizontal avnd la nceput o bil situat sub el. Deasupra suportului, la o anumit distan mai sus, exist un zid de crmizi care urmeaz a fi dobort de ctre bil. n mod obinuit, bila poate sparge doar o crmid. Conform cu poziia i unghiul unde bila lovete suportul, aceasta va ricoa napoi ctre zid sub un unghi egal cu unghiul de cdere, dar n sens suplimentar (invers). Dac nu se reuete prinderea bilei de ctre suport, atunci acea bil i nceteaz micarea pe ecran. Crmizile pot fi obinuite, pot conine bonusuri (de exemplu, dac reuii s prindei bila care a atins crmida bonificat, atunci bila va sparge ntreaga lime a zidului) sau pot genera mai multe bile. Proiect 9. Scriei o aplicaie client/server care s simuleze un sistem (grafic) de chat. Clientul trimite mesaj la server i serverul trimite la toi utilizatorii (clienii) acelui chat mesajul primit. Se va da posibilitatea de a vizualiza utilizatorii co nectai, de a trimite mesaje individuale sau la grupuri de utilizatori, de a crea i administra camere de discuii, posibilitatea de a restriciona accesul personajelor cu un comportament inadecvat. Proiect 10. S se creeze o baz de date cu cteva tabele i s se realizeze o interfa grafic ce permite urmtoarele operaii: afiarea nregistrrilor, inserare, actualizare, tergere, execuie de comenzi SQL definite de utilizator etc. Proiect 11. Aplicaie care afieaz grafice tip linie (http://en.wikipedia.org/wiki/Line_chart). Datele care trebuie afiate se vor importa dintr-un fiier XML. Aplicaia va permite configurarea urmtorilor parametrii: - culoarea de fundal;

- culoarea axelor; - afiarea/ascunderea valorilor punctelor; - culoarea valorilor punctelor; - valorile de pe axe; - afiarea/ascunderea valorilor de pe axe; - culoarea valorilor de pe axe; - afiarea/ascunderea liniilor corespunztoare valorilor de pe axe (orizontale i/sau verticale); - culoarea liniilor corespunztoare valorilor de pe axe. Proiect 12. Aplicaie care afieaz grafice tip pie (http://en.wikipedia.org/wiki/Pie_chart). Datele care trebuie afiate se vor importa dintr-un fisier XML. Aplicaia va permite configurarea urmtorilor parametrii: - culoarea liniilor; - afiarea/ascunderea valorilor (procente) sau a textelor corespunztoare valorilor; - legenda. In cazul afirii numai a valorilor, legenda va conine semnificaia, iar n cazul afirii textelor/semnificaiilor, legenda va conine valorile; - culoarea textelor corespunztoare valorilor; - culorile segmentelor de cerc corespunztoare valorilor. Proiect 13. Aplicaie care afieaz grafice tip "bar" (http://en.wikipedia.org/wiki/Bar_chart). Datele care trebuie afiate se vor importa dintr-un fiier XML. Aplicaia va permite configurarea urmtorilor parametrii: - culoarea de fundal; - culoarea axelor; - afiarea pe bar/ascunderea valorilor punctelor; - culoarea valorilor punctelor; - valorile de pe axe; - afiarea/ascunderea valorilor i a textelor de pe axe; - culoarea valorilor/textelor de pe axe; - afiarea/ascunderea liniilor corespunztoare valorilor de pe axe (orizontale); - culoarea liniilor corespunztoare valorilor de pe axe. Proiect 14. Aplicaie care afieaz grafice tip "suprafa" (http://en.wikipedia.org/wiki/Area_chart). Datele care trebuie afiate se vor importa dintr-un fiier XML. Aplicaia va permite configurarea urmtorilor parametrii: - culoarea de fundal a graficelor; - culoarea axelor; - culoarea suprafeelor; - valorile de pe axe; - afiarea/ascunderea valorilor de pe axe;

- culoarea valorilor de pe axe; - afiarea/ascunderea liniilor corespunztoare valorilor de pe axe (orizontale i/sau verticale); - culoarea liniilor corespunztoare valorilor de pe axe. Proiect 15. Simulai un pian. Va fi afiat claviatura. Clapele se pot apsa cu mouse sau taste. Melodia curent se va putea memora (notele se rein ca perechi de numere not durat). Meniu cu opiuni pentru: salvat melodia curent ntr-un fiier, ncrcat o melodie dintr-un fiier (fiierul se alege cu o caset), cntat melodia curent memorat, ters melodia curent memorat din memorie. Proiect 16. Viewer de imagini. Meniu cu opiuni pentru: - ales un fiier sau director cu imagini; la alegerea unui fiier, imaginea se afieaz imediat detaliat; daca se alege un director, se afieaz o fereastr cu versiuni miniaturale ale fiecrei imagini, iar la click pe una, ea se afieaz detaliat; - salvarea imaginii curent afiate detaliat ntr-un fiier cerut cu o caset. Afiarea detaliat a unei imagini se va face ntr-o fereastr (form) separat, avnd bare de scroll pentru defilarea imaginii, butoane de zoom in/zoom out, buton la apsarea cruia apare pe suprafaa imaginii o mic zon-lup care se plimb solidar cu mouse-ul (daca "se mpinge" n marginea ferestrei se face automat scroll) artnd mrit zona de sub ea. Dac la un moment dat selectm alt imagine pentru afiare detaliat, fereastra cu imaginea precedent se nchide automat. Proiect 17. Calculator de buzunar cu matrice de numere reale. Se poate seta dimensiunea matricelor. Se implementeaz operaii: schimbarea semnului unei componente, +, -, *, /, =. Tasta de ters tot numrul curent introdus (corecie). S se asigure posibilitatea de a face calcule multiple: A+B+C etc. Posibilitatea de a ncrca dintr-un fiier o matrice n loc s o tastam i de a salva ntr-un fiier matricea rezultat dup un = (sau matricea curent introdus, dac este primul operand introdus). Numele fiierelor se cer cu ferestre de dialog. Proiect 18. Editor de texte cu urmtoarele faciliti: Meniu cu: New, Open, Save, Save as, Close, Exit, Fonts (inclusiv mrime i culoare), Help contextual (se va referi la componenta curent). Toolbar configurabil (se pot aduga/elimina instrumente). Dou rigle orizontale cu care setm lungimea liniei obinuite i indentare n paragraful curent. ScrollBar vertical cu care se poate defila textul. Posibilitatea de a avea mai multe documente deschise simultan - fiecare are cte o fereastr cu rigle i scrollbar propriu, se pot permuta cu TabControl sau PageControl - uri. Copy/Cut/Paste/Delete de blocuri de text, cu posibilitatea transferrii bloculu i n

acelai document sau n altul, prin intermediul Clipboard-ului. Proiect 19. Jocul de table (backgamon). Se afieaz tabla, piesele, zarurile. Piesele sunt rotunde i pe lng ele se vede tabla (zona transparenta); ele se pot muta cu mouseul, iar la eliberare se aeaz singure centrat pe desenele triunghiulare. Zarurile se declaneaz la apsarea unui buton. Calculatorul mut aleator, dar cu respectarea regulilor. Daca omul ncearc o mutare ilegal, nu poate (piesa revine la loc). Se detecteaz victoria. Mutrile sunt reinute i la apsarea unui buton se pot salva ntr-un fiier al crui nume se cere cu o fereastr de dialog. Proiect 20. Jocul de dame. Se afieaz tabla, piesele. Piesele sunt rotunde i pe lng ele se vede tabla (zona transparenta); ele se pot muta cu mouse-ul, iar la eliberare se aeaz singure centrat pe ptraele. Calculatorul mut aleator, dar cu respectarea regulilor. Daca omul ncearc o mutare ilegal, nu poate (piesa revine la loc). Se detecteaz victoria. Mutrile sunt reinute i la apsarea unui buton se pot salva ntr-un fiier al crui nume se cere cu o fereastr de dialog. Proiect 21. S se realizeze un joc cu ntrebri de cultur general. Fiecare ntrebare va fi precedat de variantele de rspuns, iar utilizatorul va trebui s o aleag pe cea care crede ca este corect. Fiecare ntrebare trebuie sa aib un timp limitat de rspuns, dac timpul se termin se consider c nu se tie rspunsul i se va trece la urmtoarea ntrebare. La 3 rspunsuri greite jocul se termin. Se va folosi o baz de date care sa rein informaii despre utilizatori, jocurile care au fost jucate de acetia, scorurile obinute, seturile de ntrebri i variantele de rspuns corespunztoare lor. Proiect 22. Sistem chat client/server prin TCP. Proiect 23. S se realizeze o aplicaie pentru planificarea unor activiti. Aplicaia va avea o interfa grafic swing, din care vor putea fi adugate/terse/modificate activitile. Informaiile vor fi memorate ntr-o baz de date sau ntr-un fiier XML. n interfaa grafic se va afia un ceas (al sistemului), activitile vor fi semnalate cu o alarm; pentru fiecare eveniment se va memora momentul (n viitor) al anunului i un ir; cnd timpul curent a devenit >= cel al unui eveniment, el este scos din list iar irul aferent este afiat nemodal ntr-o fereastr separat; dac utilizatorul nu nchide fereastra separat pn la evenimentul urmtor, ea este nchis automat (i se nlocuiete cu noua fereastr). Proiect 24. S se realizeze o aplicaie Labirint, unde utilizatorul poate s testeze att mouse-ul ct i rapiditatea + dexteritatea proprie, parcurgnd labirintul cu ajutorul cursorului de la un punct la altul, fr s se izbeasc de pereii labirintului sau de obstacolele ce se ivesc n cale. Aplicaia va avea multe nivele de dificultate, obstacolele vor fi

generate aleator, selectndu-se din interfaa grafica numrul lor. Proiect 25. Pretty printing 2 (& syntax highlighting). Scriei o aplicaie Java, cu o interfa grafic, din care s se poate selecta un program Java (eventual "scris neuniform") i s se transforme ntr-un program Java scris respectnd regulile stilului profesionist de redactare a instruciunilor (indentare a subinstruciunilor, o singur instruciune pe un rnd, fr mai mult de o linie vid, etc.). Aplicaia va permite vizualizarea n paralel a programului generat i a sursei (scris neuniform). Se pot aduga i alte elemente pentru a personaliza stilul de formatare sau syntax highlighting la afiare. Proiect 26. Aplicaie care afieaz grafice tip pie (http://en.wikipedia.org/wiki/Pie_chart). Datele care trebuie afiate se vor introduce n aplicaie folosind un tabel cu coloane pentru semnificaie (text), valoare (numeric). Aplicaia va permite configurarea urmtorilor parametrii: - culoarea liniilor; - afiarea/ascunderea valorilor, a procentelor calculate pe baza valorilor numerice din tabel, sau a textelor corespunztoare valorilor; - legenda. In cazul afirii numai a valorilor, legenda va conine semnificaia i procentul, iar n cazul afirii textelor (semnificaiilor), legenda va conine valorile i procentele corespunztoare; - culoarea textelor corespunztoare valorilor; - culorile segmentelor de cerc corespunztoare valorilor. Proiect 27. S se implementeze o variant a jocul 5 pe linie (ntre 2 utilizatori sau utilizator calculator, caz n care acesta mut aleator, dar respectnd regulile jocului). Ctig juctorul care realizeaz primul 5 semne identice consecutive pe linie, coloan sau diagonal. Foaia pe care se lucreaz are dimensiune 20 x 20, se vor reine mutrile efectuate ntr-un joc i vor fi salvate ntr-un fiier. Se va pstra un clasament al juctorilor (n funcie de numrul de jocuri ctigate de fiecare).

ID proiect

1.

Echipa Luca Madalina Georgiana Huiu Serban Victor

Repository

2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25.

Iacob Alexandru Marius Benchea Alexandru (351) Nuta Mihai Alexandru (352) Petroianu Daniel 353 Stan Antonio 353 Vranceanu Dragos 353 Plesan Alexandru, 353 Puiu Daniel, 353 Stanica Gabriel, 353 Andrei Constantin Cristian Daniel - 351 Dumitru Mario - 351 Toma Adela 353 Osman Florentina 353 Iarina Preda Tase Raluca Elena Popescu Alexandru Vaduva Valentin Stelian Roxana Vladut Andrei 353 Untaru Robertu 353 Marius Baisan Niculescu Drago Fasie Denisa, Magla Anca Cazanaru Iuliana Birlogeanu Madalina Bisgan Maria-Lavinia, grupa 351 Apetrei Nicoleta (351) Manta Georgel-Daniel (352) Buhai Andrei Iancu Mihai Ciuchi Paula Larisa Radulescu Anda Stanescu Valentina Calin Andrei Canache Andrei Tintescu Radu Alexandru Stoichita Sebastian Ene Andreea-Daniela Crciunescu Alexandra Geageac Alexandru, Murariu Andrei, Nicu Liviu Nitu Marius Catalin Naghel Ioana Valentina Badea Razvan Constantin Michael Avram Oliver Ciobanu Alin-Ionut Chineata Sorin Cioata Mihai Jerca Vlad 352 Mihai Marin 353 Mihai Petrisor 353

https://subversion.assembla.com/svn/boun cing_balls/

https://ubdevs.visualstudio.com/DefaultCol lection/Breakout

https://bitbucket.org/adiscode/java-project

26. 27.

Pellian Malina Petrescu Adelina Ciulpan Andrei

pellianmalina@gmail.com

S-ar putea să vă placă și