Skip to content

Commit

Permalink
Arquivos iniciais do projeto
Browse files Browse the repository at this point in the history
  • Loading branch information
Ronneesley committed Aug 15, 2017
1 parent d73f1bb commit 80ce36e
Show file tree
Hide file tree
Showing 14 changed files with 339 additions and 2 deletions.
16 changes: 16 additions & 0 deletions Makefile
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
all: compilar

compilar: main.o paises.o
gcc build/paises.o build/main.o build/gerais.o -o controleestoque.bin `pkg-config --libs mysqlclient`

main.o: src/main.c
gcc -c src/main.c -o build/main.o

paises.o: src/paises.c src/diretivas_conexao.h
gcc -c src/paises.c -o build/paises.o

gerais.o: src/gerais.c
gcc -c src/gerais.c -o build/gerais.o

clean:
rm -rf build/*.o
87 changes: 85 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,10 +1,93 @@
# Sistema de controle de estoque
# Sistema de Controle de Estoque

Controle de estoque desenvolvido na linguagem C
Controle de estoque desenvolvido na linguagem de programação C.
Ferramenta utilizada para o ensino de programação no curso de Sistemas de Informação.

# Ferramentas utilizadas

Os projetos foram desenvolvidos utilizando apenas o *gedit*.

# Como compilar o projeto?

Para compilar é necessário apenas emitir o comando:

*make*

# Como rodar o projeto?

Basta executar o arquivo binário gerado chamado *controleestoque.bin* no diretório principal do projeto.

*./controleestoque.bin*

# Dúvidas de como usar o GitHub?

Assista os vídeos

* https://www.youtube.com/watch?v=UMhskLXJuq4
* https://www.youtube.com/watch?v=neDiLHwXSVo

# Contribuidores

Ronneesley Moura Teles (Orientador)

Alexandre Ferreira Lopes

Ana Luiza Gomes de Souza

Ana Paula Teodoro de Matos

Andreia Alves de Souza Silva

Andressa Viana Soares

Antonelly Parreira Batista

Antonio de Matos Tavares

Bruno de Souza Qualhato

Bruno Geovane Barros Alves

Carlos Henrique Oliveira Antunes

Clenilson Crisóstomo Sobrinho

Daniel de Paula Rodrigues

Darvesson Ferreira da Silva

Denis Vitoriano Martins

Eduardo Monteiro Andrade

Gabriel Costa Silva

Gilson Soares de Sousa

João Crisostomo de Siqueira Neto

Juliana Maciel Gomes

Laila Cristina Pereira

Leonardo Cordeiro de Souza Silva

Luana Queirós Faria

Marco Aurélio Rodrigues Pereira

Matheus Henrique Passos de Oliveira

Patricia Pereira de Mesquita

Pedro Henrique Magalhaes de Oliveira

Ruan Miller Mendes Lima Fonseca

Samuel Rocha de Carvalho

Vítor Henrique Rezende Feliciano

Wagner Martins Rocha

Welliton dos Santos Silva
8 changes: 8 additions & 0 deletions banco_de_dados/criacao.sql
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
create database if not exists controleestoque;

use controleestoque;

create table paises (
id int auto_increment primary key,
nome varchar(100) not null
);
4 changes: 4 additions & 0 deletions banco_de_dados/criacao_usario.sql
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
create user 'admin_ce'@'localhost'
identified by 'controleestoque';

grant all on controleestoque.* to 'admin_ce'@'localhost';
Binary file added build/gerais.o
Binary file not shown.
Binary file added build/main.o
Binary file not shown.
Binary file added build/paises.o
Binary file not shown.
Binary file added controleestoque.bin
Binary file not shown.
10 changes: 10 additions & 0 deletions src/diretivas_conexao.h
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
#ifndef DIRETIVAS_CONEXAO_H
#define DIRETIVAS_CONEXAO_H

#define SERVIDOR_BD "localhost"
#define USUARIO_BD "admin_ce"
#define SENHA_BD "controleestoque"
#define NOME_BD "controleestoque"
#define PORTA_BD 3306

#endif
10 changes: 10 additions & 0 deletions src/gerais.c
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
#include "gerais.h"

/**
* Limpa a tela
* Autor: Ronneesley Moura Teles
* Data: 15/08/2017
*/
void limparTela(){
system("clear");
}
11 changes: 11 additions & 0 deletions src/gerais.h
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
#ifndef GERAIS_H
#define GERAIS_H

#include <stdlib.h>

/**
* Limpa a tela
*/
void limparTela();

#endif
50 changes: 50 additions & 0 deletions src/main.c
Original file line number Diff line number Diff line change
@@ -0,0 +1,50 @@
#include <stdio.h>
#include "paises.h"
#include "gerais.h"

/**
* Mostra o menu principal do sistema
* Autor: Ronneesley Moura Teles
* Data: 15/08/2017
*/
void mostrarMenuPrincipal(){
int opcao; //Opção a ser escolhida no menu

do {
limparTela();
printf("|-------------------------------------------------------------------------------------------------------------------|\n");
printf("| SISTEMA DE CONTROLE DE ESTOQUE |\n");
printf("|-------------------------------------------------------------------------------------------------------------------|\n");

printf("1) Cadastro de países\n");
printf("2) Cadastro de estados\n");
printf("3) Cadastro de cidades\n");
printf("4) Cadastro de clientes\n");
printf("5) Cadastro de produtos\n");
printf("6) Cadastro de fornecedores\n");
printf("7) Cadastro de representantes\n");
printf("8) Cadastro de funcionários\n");
printf("9) Sair\n\n");

printf("Digite a opção desejada: ");
scanf("%d", &opcao); getchar();

switch (opcao){
case 1: mostrarListagemPaises(); break;
case 9:
printf("Até a próxima vez!\n");
break;
default:
printf("Opção inválida!\n");
}
} while (opcao != 9);
}

/**
* Função principal do programa
*/
int main(){
mostrarMenuPrincipal();

return 0;
}
113 changes: 113 additions & 0 deletions src/paises.c
Original file line number Diff line number Diff line change
@@ -0,0 +1,113 @@
#include "paises.h"

/**
* Lista todos os países cadastrados no banco de dados
* Autor: Ronneesley Moura Teles
* Data: 15/08/2017
*/
void mostrarListagemPaises(){
limparTela();
printf("|-------------------------------------------------------------------------------------------------------------------|\n");
printf("| LISTAGEM DE PAÍSES |\n");
printf("|-------------------------------------------------------------------------------------------------------------------|\n");
printf("| ID | NOME |\n");
printf("|-------------------------------------------------------------------------------------------------------------------|\n");

//Cria a variável de conexão com o MySQL
MYSQL mysql;
mysql_init(&mysql);

//Efetua a conexão
if (mysql_real_connect(&mysql, SERVIDOR_BD, USUARIO_BD, SENHA_BD, NOME_BD, PORTA_BD, NULL, 0)){
//Executa o comando de consulta
if (mysql_query(&mysql, "select id, nome from paises order by nome") == 0){
//Obtém o resultado
MYSQL_RES *resultado = mysql_store_result(&mysql);

//Cria uma variável para guardar a linha
MYSQL_ROW linha;
int *id;
char *nome;
while ( (linha = mysql_fetch_row(resultado)) ){
//Obtém cada coluna na órdem
*id = atoi(linha[0]);
nome = linha[1];

//Imprime cada linha
printf("| %10d | %-100s |\n", *id, nome);
}

//Libera os resultado e fecha a conexão
mysql_free_result(resultado);
mysql_close(&mysql);
} else {
printf("%s\n", mysql_error(&mysql)); //Exibe a mensagem de erro
}
} else {
printf("Falha ao conectar no banco de dados: %s\n", mysql_error(&mysql)); //Exibe a mensagem de erro ao conectar
}

printf("|-------------------------------------------------------------------------------------------------------------------|\n");

printf("Deseja cadastrar um novo país? (S/N) ");
char resposta = getchar(); getchar();

if (resposta == 'S' || resposta == 's'){
mostrarCadastroPaises();
}
}

/**
* Apresenta o cadastro de países
* Autor: Ronneesley Moura Teles
* Data: 15/08/2017
*/
void mostrarCadastroPaises() {
Pais p;

limparTela();
printf("|-------------------------------------------------------------------------------------------------------------------|\n");
printf("| CADASTRO DE PAÍSES |\n");
printf("|-------------------------------------------------------------------------------------------------------------------|\n");

printf("| NOME: ");
fgets(p.nome, sizeof(p.nome), stdin);

printf("|-------------------------------------------------------------------------------------------------------------------|\n");

printf("Deseja realmente criar o país? (S/N) ");
char resposta = getchar(); getchar();

if (resposta == 'S' || resposta == 's'){
inserirPais(p);
}
}

/**
* Função responsável pela inserção de um país no banco de dados
* Autor: Ronneesley Moura Teles
* Data: 15/08/2017
*/
void inserirPais(Pais p){
//Inicializa a variável de conexão com o MySQL
MYSQL mysql;
mysql_init(&mysql);

//Conecta no banco de dados
if (mysql_real_connect(&mysql, SERVIDOR_BD, USUARIO_BD, SENHA_BD, NOME_BD, PORTA_BD, NULL, 0)){
//Cria o comando SQL para envio
char sql[500];
snprintf(sql, 500, "insert into paises(nome) values('%s')", p.nome);

//Envia o comando e analisa a resposta
if (mysql_query(&mysql, sql) == 0){
mysql_close(&mysql); //Encerra a conexão

printf("País cadastrado com sucesso\n"); //Exibe mensagem de sucesso
} else {
printf("%s\n", mysql_error(&mysql)); //Exibe a mensagem de erro
}
} else {
printf("Falha ao conectar no banco de dados: %s\n", mysql_error(&mysql)); //Exibe a mensagem de erro ao conectar
}
}
32 changes: 32 additions & 0 deletions src/paises.h
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
#ifndef PAISES_H
#define PAISES_H

#include <stdio.h>
#include <mysql/mysql.h>
#include "diretivas_conexao.h"
#include "gerais.h"

/**
* Estrutura para representar um pais
*/
typedef struct {
int id;
char nome[100];
} Pais;

/**
* Lista todos os países cadastrados no banco de dados
*/
void mostrarListagemPaises();

/**
* Apresenta o cadastro de países
*/
void mostrarCadastroPaises();

/**
* Função para inserção de um país no banco de dados
*/
void inserirPais(Pais p);

#endif

0 comments on commit 80ce36e

Please sign in to comment.