Aprendendo a usar classes em C++
Publicado por Fernando Krein Pinheiro (última atualização em 08/06/2011)
[ Hits: 7.860 ]
Homepage: www.ferpinheiro.wordpress.com
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*/
#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);
}
Dado três valores, informar o maior e menor número
Nenhum comentário foi encontrado.
Monitorando o Preço do Bitcoin ou sua Cripto Favorita em Tempo Real com um Widget Flutuante
IA Turbina o Desktop Linux enquanto distros renovam forças
Como extrair chaves TOTP 2FA a partir de QRCODE (Google Authenticator)
Como realizar um ataque de força bruta para desobrir senhas?
Como usar Gpaste no ambiente Cinnamon
Atualizando o Fedora 42 para 43
É normal não gostar de KDE? (15)
Erro ao instalar programa, "você tem pacotes retidos quebrados&qu... (13)









