Aprendendo a usar classes em C++
Publicado por Fernando Krein Pinheiro (última atualização em 08/06/2011)
[ Hits: 7.574 ]
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); }
Minha primeira biblioteca em C
Nenhum comentário foi encontrado.
Compartilhando a tela do Computador no Celular via Deskreen
Como Configurar um Túnel SSH Reverso para Acessar Sua Máquina Local a Partir de uma Máquina Remota
Configuração para desligamento automatizado de Computadores em um Ambiente Comercial
Efeito "livro" em arquivos PDF
Como resolver o erro no CUPS: Unable to get list of printer drivers
Flatpak: remover runtimes não usados e pacotes
Mudar o gerenciador de login (GDM para SDDM e vice-versa) - parte 2
Como atualizar o Debian 8 para o 10 (10)
Dica sobre iptables ACCEPT e DROP (6)
NGNIX - Aplicar SNAT para evitar roteamento assimetrico (29)
[Python] Automação de scan de vulnerabilidades
[Python] Script para analise de superficie de ataque
[Shell Script] Novo script para redimensionar, rotacionar, converter e espelhar arquivos de imagem
[Shell Script] Iniciador de DOOM (DSDA-DOOM, Doom Retro ou Woof!)
[Shell Script] Script para adicionar bordas às imagens de uma pasta