Aprendendo a usar classes em C++

Publicado por Fernando Krein Pinheiro (última atualização em 08/06/2011)

[ Hits: 7.593 ]

Homepage: www.ferpinheiro.wordpress.com

Download Locadora.cpp




Esse problema foi dado na disciplina de Linguagem de Programação II C++.

/*5- Crie uma classe Filme, com campos para:

Código do Filme (caracteres alfanuméricos)

Título do Filme

Categoria (que pode ser Aventura, Ficção, etc.)

Quantidade (inteiro)

Alugados (inteiro)

Disponivel (Sim/Não)

Além do método construtor, crie os seguintes métodos:

locar, que não recebe parâmetros e acerta o campo Disponivel para Não;

devolver, que não recebe parâmetros e acerta o campo Disponível para Sim.

Crie a classe Pessoa com os atributos codigo, nome, endereco e com os métodos set e gets correspondentes.  Também implemente o construtor.

Crie a classe Locadora que simule um acervo de 20 filmes ( Filme filmes[20]) e então faça uma pessoa ser capaz de locar alguns filmes e em seguida devolve-los*/

  



Esconder código-fonte

#include <iostream>



using namespace std;

/*-----------------------------------------------------------------------------*/

class filme

{

    private:

        string codigo;

        string titulo;

        string categoria;

        int quantidade;

        int alugado;

        int disponivel;

    public:

        filme()

        {

            codigo="NULL";

            titulo="NULL";

            categoria="NULL";

            quantidade=0;

            alugado=0;

            disponivel=0;

        }

        void set_codigo(string);

        void set_titulo(string);

        void set_categoria(string);

        void set_quantidade(int);

        void set_alugado(int);

        void set_disponivel(int);

        string get_codigo();

        string get_titulo();

        string get_categoria();

        int get_quantidade();

        int get_alugado();

        int get_disponivel();

        void set_filme(string, string, string, int, int, int);

        void get_filme(string *, string *, string *, int *, int *, int *);

        void loca();

        void devolve();

};

void filme::set_codigo(string cod){codigo=cod;}

void filme::set_titulo(string tit){titulo=tit;}

void filme::set_categoria(string cat){categoria=cat;}

void filme::set_quantidade(int n){quantidade=n;}

void filme::set_alugado(int n){alugado=n;}

void filme::set_disponivel(int n){disponivel=n;}

string filme::get_codigo(){return codigo;}

string filme::get_titulo(){return titulo;}

string filme::get_categoria(){return categoria;}

int filme::get_quantidade(){return quantidade;}

int filme::get_alugado(){return alugado;}

int filme::get_disponivel(){return disponivel;}

void filme::set_filme(string codigo, string titulo, string categoria, int quantidade, int alugado, int disponivel)

{

    set_codigo(codigo);

    set_titulo(titulo);

    set_categoria(categoria);

    set_quantidade(quantidade);

    set_alugado(alugado);

    set_disponivel(disponivel);

}

void filme::get_filme(string *codigo, string *titulo, string *categoria, int *quantidade, int *alugado, int *disponivel)

{

    *codigo=get_codigo();

    *titulo=get_titulo();

    *categoria=get_categoria();

    *quantidade=get_quantidade();

    *alugado=get_alugado();

    *disponivel=get_disponivel();

}

void filme::loca()

{

    set_disponivel(0);

}

void filme::devolve()

{

    set_disponivel(1);

}

/*-----------------------------------------------------------------------------*/

class pessoa

{

    filme film;

    private:

        string codigo;

        string nome;

        string rua;

    public:

        pessoa()

        {

            codigo="NULL";

            nome="NULL";

            rua="NULL";

        }

        void set_codigo(string);

        void set_nome(string);

        void set_rua(string);

        void set_dados(string, string, string);

        string get_codigo();

        string get_nome();

        string get_rua();

        void get_dados(string *, string *, string *);

};

void pessoa::set_codigo(string cod){codigo=cod;}

void pessoa::set_nome(string nom){nome=nom;}

void pessoa::set_rua(string ru){rua=ru;}

void pessoa::set_dados(string codigo, string nome, string rua)

{

    set_codigo(codigo);

    set_nome(nome);

    set_rua(rua);

}

string pessoa::get_codigo(){return codigo;}

string pessoa::get_nome(){return nome;}

string pessoa::get_rua(){return rua;}

void pessoa::get_dados(string *codigo, string *nome, string *rua)

{

    *codigo=get_codigo();

    *nome=get_nome();

    *rua=get_rua();

}

/*-----------------------------------------------------------------------------*/

class locadora

{

        filme film[20];

        pessoa pess[10];

    private:

    public:

        locadora()

        {

        }

        void set_filme(string, string, string, int, int, int);

        void set_pessoa(string, string, string);

        void get_filme(string *, string *, string *, int *, int *, int *, int x);

        void get_pessoa(string *, string *, string *, int);

        void aluga_filme(int );

        void devolve_filme(int );

        int localiza_filme(string);

        int localiza_pessoa(string);

};

void locadora::set_filme(string codigo, string titulo, string categoria, int quantidade, int aluga, int disponivel)

{

    for(int x=0;x<20;x++)

    {

        if(film[x].get_codigo()=="NULL")

        {

            film[x].set_filme(codigo, titulo, categoria, quantidade, aluga, disponivel);

            x=30;

        }

    }

}

void locadora::set_pessoa(string codigo, string nome, string rua)

{

    for(int x=0;x<10;x++)

    {

        if(pess[x].get_codigo()=="NULL")

        {

            pess[x].set_dados(codigo, nome, rua);

            x=20;

        }

    }

}

void locadora::get_filme(string *codigo, string *titulo, string *categoria, int *quantidade, int *aluga, int *disponivel, int x)

{

    film[x].get_filme(codigo, titulo, categoria, quantidade, aluga, disponivel);

}

void locadora::get_pessoa(string *codigo, string *nome, string *rua, int x)

{

    pess[x].get_dados(codigo, nome, rua);

}

int locadora::localiza_filme(string titulo)

{

    for(int x=0; x<20;x++)

    {

        if(film[x].get_titulo()==titulo)

        {

            return x;

        }

    }

    return 30;

}

int locadora::localiza_pessoa(string nome)

{

    for(int x=0;x<10;x++)

    {

        if(pess[x].get_nome()==nome)

        {

            return x;

        }

    }

    return 30;

}

void locadora::aluga_filme(int a)

{

    film[a].loca();

}

void locadora::devolve_filme(int a)

{

    film[a].devolve();

}

/*-----------------------------------------------------------------------------*/

int main()

{

    locadora loca;

    system("color 0a");

    char op;

    string codigo, nome, rua, titulo, categoria;

    int a, b, c, aux;

    do

    {

        system("cls");

        cout<<"[1] Inserir\n[2] Localizar\n[3] Locar\n[4] Devolver\n[0] KILL\nOpcao [ ]\b\b";

        cin>>op;

        switch(op)

        {

            case'1':

                do

                {

                    system("cls");

                    cout<<"Inserir\n[1] Pessoa\n[2] Filme\n[0] Voltar\nOpcao [ ]\b\b";

                    cin>>op;

                    switch(op)

                    {

                        case'1':

                            system("cls");

                            cout<<"Pessoa\nCodigo: ";

                            cin>>codigo;

                            cout<<"Nome: ";

                            cin>>nome;

                            cout<<"Rua: ";

                            cin>>rua;

                            loca.set_pessoa(codigo, nome, rua);

                        break;

                        case'2':

                            system("cls");

                            cout<<"Filme\nCodigo: ";

                            cin>>codigo;

                            cout<<"Titulo: ";

                            cin>>titulo;

                            cout<<"Categoria\n[1] Acao [2] Aventura [3] Romance [4] Pudor [5] Lagrimas\nOpcao [ ]\b\b";

                            cin>>op;

                            cout<<"Quantidade: ";

                            cin>>a;

                            do

                            {

                                cout<<"Alugados: ";

                                cin>>b;

                                if(b>a)

                                {

                                    cout<<"Impossivel."<<endl;

                                    aux=0;

                                }else

                                    aux=1;

                            }while(aux!=1);

                            if(a!=b)

                            {

                                cout<<"Disponivel \n[1] Sim [2] Nao\nOpcao [ ]\b\b";

                                cin>>c;

                                if(c==1)

                                    c=1;

                                else

                                    c=0;

                            }else

                                c=0;

                            switch(op)

                            {

                                case'1':

                                    loca.set_filme(codigo, titulo, "Acao", a, b, c);

                                break;

                                case'2':

                                    loca.set_filme(codigo, titulo, "Aventura", a, b, c);

                                break;

                                case'3':

                                    loca.set_filme(codigo, titulo, "Romance", a, b, c);

                                break;

                                case'4':

                                    loca.set_filme(codigo, titulo, "Pudor", a, b, c);

                                break;

                                case'5':

                                    loca.set_filme(codigo, titulo, "Lagrimas", a, b, c);

                                break;

                            }

                        break;

                    }

                }while(op!='0');

            break;

            case'2':

                do

                {

                    system("cls");

                    cout<<"[1] Pessoa\n[2] Filme\n[0] Voltar\nOpcao [ ]\b\b";

                    cin>>op;

                    switch(op)

                    {

                        case'1':

                            system("cls");

                            cout<<"[1] Nome\n[2] Todos\nOpcao [ ]\b\b";

                            cin>>op;

                            switch(op)

                            {

                                case'1':

                                    system("cls");

                                    cout<<"Nome: ";

                                    cin>>nome;

                                    a=loca.localiza_pessoa(nome);

                                    if(a<30)

                                    {   loca.get_pessoa(&codigo, &nome, &rua, a);

                                        cout<<"Pessoa\nCodigo: "<<codigo<<"\nNome: "<<nome<<"\nRua: "<<rua<<endl;

                                    }else

                                        cout<<"Nao Localizado."<<endl;

                                    system("pause");

                                break;

                                case'2':

                                    system("cls");

                                    for(aux=0;aux<10;aux++)

                                    {

                                        loca.get_pessoa(&codigo, &nome, &rua, aux);

                                        if(codigo!="NULL")

                                        {

                                            cout<<"\nCodigo: "<<codigo<<"\nNome: "<<nome<<"\nRua: "<<rua<<endl;

                                            system("pause");

                                        }

                                    }

                                break;

                            }

                        break;

                        case'2':

                            system("cls");

                            cout<<"Filmen\n[1] Titulo\n[2] Todos\nOpcao [ ]\b\b";

                            cin>>op;

                            switch(op)

                            {

                                case'1':

                                system("cls");

                                    cout<<"Titulo: ";

                                    cin>>titulo;

                                    a=loca.localiza_filme(titulo);

                                    if(a<30)

                                    {

                                        loca.get_filme(&codigo, &titulo, &categoria, &aux, &b, &c, a);

                                        cout<<"Pessoa\nCodigo: "<<codigo<<"\nTitulo: "<<titulo<<"\nCategoria: "<<categoria<<"\nQuantidade: "<<aux<<"\nAlugados: "<<b;

                                        if(c==1)

                                            cout<<"\nDisponivel: SIM"<<endl;

                                        else

                                            cout<<"\nDisponivel: NAO"<<endl;

                                    }else

                                        cout<<"Nao Localizado."<<endl;

                                    system("pause");

                                break;

                                case'2':

                                    system("cls");

                                    for(aux=0;aux<20;aux++)

                                    {

                                        loca.get_filme(&codigo, &titulo, &categoria, &a, &b, &c, aux);

                                        if(codigo!="NULL")

                                        {

                                            cout<<"Pessoa\nCodigo: "<<codigo<<"\nTitulo: "<<titulo<<"\nCategoria: "<<categoria<<"\nQuantidade: "<<a<<"\nAlugados: "<<b;

                                            if(c==1)

                                                cout<<"\nDisponivel: SIM"<<endl;

                                            else

                                                cout<<"\nDisponivel: NAO"<<endl;

                                            system("pause");

                                        }

                                    }

                                break;

                            }

                    }

                }while(op!='0');

            break;

            case'3':

                system("cls");

                cout<<"Titulo do filme: ";

                cin>>titulo;

                a=loca.localiza_filme(titulo);

                if(a<30)

                {

                    loca.aluga_filme(a);

                    cout<<"Locado."<<endl;

                }else

                    cout<<"Nao encontrado."<<endl;

                system("pause");

            break;

            case'4':

                system("cls");

                cout<<"Titulo do filme: ";

                cin>>titulo;

                a=loca.localiza_filme(titulo);

                if(a<30)

                {

                    loca.devolve_filme(a);

                    cout<<"Devolvido."<<endl;

                }else

                    cout<<"Nao encontrado."<<endl;

                system("pause");

            break;

            case'0':

                return 0;

            break;

        }

    }while(1!=0);

}

Scripts recomendados

Ordenando números em arquivo

Validador de CPF

Palindromo

Codigo anscii

Tabuada


  

Comentários

Nenhum comentário foi encontrado.


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts