Documentatie-1

12
Colegiul Naţional “Vasile Alecsandri” Galaţi PROIECT DE ATESTAT PROFESIONAL LA INFORMATICĂ TITLUL LUCRĂRII: Spânzur ătoarea Elev: Iessensky Andrei Victor Profesor îndrumãtor Voinea Mirela

description

doc doc

Transcript of Documentatie-1

  • 5/24/2018 Documentatie-1

    1/12

    Colegiul Naional Vasile Alecsandri Galai

    PROIECT

    DE ATESTAT

    PROFESIONAL

    LA INFORMATIC

    TITLUL LUCRRII:

    Spnzurtoarea

    Elev:

    Iessensky Andrei Victor

    Profesor ndrumto

    Voinea Mire

  • 5/24/2018 Documentatie-1

    2/12

    CUPRINS

    1.Motivatia2.C++ Builder3.Interfata4.Algoritm5.Implementari viitoare6.Bibliografie

  • 5/24/2018 Documentatie-1

    3/12

    MOTIVATIA

    Lucrarea de fata isi propune sa studieze functionalitatea, eficienta si utilitatealimbajului de programare C++ prin compunerea unui cod si compilarea acestuia in practica.

    Problema aleasa ca domeniu de studiu este jocul Spanzuratoarea, un joc emblematic pentutilizatorii de calculator din toate grupele de varsta, iar grafica pentru ilustrarea spanzuratoeste realizata din caractere simple. In continuare va voi prezenta caracteristicile si regulile

    jocului ilustrat:

    Informatii utile:Jocul Spanzuratoareaa fost adaptat pentru un singur utilizator al aplicatiei Se poate ghici atat o litera, cat si un grump de litere (sir de caractere)

    - Cuvntul ce trebuie ghicit este reprezentat de un ir de linii, fiecare linie reprezentnd oliter acuvntului.

    - Sunt oferite ca ajutor prima si ultima litera a cuvantului.

    - Dac juctorul care ghicete sugereaz o liter ce se afl n cuvnt, programul completeazspatiile cu litera corespunzatoare n toate poziiile unde aceasta apare.

    - Dac litera nu se afl n cuvnt, programul deseneazun element din diagramaspnzurtoarea.

    - Limita de greseli este de: 8

    Jocul se ncheie cnd:

    Juctorul care ghicete completeaz tot cuvntul, sau l ghicete exact.

    Este completata diagrama.

  • 5/24/2018 Documentatie-1

    4/12

    C++ BUILDER

    C++Buildereste un mediu de dezvoltare rapid a aplicaiilor produs de filiala CodeGear a

    Embarcadero Technologies pentru scrierea programelor n limbajul de programare C++. C++Builder

    combinbiblioteca de componente vizuale i un IDE scris n Delphi, cu un compilator C++. Ciclul de dezvolt

    este n aa fel nct Delphi primete primul mbuntiri semnificative, urmat de C++Builder. Majoritatea

    componentelor dezvoltate n Delphi pot fi folosite n C++Builder fr modificri, dar nu i invers.

    C++Builder include unelte care permit dezvoltarea vizual bazat pe drag-and-drop, fcnd

    programarea mai facil prin implementarea unui GUI builderWYSIWYGn IDE.

    C++Builder a fost iniial lansat numai pentru platforma Microsoft Windows. Versiunile urmtoare includeau

    Borland CLX, o librrie cross-platform bazat pe Qt, pentru dezvoltare vizual, care funcioneaz pe

    platformele Windows i Linux.

    n 2003, Borland a lansat C++BuilderX (CBX), scris pe acelai framework ca JBuilder i purta foarte puine

    asemnri cu C++Builder sau Delphi. A fost conceput pentru dezvoltarea programelor de dimensiuni mari

    pentru ntreprinderi. Cu toate acestea, nu a avut succes comercial. La sfritul anului 2004, Borland a anun

    c va continua s lucreze la clasicul C++Builder si l va distribui mpreuna cu Delphi, abandonnd C++Builde

    Dup aproximativ un an de la anun, Borland a lansat Borland Developer Studio 2006, un pachet robust car

    include Delphi, C++Builder i C#Builder.

    n 2007, Borland a lansat C++Builder 2007, cu suport complet API pentru Microsoft Vista, conformitate spor

    pentru ANSI C++, compilare prin IDE pn la 500% mai rapid, suport pentru MSBuild, arhitectura de baze

    date DBX4 i VCL pentru Web, care suport AJAX. API-ul pentru Vista include aplicaii cu teme i suport

    VCL pentru Aero i spaiul de lucru Vista. CodeGear RAD Studio 2007 include C++Builder 2007 i Delphi. To2007, Borland a renviat brand-ul Turbo i a lansat dou ediii Turbo de C++Builder: Turbo C++

    Professional i Turbo C++ Explorer (gratuit), bazat pe BorlandC++Builder 2006.

    C++Builder 2009 a fost lansat n august 2008, iar printre cele mai semnificative mbuntiri se numr supo

    Unicode complet n VCL i RTL, implementare a standardului C++0x, suport complet ITE, componente nati

    Ribbon i includerea librriei Boost.

    O versiune viitoare a CodeGear C++Builder (cu numele de cod Commodore) va avea suport pentru x86-64

    va crea cod nativ x86-64.

    C++Builder a fost iniial lansat numai pentru platforma Microsoft Windows. Versiunile urmtoareincludeau Borland CLX, o librrie cross-platform bazat pe Qt, pentru dezvoltare vizual, care funcioneazpe platformele Windows i Linux.

    n 2003, Borland a lansat C++BuilderX (CBX), scris pe acelai framework ca JBuilder i purta foartepuine asemnri cu C++Builder sau Delphi. A fost conceput pentru dezvoltarea programelor de dimensiunmari pentru ntreprinderi. Cu toate acestea, nu a avut succes comercial. La sfritul anului 2004, Borland aanunat c va continua s lucreze la clasicul C++Builder si l va distribui mpreuna cu Delphi, abandonndC++BuilderX.

    http://ro.wikipedia.org/wiki/VCLhttp://ro.wikipedia.org/wiki/WYSIWYGhttp://ro.wikipedia.org/wiki/WYSIWYGhttp://ro.wikipedia.org/wiki/VCL
  • 5/24/2018 Documentatie-1

    5/12

    INTERFATA

    Literele folosite pentru a ghici cuvantul

    Click Start pentru a incepe jocul

    //------------------------------------------------------------------------------------------------------------------------

    #include

    #pragma hdrstop

    #include Spanzuratoarea.h

    //------------------------------------------------------------------------------------------------------------------------

    #pragma resource *.dfm

    using namespace std;

    TForm1 *Form1;

    //------------------------------------------------------------------------------------------------------------------------

    ----------------------------------

    __fastcall TForm1::TForm1(TComponent* Owner)

    : TForm(Owner)

    //Declararea butoanelor si incarcarea primei imagini

    (exemplu)

    {

    butoaneLitera[0] = ButtonA;

  • 5/24/2018 Documentatie-1

    6/12

    indexPoza = 1;

    Image->Picture->LoadFromFile(img\\1.bmp);

    }

    //Generarea butoanelor(exemplu)

    //------------------------------------------------------------------------------------------------------------------------

    ----------------------------------

    void __fastcall TForm1::ButtonAClick(TObject *Sender)

    {

    butonApasat(A);

    }

    //------------------------------------------------------------------------------------------------------------------------

    //Generarea interfetei jocului

    void __fastcall TForm1::ButtonStartClick(TObject *Sender)

    {

    jocStartat = true;

    indexPoza = 1;

    vector cuvinte;

    LabelRezultat->Caption = ;LabelCuvantVizibil->Caption = ;

    LabelCuvant->Caption = ;

    for(int index = 0; index < NUMAR_LITERE; index++)

    {

    butoaneLitera[index]->Enabled = true;

    }

    FILE *fr;char linie[80];

    fr = fopen (spanzuratoarea.txt, rt);

    (fr != NULL)if

    {

    while(fgets(linie, 80, fr) != NULL)

    {

    cuvinte.push_back(linie);

  • 5/24/2018 Documentatie-1

    7/12

    }

    fclose(fr);

    }

    if(cuvinte.size() == 0)

    {

    MessageBox(0, (LPSTR)Fisierul spanzuratoarea.txt este gol!

    ,Error

    ,

    MB_ICONWARNING | MB_OK);

    cuvant = ;

    }

    else

    {

    cuvant = cuvinte[random(cuvinte.size())].UpperCase().Trim();

    }

    if(cuvant.Length() > 0){

    char* pCuvant = cuvant.c_str();

    butoaneLitera[pCuvant[0] - ASCII_OFFSET]->Enabled = false;

    butoaneLitera[pCuvant[strlen(pCuvant) - 1] - ASCII_OFFSET]->Enabled = false;

    refreshLabelString();

    }

    else

    {

    jocStartat = false;}

    }

    //------------------------------------------------------------------------------------------------------------------------

    void TForm1::refreshLabelString()

    {

    AnsiString labelString = ;

    char* c = cuvant.c_str();int litereCorecte = 0;

  • 5/24/2018 Documentatie-1

    8/12

    Pagina de pornire a jocului

    Mesajul afisat dupa ghicirea cuvantului

    Cuvantul ce trebuia ghicit

    // formateaza cuvantul ce va fi afisat (C A _ C _ _ A _ _ R)for(int index = 0; index < strlen(c); index++)

    {

    if(!butoaneLitera[c[index] - ASCII_OFFSET]->Enabled)

    {

    AppendStr(labelString, c[index]);

    AppendStr(labelString, );

    litereCorecte++;

    }else

    {

    AppendStr(labelString,_ );

    }

    }

    // afiseaza cuvantul formatat

    LabelCuvant->Caption = labelString;

    // verifica daca a castigat

    if(litereCorecte == strlen(c))

    {

  • 5/24/2018 Documentatie-1

    9/12

    LabelRezultat->Caption = Ai castigat!;

    jocStartat = false;

    }

    else

    {

    O incercare nereusita

    // afiseaza poza corespunzatoare

    statutului jocului

    AnsiString fileName = img\\;

    AppendStr(fileName, indexPoza);

    AppendStr(fileName, .bmp);

    Image->Picture->LoadFromFile(fileName);

    // am ajuns la ultima poza, jocul e pierdut

    if(indexPoza == NUMAR_POZE)

    {labelString = ;

    LabelRezultat->Caption = Ai pierdut!;

    for(int index = 0; index < strlen(c); index++)

    {

    AppendStr(labelString, c[index]);

    AppendStr(labelString,);

    }

  • 5/24/2018 Documentatie-1

    10/12

    LabelCuvantVizibil->Caption = labelString;

    jocStartat = false;

    }

    }

    }

    //------------------------------------------------------------------------------------------------------------------------

    void TForm1::butonApasat(char litera)

    {

    if(jocStartat)

    {

    if(cuvant.Pos(litera) == 0)

    {

    // trece la urmatoarea poza

    indexPoza++;

    }

    // dezactiveaza butonul

    butoaneLitera[litera - ASCII_OFFSET]->Enabled=false;

    // afiseaza interfata noua

    refreshLabelString();

    }

    }

    //------------------------------------------------------------------------------------------------------------------------

    ALGORITM

  • 5/24/2018 Documentatie-1

    11/12

    IMPLEMENTARI VIITOARE

    Pe viitor, acest joc poate fi dezvoltat ca

    aplicatie pentru tablete sau telefoaneinteligente.

    BIBLIOGRAFIE

  • 5/24/2018 Documentatie-1

    12/12

    http://ro.wikipedia.org/wiki/Spnzurtoare_(joc)

    http://dexonline.ro/moara

    http://dexonline.ro/cuvantul-lunii

    http://dexonline.ro/cuvantul-zilei

    http://dexonline.ro/spanzuratoarea

    http://ro.wikipedia.org/wiki/Sp%C3%A2nzur%C4%83toare_(joc)http://ro.wikipedia.org/wiki/Sp%C3%A2nzur%C4%83toare_(joc)http://dexonline.ro/moarahttp://dexonline.ro/moarahttp://dexonline.ro/cuvantul-luniihttp://dexonline.ro/cuvantul-luniihttp://dexonline.ro/cuvantul-zileihttp://dexonline.ro/cuvantul-zileihttp://dexonline.ro/spanzuratoareahttp://dexonline.ro/spanzuratoareahttp://dexonline.ro/spanzuratoareahttp://dexonline.ro/cuvantul-zileihttp://dexonline.ro/cuvantul-luniihttp://dexonline.ro/moarahttp://ro.wikipedia.org/wiki/Sp%C3%A2nzur%C4%83toare_(joc)