0% acharam este documento útil (0 voto)
38 visualizações13 páginas

Cadastro de Empresas e Funcionários em C

O documento contém dois programas em C que gerenciam cadastros de empresas e funcionários, e produtos e categorias, respectivamente. Cada programa possui funções para cadastrar e listar os dados, além de um menu interativo para o usuário. Ambos os programas implementam validações de limite para o número de cadastros e instruções sobre como compilar e executar o código.
Direitos autorais
© © All Rights Reserved
Levamos muito a sério os direitos de conteúdo. Se você suspeita que este conteúdo é seu, reivindique-o aqui.
Formatos disponíveis
Baixe no formato DOCX, PDF, TXT ou leia on-line no Scribd
0% acharam este documento útil (0 voto)
38 visualizações13 páginas

Cadastro de Empresas e Funcionários em C

O documento contém dois programas em C que gerenciam cadastros de empresas e funcionários, e produtos e categorias, respectivamente. Cada programa possui funções para cadastrar e listar os dados, além de um menu interativo para o usuário. Ambos os programas implementam validações de limite para o número de cadastros e instruções sobre como compilar e executar o código.
Direitos autorais
© © All Rights Reserved
Levamos muito a sério os direitos de conteúdo. Se você suspeita que este conteúdo é seu, reivindique-o aqui.
Formatos disponíveis
Baixe no formato DOCX, PDF, TXT ou leia on-line no Scribd

TAREFA 1

#include <stdio.h>

#include <stdlib.h>

#include <string.h>

// Definindo as estruturas de dados para Empresa e Funcionário

typedef struct {

char nome[100];

char telefone[15];

char endereco[200];

char cnpj[20];

} Empresa;

typedef struct {

char nome[100];

char telefone[15];

char endereco[200];

char cnpj[20];

} Funcionario;

// Funções para cadastrar e listar Empresas e Funcionários

void cadastrarEmpresa(Empresa *empresa) {

printf("\nDigite o nome da empresa: ");

fgets(empresa->nome, 100, stdin);

empresa->nome[strcspn(empresa->nome, "\n")] = '\0'; // Remover o \n da string

printf("Digite o telefone da empresa: ");


fgets(empresa->telefone, 15, stdin);

empresa->telefone[strcspn(empresa->telefone, "\n")] = '\0';

printf("Digite o endereco da empresa: ");

fgets(empresa->endereco, 200, stdin);

empresa->endereco[strcspn(empresa->endereco, "\n")] = '\0';

printf("Digite o CNPJ da empresa: ");

fgets(empresa->cnpj, 20, stdin);

empresa->cnpj[strcspn(empresa->cnpj, "\n")] = '\0';

void cadastrarFuncionario(Funcionario *funcionario) {

printf("\nDigite o nome do funcionario: ");

fgets(funcionario->nome, 100, stdin);

funcionario->nome[strcspn(funcionario->nome, "\n")] = '\0';

printf("Digite o telefone do funcionario: ");

fgets(funcionario->telefone, 15, stdin);

funcionario->telefone[strcspn(funcionario->telefone, "\n")] = '\0';

printf("Digite o endereco do funcionario: ");

fgets(funcionario->endereco, 200, stdin);

funcionario->endereco[strcspn(funcionario->endereco, "\n")] = '\0';

printf("Digite o CNPJ do funcionario: ");

fgets(funcionario->cnpj, 20, stdin);

funcionario->cnpj[strcspn(funcionario->cnpj, "\n")] = '\0';

void listarEmpresas(Empresa empresas[], int numEmpresas) {


if (numEmpresas == 0) {

printf("\nNao ha empresas cadastradas.\n");

return;

printf("\nEmpresas Cadastradas:\n");

for (int i = 0; i < numEmpresas; i++) {

printf("\nEmpresa %d:\n", i + 1);

printf("Nome: %s\n", empresas[i].nome);

printf("Telefone: %s\n", empresas[i].telefone);

printf("Endereco: %s\n", empresas[i].endereco);

printf("CNPJ: %s\n", empresas[i].cnpj);

void listarFuncionarios(Funcionario funcionarios[], int numFuncionarios) {

if (numFuncionarios == 0) {

printf("\nNao ha funcionarios cadastrados.\n");

return;

printf("\nFuncionarios Cadastrados:\n");

for (int i = 0; i < numFuncionarios; i++) {

printf("\nFuncionario %d:\n", i + 1);

printf("Nome: %s\n", funcionarios[i].nome);

printf("Telefone: %s\n", funcionarios[i].telefone);

printf("Endereco: %s\n", funcionarios[i].endereco);

printf("CNPJ: %s\n", funcionarios[i].cnpj);


}

int main() {

Empresa empresas[100];

Funcionario funcionarios[100];

int numEmpresas = 0, numFuncionarios = 0;

int opcao;

do {

printf("\nMenu:\n");

printf("1. Cadastrar uma empresa\n");

printf("2. Cadastrar um funcionario\n");

printf("3. Listar todas as empresas\n");

printf("4. Listar todos os funcionarios\n");

printf("5. Sair do programa\n");

printf("Escolha uma opcao: ");

scanf("%d", &opcao);

getchar(); // Limpar o buffer do teclado

switch (opcao) {

case 1:

if (numEmpresas < 100) {

cadastrarEmpresa(&empresas[numEmpresas]);

numEmpresas++;

} else {
printf("\nLimite de empresas atingido.\n");

break;

case 2:

if (numFuncionarios < 100) {

cadastrarFuncionario(&funcionarios[numFuncionarios]);

numFuncionarios++;

} else {

printf("\nLimite de funcionarios atingido.\n");

break;

case 3:

listarEmpresas(empresas, numEmpresas);

break;

case 4:

listarFuncionarios(funcionarios, numFuncionarios);

break;

case 5:

printf("\nSaindo do programa...\n");

break;

default:
printf("\nOpcao invalida. Tente novamente.\n");

} while (opcao != 5);

return 0;

Descrição do programa:

 Estruturas de Dados: Duas estruturas foram definidas: Empresa e


Funcionario. Ambas contêm os campos necessários (nome, telefone,
endereço, CNPJ) conforme as exigências do trabalho.
 Funções:
o cadastrarEmpresa() e cadastrarFuncionario() são
responsáveis por coletar os dados do usuário e armazená-los nas
respectivas variáveis.
o listarEmpresas() e listarFuncionarios() exibem as
empresas e funcionários cadastrados.
 Menu: O programa apresenta um menu com opções para cadastrar empresas,
cadastrar funcionários, listar as empresas e funcionários ou sair do programa.
 Validação: Limite de 100 empresas e 100 funcionários para evitar ultrapassar a
memória alocada nas arrays.

Como executar:

1. Compile o código usando um compilador C (como gcc).


2. Execute o programa, interaja com o menu e veja as opções de cadastro e
listagem.

TAREFA 2
#include <stdio.h>

#include <stdlib.h>

#include <string.h>

// Definindo as estruturas de dados para Produto e Categoria

typedef struct {

char nome[100];

char material[100];

float altura;

float largura;

float preco;

char nomeCategoria[100];

} Produto;

typedef struct {

char nomeCategoria[100];

char subcategoria[100];

} Categoria;

// Funções para cadastrar e listar Produtos e Categorias

void cadastrarProduto(Produto *produto) {

printf("\nDigite o nome do produto: ");

fgets(produto->nome, 100, stdin);

produto->nome[strcspn(produto->nome, "\n")] = '\0'; // Remover o \n da string

printf("Digite o material do produto: ");

fgets(produto->material, 100, stdin);


produto->material[strcspn(produto->material, "\n")] = '\0';

printf("Digite a altura do produto (em metros): ");

scanf("%f", &produto->altura);

printf("Digite a largura do produto (em metros): ");

scanf("%f", &produto->largura);

printf("Digite o preço do produto: ");

scanf("%f", &produto->preco);

getchar(); // Limpar o buffer do teclado

printf("Digite o nome da categoria do produto: ");

fgets(produto->nomeCategoria, 100, stdin);

produto->nomeCategoria[strcspn(produto->nomeCategoria, "\n")] = '\0';

void cadastrarCategoria(Categoria *categoria) {

printf("\nDigite o nome da categoria: ");

fgets(categoria->nomeCategoria, 100, stdin);

categoria->nomeCategoria[strcspn(categoria->nomeCategoria, "\n")] = '\0';

printf("Digite a subcategoria: ");

fgets(categoria->subcategoria, 100, stdin);

categoria->subcategoria[strcspn(categoria->subcategoria, "\n")] = '\0';

void listarProdutos(Produto produtos[], int numProdutos) {

if (numProdutos == 0) {

printf("\nNao ha produtos cadastrados.\n");

return;
}

printf("\nProdutos Cadastrados:\n");

for (int i = 0; i < numProdutos; i++) {

printf("\nProduto %d:\n", i + 1);

printf("Nome: %s\n", produtos[i].nome);

printf("Material: %s\n", produtos[i].material);

printf("Altura: %.2f metros\n", produtos[i].altura);

printf("Largura: %.2f metros\n", produtos[i].largura);

printf("Preco: R$ %.2f\n", produtos[i].preco);

printf("Categoria: %s\n", produtos[i].nomeCategoria);

void listarCategorias(Categoria categorias[], int numCategorias) {

if (numCategorias == 0) {

printf("\nNao ha categorias cadastradas.\n");

return;

printf("\nCategorias Cadastradas:\n");

for (int i = 0; i < numCategorias; i++) {

printf("\nCategoria %d:\n", i + 1);

printf("Nome da Categoria: %s\n", categorias[i].nomeCategoria);

printf("Subcategoria: %s\n", categorias[i].subcategoria);

}
void listarProdutosPorCategoria(Produto produtos[], int numProdutos, const char
*categoriaBusca) {

int encontrou = 0;

printf("\nProdutos da categoria %s:\n", categoriaBusca);

for (int i = 0; i < numProdutos; i++) {

if (strcmp(produtos[i].nomeCategoria, categoriaBusca) == 0) {

printf("\nProduto %d:\n", i + 1);

printf("Nome: %s\n", produtos[i].nome);

printf("Material: %s\n", produtos[i].material);

printf("Altura: %.2f metros\n", produtos[i].altura);

printf("Largura: %.2f metros\n", produtos[i].largura);

printf("Preco: R$ %.2f\n", produtos[i].preco);

int main() {

Produto produtos[100];

Categoria categorias[100];

int numProdutos = 0, numCategorias = 0;

int opcao;

char categoriaBusca[100];

do {

printf("\nMenu:\n");

printf("1. Cadastrar um produto\n");


printf("2. Cadastrar uma categoria\n");

printf("3. Listar produtos\n");

printf("4. Listar categorias\n");

printf("5. Listar produtos por categoria\n");

printf("6. Sair do programa\n");

printf("Escolha uma opcao: ");

scanf("%d", &opcao);

getchar(); // Limpar o buffer do teclado

switch (opcao) {

case 1:

if (numProdutos < 100) {

cadastrarProduto(&produtos[numProdutos]);

numProdutos++;

} else {

printf("\nLimite de produtos atingido.\n");

break;

case 2:

if (numCategorias < 100) {

cadastrarCategoria(&categorias[numCategorias]);

numCategorias++;

} else {

printf("\nLimite de categorias atingido.\n");

}
break;

case 3:

listarProdutos(produtos, numProdutos);

break;

case 4:

listarCategorias(categorias, numCategorias);

break;

case 5:

printf("\nDigite o nome da categoria para buscar os produtos: ");

fgets(categoriaBusca, 100, stdin);

categoriaBusca[strcspn(categoriaBusca, "\n")] = '\0';

listarProdutosPorCategoria(produtos, numProdutos, categoriaBusca);

break;

case 6:

printf("\nSaindo do programa...\n");

break;

default:

printf("\nOpcao invalida. Tente novamente.\n");

} while (opcao != 6);


return 0;

Descrição do programa:

 Estruturas de Dados: Definimos duas estruturas: Produto e Categoria. A


estrutura Produto contém as informações necessárias para o cadastro de um
produto, incluindo o nome da categoria. A estrutura Categoria contém o
nome da categoria e sua subcategoria.
 Funções:
o cadastrarProduto() e cadastrarCategoria() para coletar e
armazenar as informações fornecidas pelo usuário.
o listarProdutos() e listarCategorias() para exibir as
informações cadastradas.
o listarProdutosPorCategoria() para listar os produtos
pertencentes a uma categoria específica.
 Menu: O programa exibe um menu com opções para cadastrar produtos e
categorias, listar os cadastros ou sair do programa.
 Validação: O programa verifica se há espaço para cadastrar mais produtos ou
categorias, com limite de 100 para cada.

Como executar:

1. Compile o código usando um compilador C (como gcc).


2. Execute o programa, interaja com o menu e realize os cadastros e listagens.

Você também pode gostar