Programarea Aplicatiilor Windows

Tags: C#, PAW

Lista teme si cerinte proiect - an univ. 2016/2017

Proiectul de seminar reprezinta o aplicatie .NET Windows Forms care se dezvolta pornind de la cerintele si pe baza unei teme selectate din urmatoarea lista de teme. Tema aleasa va fi stabilita impreuna cu cadrul didactic la seminar. Proiectul se realizeaza individual si se sustine in cadrul ultimului seminar, in functie de programul stabilit cu cadrul didactic de la seminar. Toate proiectele vor fi analizate cu ajutorul unei aplicatii de detectie a plagiatului la nivel de cod sursa.

Repartizare prezentare proiecte Cristian CIUREA:

Evaluare - an univ. 2016/2017

Lucrare seminar Cristian CIUREA

  • Luni, 24 aprilie 2017, ora 09:00, sala 2017, grupa 1045
  • Luni, 24 aprilie 2017, ora 10:30, sala 2017, grupa 1040
  • Marti, 25 aprilie 2017, ora 15:00, sala 2001D, an 3 + an suplimentar (doar studentii din urmatoarea lista)
  • Miercuri, 26 aprilie 2017, ora 13:30, sala 2017, grupa 1043
  • Miercuri, 26 aprilie 2017, ora 15:00, sala 2017, grupa 1039

Modalitatea de calcul a notei finale este:

SEMINAR (pondere nota finala 40%):

  • lucrare la calculator in saptamana 8 - 9; data exacta va fi stabilita de catre studenti impreuna cu profesorul de seminar; nota la lucrare are o pondere de 20% din nota finala;
  • proiect individual; nota la proiect are o pondere de 10% din nota finala;
  • alte evaluari la seminar, avand o pondere de 10% din nota finala;

EXAMEN (pondere nota finala 60%):

  • examen practic la calculator in sesiune;

REALIZAREA SI PREZENTAREA PROIECTULUI REPREZINTA CONDITIE DE INTRARE IN EXAMEN. COPIEREA PROIECTULUI IMPLICA ANULAREA TUTUROR PUNCTELOR DE LA SEMINAR.

Barem examen an 2, seria B, 2015/2016 

* actualizat pe baza celor prezentate si anuntate la curs

Modul in care este evaluat studentul la examen:

  • Nota 5 (cursurile 1 - 4):
    • realizarea de clase C# care trebuie sa contina minim 3 atribute (tipuri diferite) conform biletului de examen
    • constructori implicit si cu parametrii, destructor
    • metodele Clone si CompareTo (implementarea interfetelor ICloneable si IComparable)
    • proprietati pentru atribute;
    • tratarea exceptiilor utilizand mecanismul try: {...} catch() {...}
    • supraincarcare si supradefinire de operatori si metode inclusiv index
    • derivare si mostenire de clare, interfete, clase abstracte
    • colectii standard si generics
  • Nota 6 (cursurile 4-5):
    • definirea unui delegat si a unui event simplu in clasa; definirea unei metode externe clasei care sa poata fi abonata la event; concepte teoretice legate de evenimente si delegati, callback
    • definirea unei Aplicatii Windows Forms ce permite preluarea datelor necesare crearii unui obiect
    • controale vizuale simple (TextBox, Label, Button, ComboBox, ListView, ListBox, GroupBox, RadioButton, CheckBox, ...)
    • meniuri simple si contextuale
  • Nota 7 (cursul 7):
    • controale vizuale complexe (ListView/TreeView)
    • meniuri simple si contextuale
    • lucru cu streamuri - FileStream - salvarea/restaurarea datelor in/din fisier (manual sau utilizand mecanismul de serializare)
    • fisiere XML
    • validarea controalelor
    • Aplicatie MDI (Multiple Document Interface) - sincronizare de festre copil/ Aplicatie cu ferestre modale - transferul datelor intre formulare
  • Nota 8 (cursul 8 - 9)
    • Lucru cu baze date atat cu ...DataAdapter, DataReader cat si cu ...DbCommand
    • Lucru cu relatii intre tabele
    • Comenzi simple SQL pentru interogarea si modificarea datelor
    • Legarea controalelor vizuale de date (Databinding si Datagrid)
  • Nota 9 (cursul 9 - 10)
    • Imprimarea datelor
    • Prezentarea grafica a datelor (scalarea datelor pe contextul grafic)
    • Legarea controalelor vizuale de date (Databinding si Datagrid)
  • Nota 10 (cursul 11)
    • Clipboard+drag&drop
    • Realizarea unui control realizat de utilizator .NET Components <=> in SDK&MFC cu COM/OLE si ActiveX

Pentru asimilarea limbajului C# precum si a tehnologiilor .NET va recomandam sa parcurgeti (sa le lucrati la calculator) exemplele din carte si de la seminar cel putin o data.

Examenul se va desfasura in urmatoarele conditii:

  • fiecare student primeste un subiect si are la dispozitie 3 ore sa il rezolve;
  • pentru a promova aceasta disciplina nota din examen trebuie sa fie minim 5;
  • solutia se realizeaza in Visual Studio 2012 sau 2013 folosind limbajul C#;
  • dupa expirarea celor 3 ore sunt evaluate doar solutiile care nu au erori de compilare; solutiile cu erori de compilare sunt evaluate cu 2 indiferent de numarul de linii de cod;
  • in timpul examenului studentii pot consulta help-ul din Visual Studio 2012;
  • pentru rezolvarea elementelor de interfata windows (de la nota 6) studentii pot cere pentru consultare (maxim 15 minute) cartea "Programarea Aplicatiilor Windows";
  • NU este permisa consultarea altor materiale, web site-uri sau proiecte C#, decat cele enumerate;
  • materia pentru examen este cea anuntata in primele 2 cursuri si care este surprinsa in structura din slide-uri si din aceasta pagina (vezi zona suport curs de mai jos);
  • pentru o evaluare completa studentul trebuie sa raspunda la orice intrebare din materia cursului chiar daca elementul nu se regaseste in subiect; timpul limitat al examenului nu permite elaborarea unor subiecte care sa acopere toate elementele prezentate;

Structura curs

Structura materiei pe cursuri:

  1. Concepte Programare Orientata Obiect. Comparatie C++ vs C#
  2. Clase, obiecte, compozitie/derivare/interfete  si namespace
  3. Observer/Delegate & Windows Forms
  4. Win Forms, Controale de baza, Gestiune evenimente Mouse + Tastatura
  5. Meniuri, Controale de tip bara, Validare Controale, Fisiere
  6. Controale complexe, ListView, TreeView
  7. Lucru cu ferestre multiple, Aplicatii de tip MDI
  8. Elemente de grafica
  9. Imprimare, Drag & Drop. Clipboard
  10. ADO .NET, Controale Utilizator

Bibliografie:

  • Ion SMEUREANU, Marian DARDALA, Adriana REVEIU - Visual C# .NET, Editura CISON, Bucuresti, 2004
  • K.M. Hussain – Programming .NET with C#, Rox Publishing House, USA 2001
  • Jesse Liberty – Programming C# 2nd Edition, O’Reilly Publishing House, USA 2002
  • Tom Archer – Inside C#, Microsoft Press, USA 2001
  • Adrian Turtschi – C# .NET Web Developers Guide, Syngress Publishing House, USA 2002
  • ECMA TC39/TG2 – C# Language Specification, USA 2002

Informatii lucrare seminar

Modul in care este evaluata lucrarea:

  • Nota 2: realizarea unui proiect C# - Aplicatie Windows Forms, care trece de compilare
  • Nota 3: realizarea de clase C# care trebuie sa contina minim 3 atribute (tipuri diferite), constructori implicit si cu parametrii, destructor, proprietati pentru atribute; compilare linie de comanda + mediu (inclusiv debugger) pentru obtinerea de executabile si dll-uri;
  • Nota 4: derivarea claselor din ICloneable si IComparable pentru a implementa metodele Clone si CompareTo
  • Nota 5: implementare mecanisme try-catch, definire de exceptii;
  • Nota 6: utilizarea de colectii - ArrayList, Stack, Queue;
  • Nota 7: definirea unui delegat si a unui event simplu in clasa; definirea unei metode externe clasei care sa poata fi abonata la event; concepte teoretice legate de evenimente si delegati, callback;
  • Nota 8: realizarea unui formular ce afiseaza colectia de date prin utilizarea de diferite controale simple
  • Nota 9: incarcare de date prin intermediul unui formular secundar ce contine si controale de validare
  • Nota 10: aplicatia trebuie sa ruleze fara erori de executie si trebuie sa implementeze prelucrarile cerute

Proiect

Modul de evaluare a proiectului:

  1. proiectul se realizeaza individual;
  2. tema proiectului este data;
  3. proiectul se preda in ultima saptamana;
  4. evaluarea consta in rularea aplicatiei si testarea functionalitatii (datele de intrare trebuie validate); orice eroare sau intrerupere neasteptata a aplicatiei conduce la depunctare;
  5. copierea proiectului implica anularea tuturor punctelor obtinute la seminar.

Cerintele cu privire a realizarea proiectului:

Documentatie:

  1. Definirea si detalierea problemei
  2. Descrierea claselor necesare implementarii modelului aplicatiei
  3. Descrierea functiilor aplicatiei
  4. Scurta descriere a meniurilor

Documentatia contine obligatoriu pagina de titlu, cuprins, bibliografie si are informatia structurata pe capitole.

Elemente ce trebuie incluse in proiect in functie de cerinte:

  1. Definirea claselor necesare implementarii modelului aplicatiei:
    • minim 2 clase derivate din IClonable si IComparable;
    • clasele contin constructori si proprietati pentru atributele declarate private;
    • supraincarcari de operatori - minim 2 dintre <,>,+,-,++,--,cast, etc;
    • obligatoriu una dintre clase contine un masiv uni sau bidimensional pentru care se supraincarca index si optional foreach;
    • daca una dintre clase este o colectie se implementeaza foreach;
    • minim 2 metode de prelucrare a datelor din clase;
    • se defineste minim o interfata si o clasa abstracta;
    • implementare delegate si event (minim unul) la nivelul claselor din proiect;
    • deoarece faza de predare a proiectului are doar 0.5 puncte, lipsa a mai mult de 2 cerinte conduce la punctarea fazei cu 0 puncte
  2. clasele pot fi definite in surse diferite insa obligatoriu functia Main se gaseste intr-o clasa separata de cele ale proiectului (si la nivel de fisier sursa)
  3. in faza 1 a proiectului, arhiva contine proiectul .NET realizat in VS 2005 sau VS 2008
  4. construirea unei aplicatii functionabile pentru testarea modelului - aplicatia nu trebuie sa se blocheze sau sa genereze erori de sistem ce conduc la intreruperea executiei; - conditie de validare a proiectului.
  5. Acces la campuri prin acceleratori, interceptand tastatura
  6. Validarea datelor; salvarea/restaurarea datelor in/din fisier - daca se lucreaza cu baze de date se accepta doar scrierea in fisiere text;
  7. Dezvoltarea unei interfete cu meniuri principale si contextuale specifice domeniului
  8. Prezentarea grafica a unor date de baza sau calculate
  9. Macheta pentru completarea unui formular tipizat (sau proiectat adhoc, daca nu exista tipizat) - de preferat in Crystal Reports
  10. Imprimarea unui document
  11. Implementarea unor functii prin drag & drop + clipboard
  12. Stocarea si regasirea datelor într-o baza de date
  13. Realizarea unui control de utilizator folosit in mai multe aplicatii ale proiectului
  14. Utilizarea unui fisier de tip XML
  15. Macheta pentru completarea unui formular tipizat (sau proiectat adhoc, daca nu exista tipizat) - de preferat in Crystal Reports
  16. Binding intre date si controale


Resurse generale:

Resurse curs/seminar Cristian Ciurea 2016/2017:

Resurse curs/seminar Catalin Boja 2013/2014:

Resurse seminar Cristian TOMA 2013/2014:

Resurse seminar Claudiu VINTE 2013/2014: