Aprendendo a usar classes em C++
Publicado por Fernando Krein Pinheiro (última atualização em 08/06/2011)
[ Hits: 7.440 ]
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); }
Converter graus Celsius em Fahrenheit e vice-versa
Nenhum comentário foi encontrado.
Melhorando o tempo de boot do Fedora e outras distribuições
Como instalar as extensões Dash To Dock e Hide Top Bar no Gnome 45/46
E a guerra contra bots continua
Tradução do artigo do filósofo Gottfried Wilhelm Leibniz sobre o sistema binário
Conheça o firewall OpenGFW, uma implementação do (Great Firewall of China).
Instalando o FreeOffice no LMDE 6
Anki: Remover Tags de Estilo HTML de Todas as Cartas
Colocando uma opção de redimensionamento de imagem no menu de contexto do KDE
Não consigo acessar os modos de desempenho (2)
Ubuntu — tentando iniciar o windows? (0)
[Shell Script] Script para desinstalar pacotes desnecessários no OpenSuse
[Shell Script] Script para criar certificados de forma automatizada no OpenVpn
[Shell Script] Conversor de vídeo com opção de legenda
[C/C++] BRT - Bulk Renaming Tool
[Shell Script] Criação de Usuarios , Grupo e instalação do servidor de arquivos samba