Aprendendo a usar classes em C++
Publicado por Fernando Krein Pinheiro (última atualização em 08/06/2011)
[ Hits: 7.741 ]
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); }
Classe para manipulação de números complexos
3025 -> 30 + 25 = 55 -> 55*55 = 3025
Nenhum coment�rio foi encontrado.
Aprenda a Gerenciar Permissões de Arquivos no Linux
Como transformar um áudio em vídeo com efeito de forma de onda (wave form)
Como aprovar Pull Requests em seu repositório Github via linha de comando
Visualizar arquivos em formato markdown (ex.: README.md) pelo terminal
Dando - teoricamente - um gás no Gnome-Shell do Arch Linux
Como instalar o Google Cloud CLI no Ubuntu/Debian
Mantenha seu Sistema Leve e Rápido com a Limpeza do APT!
Procurando vídeos de YouTube pelo terminal e assistindo via mpv (2025)
Sinto uma leve lentidão ao arrastar, miniminizar e restauras as janela... (3)
Alguém já usou o framework Avalonia para desenvolver interfaces de usu... (4)
Ajuda Pra Melhoria do NFTABLES. (8)
Pastas da raiz foram para a área de trabalho [RESOLVIDO] (7)