Sunteți pe pagina 1din 5

SUBIECTE SD 2013

La examen vei primi dou subiecte din lista de mai jos. Combinaia de dou subiecte va
fi generat n mod aleatoriu. Timpul de rezolvare pentru ambele subiecte va fi de 2 ore.
Modul de interpretare a subiectelor este urmtorul:

o cerina (1., 2., ...) poate avea mai multe subpuncte notate cu litere (a., b., ...); n
acest caz, un subiect este de exemplu: 1.a.

de asemenea, oriunde este caracterul /, la generarea subiectelor se va alege doar


una din opiunile respective.

un exemplu de subiect generat este 7.b cu BinaryFormatter i TcpChannel.

Lista de subiecte

[L2 - Delegai, evenimente, generice, fire de execuie]


1. Realizai o aplicaie care s permit citirea a n fiiere text i scrierea ntr-un alt fiier.
Citirea i scrierea se vor face linie cu line. Fiierele vor fi citite n paralel.
a. De fiecare dat cnd a fost citit o linie de text, este aruncat un eveniment care
este prins de entitatea care face scrierea.
b. Pentru citire se vor folosi fire de execuie create cu ajutorul clasei Thread.
c. Citirea trebuie s se fac asincron prin utilizarea unui delegat asincron.
[L3 - Sincronizare]
2. Realizai o aplicaie care s creeze n fire de execuie productor (valoare lui n este
citit de la tastatur). Fiecare fir de execuie productor va genera la fiecare 300
milisecunde un ir de caractere format din concatenarea id-ului firului respectiv i
un numr aleatoriu ntre 0 i 1000. irurile vor fi introduse ntr-o coad generic
comun (System.Collections.Generic.Queue). Un fir de execuie consumator va
extrage irurile din coad i le va scrie ntr-un fiier text. Pentru a crea firele de
execuie se va folosi clasa Thread / ThreadPool (QueueUserWorkItem) /
BackgroundWorker, iar pentru sincronizare se va folosi clasa Monitor / Mutex.
[L4 - Socket-uri]

3. Realizai o aplicaie client-server care s suporte mai muli clieni.


a. Serverul trebuie s fie de tip multicast-echo: orice mesaj trimis de client ajunge la
toi clienii (inclusiv la cel care a trimis mesajul). Pentru implementare se vor
folosi socket-uri Tcp i metodele blocante Send() i Receive().
b. Serverul trebuie s fie de tip echo: orice mesaj trimis de client ajunge napoi la
client. Pentru implementare se vor folosi socket-uri Tcp, metoda blocant Send() i
metoda BeginReceive() pentru recepionarea asincron a datelor att la server ct
i la client.
c. Serverul trebuie s fie de tip echo: orice mesaj trimis de client ajunge napoi la
client. Pentru implementare se vor folosi socket-uri Tcp, metoda blocant Send() i
metoda BeginReceive() pentru recepionarea asincron a datelor att la server ct
i la client. Acceptarea conexiunii cu un client trebuie realizat asincron prin
metoda BeginAccept() din clasa Socket.
[L6 - XML, L2 - generice]
4. Realizai o aplicaie care s permit serializarea i deserializarea n format XML a
unei liste de perechi de valori, precum i arhivarea i dezarhivarea listei respective.
O pereche de valori este reprezentat de clasa Pair<T,U> care folosete generice.
Fiierul XML va conine i tipul prii reale i a prii imaginare a valorilor stocate.
Tipul celor dou valori din Pair poate fi o clas oarecare, nu neaprat unul dintre
tipurile de baz (string, int, ). Pentru determinarea tipului de dat n urma
deserializrii, se va folosi Reflection.
[L6 - XML]
5. Realizai o aplicaie folosind Windows Forms care s gestioneze o list de cri.
Pentru o carte se vor reine urmtoarele informaii: titlu, autor, isbn, an apariie i
editur. Aplicaia trebuie s permit adugarea de cri noi, tergerea crilor,
precum i editarea lor. Crile sunt reinute ntr-un fiier XML care va putea fi salvat
i ncrcat din interfa. Problema trebuie rezolvat fr a folosi colecii sau o clas
care s reprezinte o carte; se va opera direct cu XML-ul. Scrierea documentului XML
se va face folosind clasa XmlDocument/ XmlWrite, iar citirea se va face folosind clasa
XmlDocument/ XPathNavigator/ XmlReader.
[L7 - MSMQ]
6. Realizai dou aplicaii care s utilizeze serviciul de mesaje din Windows (MSMQ).
Prima aplicaie va scrie n MSMQ obiecte de tipul Student (care va conine cmpurile:
nume, prenume i grupa) la fiecare 3 secunde, iar a doua va citi datele n mod

asincron i le va afia la consol. Se vor folosi formatorul BinaryMessageFormatter/


XmlMessageFormatter i canalul de comunicaie TcpChannel/ HttpChannel.
[L8 - Remoting, L9 - ASP .NET]
7.
a. Realizai un serviciu Web (care s ruleze pe portul 12345) i o aplicaie client care
s permit realizarea operaiilor cu numere complexe.
b. Realizai un server care expune un obiect wellknown (SAO) n modul Singleton/
SingleCall i un client care utilizeze obiectul respectiv pentru a permite realizarea
operaiilor cu numere complexe. Implementarea va folosi formatorul binar
(BinaryFormatter)/ SOAP (SoapFormatter) i canalul TCP (TcpChannel)/ HTTP
(HttpChannel).
c. Realizai un server care expune un obiect activat de client (CAO) i un client care
utilizeze obiectul respectiv pentru a permite realizarea operaiilor cu numere
complexe. Implementarea va folosi formatorul binar (BinaryFormatter)/ SOAP
(SoapFormatter) i canalul TCP (TcpChannel)/ HTTP (HttpChannel).
Pentru aceasta se va folosi o clas Complex n care vor fi reinute partea real i cea
imaginar a unui numr complex n format double. De asemenea, vor exista metode
de adunare, nmulire i calcularea modului, care vor fi expuse ca servicii. Fiecare
calcul efectuat va fi reinut sub forma unui ir de caractere ntr-o list generic (care
conine elemente de tip string), iar la apelarea unui serviciu (listaOperatii) se va
returna lista respectiv. Exemplu de intrare n list: (5+7*i)-(8-4*i).
[L8 - Remoting, L9 - ASP .NET]
8.
a. Realizai un serviciu Web (care s ruleze pe portul 12345) i o aplicaie client care
s permit notarea studenilor la diverse materii. Serviciile care vor fi disponibile
sunt:
b. Realizai un server care expune un obiect wellknown (SAO) n modul Singleton/
SingleCall i un client care utilizeze obiectul respectiv. Implementarea va folosi
formatorul binar (BinaryFormatter)/ SOAP (SoapFormatter) i canalul TCP
(TcpChannel)/ HTTP (HttpChannel). Metodele din obiectul remote sunt:
c. Realizai un server care expune un obiect activat de client (CAO) i un client care
utilizeze obiectul respectiv. Implementarea va folosi formatorul binar
(BinaryFormatter)/ SOAP (SoapFormatter) i canalul TCP (TcpChannel)/ HTTP
(HttpChannel). Metodele din obiectul remote sunt:

adaugaMaterie(nume) => idMaterie (generat de server),

adaugaStudent(nume, grupa) => idStudent (generat de server),

adaugaNota(nota, idStudent, idMaterie),

returneazaNote(idMaterie) => o list de perechi numeStudent-nota (se poate


folosi o structura de tip Dictionary),

returneazaStudenti(grupa) => o lista cu numele studenilor din grupa


respectiv.

[L9 - ASP.NET, L2 - Generice]


9.
a. Realizai o aplicate Web care s permit vizualizarea, adugarea i editarea
crilor dintr-o bibliotec.
b. Realizai un serviciu Web (care s ruleze pe portul 12345) i o aplicaie client care
s permit vizualizarea, adugarea i editarea crilor dintr-o bibliotec.
c. Realizai un server care expune un obiect wellknown (SAO) n modul Singleton/
SingleCall i un client care utilizeze obiectul respectiv pentru a permite
vizualizarea, adugarea i editarea crilor dintr-o bibliotec. Implementarea va
folosi formatorul binar (BinaryFormatter)/ SOAP (SoapFormatter) i canalul TCP
(TcpChannel)/ HTTP (HttpChannel).
d. Realizai un server care expune un obiect activat de client (CAO) i un client care
utilizeze obiectul respectiv pentru a permite vizualizarea, adugarea i editarea
crilor dintr-o bibliotec. Implementarea va folosi formatorul binar
(BinaryFormatter)/ SOAP (SoapFormatter) i canalul TCP (TcpChannel)/ HTTP
(HttpChannel).
Crile vor fi reinute la server ntr-o list generic care va conine obiecte de tip
Carte (id, titlu, autor, anAparitie).
[L11 - Interoperabilitate COM]
10. Realizai o aplicaie care s utilizeze funcia Win32 API Beep (definit n kernel32.lib)
pentru a reda sunete. Frecvenele i duratele sunetelor sunt citite din trei fiiere text.
Utilizai fire de execuie pentru a reda sunetele pe msur ce sunt citite n paralel din
cele trei fiiere text.
[L12 - Internaionalizare]
11. Realizai o aplicaie Windows Forms care s suporte dou limbi de redare a interfeei
grafice (romn i englez). Aplicaia trebuie afieze un formular de introducere a
informaiilor despre o persoana (nume, prenume, varsta, cnp), i, de asemenea,
trebuie s existe posibilitatea de a schimba limba de redare a aplicaiei. Pentru

aceasta se vor folosi fiiere de resurse n format text/ resx care vor fi compilate n
assembly-uri satelit. Clasele necesare se gsesc n namespace-ul System.Globalization
(CultureInfo, ResourceManager).

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