You are on page 1of 3

Detyre_kursi

Teknikat dhe Gjuhet e Programimit


Detyra e kursit konsisiton ne kodimin(gjuha c) e nje loje te thjeshte qe i jep
mundesin perdoruesit te provoje te gjeje nje fjale te rastesishme, dhe te
kryej disa detyra si shtim lojtari, fshirje lojtari, afishim pikesh mesatare,
minimale dhe maksimale. Kopjimin e te dhenave ne nje file te ri, kerkim per
te dhenat me ane te ID si dhe regjistrimin ose hyrjen ne loje te lojtareve.
Per kerkesat e mesiperme grupi yne ka perdorur funksione te vecanta ku nje
prej tyre thirret nga main(), perkatesisht funksioni void kryefaqia(), dhe
me pas funksionet therrasin njeri-tjetrin.
Funksioni kryefaqia() [rrjeshti 125] permban disa elemente grafike qe i
shfaqen perdoruesit kur e hap programin per here te pare, dhe ku pyetet ai
nqs eshte I regjistruar apo jo, ne varesi te pergjigjes ky funksion therret
funksionin regjistrim() ose hyrje().
Ne funksionin regjistrim() [rrjeshti 348] kerkohen nga perdoruesi te dhenat
personale dhe ruhen keto te dhena ne nje skedar me emrin: lojtaret.txt ,
njekohesisht kur merren te dhenat kontrollohet ID e dhene nga perdoruesi
dhe nqs ekziston nje lojtar ne file me kete ID ateher i kerkohet perdoruesit
nje ID tjeter. Kontrollohet edhe fjalkalimi I cili nuk duhet te jete me pak se 6
karaktere dhe duhet te permbaj vetem numra, per kete problem antaret e
grupit paten idene e nje funksioni te vecante chekfjalkalim() [rreshti 420]
qe merr si argument fjalkalimin dhe kontrollonte nqs ai ishte I sakte.
Funksioni hyrja() [rrjeshti 240] lexon ne skedarin: lojtaret.txt emrat dhe
fjalkalimet perkatese dhe I kontrollon keto te dhena me inputet e
perdoruesit, nqs perputhen ateher ai futet ne loje nqs jo I jepet mundesia per
tu regjistruar, ose provuar perseri nqs ka bere ndonje gabim.
Loja() [rrjeshti 446] eshte funksioni qe I jep mundesin perdoruesit te luaj
lojen, duke gjeneruar rastesisht nje nga 35 fjalet qe lexon nga nje skedar ku
fjalet jane te ndara me hapsire. Me pas lexon nga tastiera nje shkronje dhe e
ruan ne nje string, nqs shkronja e shkruar gjendet ne fjale, ateher e shfaq
kete shkronje dhe inkrementon piket me nje, nqs jo dekrementohet
prova(jetet) e inicializuar fillimisht me 12, me nje. Kur provat arrijn zero ose
kur perdoruesi shkruan fjalen dil dilet nga loja dhe te dhenat e lojes
(id_loja,piket,id_lojtar) ruhen ne nje skedar: loja.txt . ID_loja rritet me nga nje
sa here perdoruesi luan nje loje te re duke lexuar Id e lojes paraardhese dhe

duke e inkrimentuar me nje,ndersa id_lojtar lexohet kur behet hyrja dhe


kopjohet ne nje variable global per tu perdorur ne kete funksion.
*Per ndertimin e funksionit loja() per pjesen grafike eshte marre pjeserisht nga Stack
Overflow ne nje projekt te ngjashme nje pjese kodi qe shfaq shkronjat e pagjetura ende me
_ nga [rrjeshti 475 ] deri ne [rrjeshti 500].

Detyrat e tjera qe duhet te kryente ky program realizohen nga funksionet e


meposhteme:
Kerkim() [rreshti 654], lexon nga perdoruesi ID dhe pasi lexon skedarin:
lojtaret.txt kontrollon nqs ID e dhene nga perdoruesi perputhet me nje nga ID
ne file nqs po te gjitha te dhenat qe I korrespondojne kesaj ID, pra emrimbiemri-mosha-datelindja, printohen ne ekran. Nqs ID e dhene nga
perdoruesi nuk I korrespondon asnje lojtari e skedar, printohet ky fakt.
Shtim() [rreshti 692], per kete funkson meqe me pare kemi krijuar nje
funksion te ngjashem qe regjistron lojtaret e rinj, e kemi pershtatur qe
funksioni shtim() te therrasi kete funksion dhe te realizoj regjistrimin, pra
shtimin e nje antari te ri.
Printim() [rrjeshti 699] , ky funksion lexon nga skedari: lojtaret.txt emrat e
gjithe lojtareve dhe I afishon ato ne ekran, ne fakt si ne kete funksion edhe
ne te tjeret lexohen te gjitha te dhenat e skedarit dhe perdoren vetem ato qe
na nevojiten.
Rezultat_lart_ulet() [rreshti 773] , ky funksion lexon nga skedari: loja.txt te
gjitha te dhenat dhe krahason piket duke ruajtuar ato max ne nje variable
max dhe ato minimale min per id qe I korrespondon rezultatit maximal dhe
minimal eshte ndertuar nje funksion id_emer()[rrjeshti 833] qe merr si
argument id_lojtari dhe gjen emrin korespondues te lojtarit ne skedarin:
lojtaret.txt .Me pas si rezultatet maksimale dhe emrat e lojtareve qe I kane
arritur keto rezultate afishohen ne ekran, duke I afishuar te gjithe lojtaret qe
kane rezultate te barabarta me maksimumin ose minimumin.
Mesatare() [rrjeshti 860], ky funksion kryen detyren e thjeshte te leximit te
tera pikeve nga skedari: loja.txt llogarit shume dhe duke e pjestura me nr e
lojrave nxjerr mesataren, kete rezultat e afishon.
Kopjim() [rreshti 888], ky funksion I kerkon perdoruesit emrin e nje skedari
dhe pasi e krijon kete skedar kopjon ne te te gjithe te dhenat e skedarit:
lojtaret.txt . Kjo realizohet duke I kopjuar fillimisht keto te dhena ne disa
matrica me fscanf(); dhe me pas me fprintf(); jane hedhur keto te dhena ne
skedarin e ri.

Skedari fjalet.txt qe ruan 35 fjale te ndryshme te ndara me hapsire merret si


argument nga rreshti I komandes.
Per realizim e kesaj detyre kursi grupi yne i eshte permbajtur deri ne
detaje kerkeses se dhene me perjashtim te faktit qe ne main() eshte dhene
argument vetem per nje skedar: fjalet.txt dhe jo per dy skedaret e tjere
lojtaret.txt dhe loja.txt sic kerkohej.

*Antaret e grupit gjate testimit te programit vune re nje problem, lejimi i regjistrimit te dy
perdoruesve me te njejtin emer sillte problem ne hyrjen ne loje sepse programi nuk e ben
dallimin midis lojtareve dhe lexon passwordin vetem per lojtarin e regjistruar me pare.

You might also like