Skip to content

Instantly share code, notes, and snippets.

@werbet
Last active August 29, 2015 14:09
Show Gist options
  • Save werbet/2f30b9f6e0df490b433a to your computer and use it in GitHub Desktop.
Save werbet/2f30b9f6e0df490b433a to your computer and use it in GitHub Desktop.
Aula de C++ - 10/11/2014 e 12/11/2014
#include <cstdlib>
#include <iostream>
#include <string.h>
using namespace std;
class Funcionario
{
private:
char* nome;
float salario;
char* data;
int departamento;
public:
Funcionario()
{
}
Funcionario(char* n, float s, char* d, int dep)
{
nome = new char[10];
strcpy(nome, n);
salario = s;
data = new char[10];
strcpy(data, d);
departamento = dep;
}
void imprime()
{
printf("Nome = %s, dep. = %d, salario = %1.2f, admissao = %s\n", nome, departamento, salario, data);
}
void aumentaSalario(float fator)
{
salario *= fator;
}
int informaDepartamento()
{
return departamento;
}
};
class Empresa
{
private:
char* nome;
char* cnpj;
Funcionario* funcionarios;
int quantidade;
public:
Empresa(char* n, char* c, Funcionario* f, int qtd)
{
nome = new char[10];
strcpy(nome, n);
cnpj = new char[10];
strcpy(cnpj, c);
quantidade = qtd;
funcionarios = new Funcionario[quantidade];
memcpy(funcionarios, f, sizeof(Funcionario) * quantidade);
}
void imprime()
{
printf("%s tem os seguintes funcionarios: \n", nome);
int i;
for(i = 0; i < quantidade; i++)
funcionarios[i].imprime();
printf("--------------------------------------------- \n");
}
void aumentaSalarioDepartamento(int codigo, float fator)
{
int i;
for(i = 0; i < quantidade; i++)
if(funcionarios[i].informaDepartamento() == codigo)
funcionarios[i].aumentaSalario(fator);
}
};
int main()
{
Funcionario* vetor;
int quantidade;
quantidade = 3;
vetor = new Funcionario[quantidade];
Funcionario um("Eriko", 15.00, "01/01/1900", 100);
//um.imprime();
vetor[0] = um;
Funcionario dois("Rafael", 15000.00, "01/01/1999", 100);
//dois.imprime();
vetor[1] = dois;
Funcionario tres("Adailson", 30000.00, "01/01/2001", 300);
//tres.imprime();
vetor[2] = tres;
Empresa empresa("NASA", "00001", vetor, quantidade);
empresa.imprime();
empresa.aumentaSalarioDepartamento(100, 1.5);
empresa.imprime();
system("PAUSE");
return 0;
}
//------- VERSÃO COM MELHORIAS LOGO ABAIXO --------------------------------------------------------------
#include <cstdlib>
#include <iostream>
#include <string.h>
using namespace std;
class Funcionario
{
private:
char* nome;
float salario;
char* data;
int departamento;
public:
Funcionario()
{
}
Funcionario(char* n, float s, char* d, int dep)
{
nome = new char[10];
strcpy(nome, n);
salario = s;
data = new char[10];
strcpy(data, d);
departamento = dep;
}
void imprime()
{
printf("Nome = %s, dep. = %d, salario = %1.2f, admissao = %s\n", nome, departamento, salario, data);
}
void aumentaSalario(float fator)
{
salario *= fator;
}
int informaDepartamento()
{
return departamento;
}
};
class Empresa
{
private:
char* nome;
char* cnpj;
Funcionario* funcionarios;
int contratados;
public:
Empresa(char* n, char* c)
{
contratados = 0;
nome = new char[10];
strcpy(nome, n);
cnpj = new char[10];
strcpy(cnpj, c);
funcionarios = new Funcionario[100];
}
void imprime()
{
printf("%s tem os seguintes funcionarios: \n", nome);
int i;
for(i = 0; i < contratados; i++)
funcionarios[i].imprime();
printf("--------------------------------------------- \n");
}
void aumentaSalarioDepartamento(int codigo, float fator)
{
int i;
for(i = 0; i < contratados; i++)
if(funcionarios[i].informaDepartamento() == codigo)
funcionarios[i].aumentaSalario(fator);
}
void contratar(char* nome, float salario, char* data, int dep)
{
funcionarios[contratados] = Funcionario(nome, salario, data, dep);
contratados++;
}
};
int main()
{
Empresa empresa("NASA", "00001");
empresa.contratar("Eriko", 15.00, "01/01/1900", 100);
empresa.contratar("Rafael", 15000.00, "01/01/1999", 100);
empresa.contratar("Adailson", 30000.00, "01/01/2001", 300);
empresa.imprime();
empresa.aumentaSalarioDepartamento(100, 1.5);
empresa.imprime();
system("PAUSE");
return 0;
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment