Skip to content

Instantly share code, notes, and snippets.

@ClaudioHenrique
Created June 23, 2015 18:45
Show Gist options
  • Save ClaudioHenrique/316371670822cb7d3699 to your computer and use it in GitHub Desktop.
Save ClaudioHenrique/316371670822cb7d3699 to your computer and use it in GitHub Desktop.
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int read_line(FILE *in, char *buffer, size_t max)
{
return fgets(buffer, max, in) == buffer;
}
void cadastrarVendedor(){
/* Crio o arquivo que sera utilizado para armazenas as informações */
FILE *arquivo;
char * pch;
char * array[100];
int i = 0;
int j = 0;
int status = 1;
float codigoVendedorTemp = 0;
arquivo = fopen("/Users/claudiohenrique/vendedores.txt","w+");
if(arquivo == NULL){
printf("Arquivo nao pode ser aberto \n\n");
system("pause");
}
int codigoVendedor = 0;
printf("Informe o codigo do vendedor: ");
scanf("%d",&codigoVendedor);
FILE *in;
if((in = fopen("/Users/claudiohenrique/vendedores.txt", "r")) != NULL)
{
char line[256];
if(read_line(in, line, sizeof line))
pch = strtok (line," ");
else
printf("nao foi possivel ler o arquivo \n\n");
fclose(in);
}
while (pch != NULL){
array[i] = pch;
pch = strtok (NULL, " ");
i++;
}
for(j = 0; j < i; j++){
codigoVendedorTemp = atof(array[j]);
if(codigoVendedorTemp == codigoVendedor){
status = 0;
}
}
if(status == 1){
fprintf(arquivo, "%d ", codigoVendedor);
printf("Vendedor Registrado com sucesso \n\n");
}else{
printf("Esse codigo ja esta sendo utilizado por outro vendedor,informe outro codigo \n\n");
}
}
void cadastrarVenda(){
/* Crio o arquivo que sera utilizado para armazenas as informações */
FILE *arquivo;
arquivo = fopen("/Users/claudiohenrique/vendas.txt","w+");
int j = 0;
int i = 0;
int codigoVendedor = 0;
int mesVenda = 0;
float valor;
char * pch;
char * array[100];
printf("Informe o codigo do vendedor: ");
scanf("%d",&codigoVendedor);
printf("Informe o mes: ");
scanf("%d",&mesVenda);
printf("Informe o valor da venda: ");
scanf("%f",&valor);
FILE *in;
if((in = fopen("/Users/claudiohenrique/vendas.txt", "r")) != NULL)
{
char line[256];
if(read_line(in, line, sizeof line))
pch = strtok (line," ");
else
printf("nao foi possivel ler o arquivo \n\n");
fclose(in);
}
while (pch != NULL){
array[i] = pch;
pch = strtok (NULL, " ");
i++;
}
for(j = 0; j < i; j+=3){
int codigoVendedorTemp = atoi(array[j]);
int mesVendaTemp = atoi(array[j+1]);
if(codigoVendedorTemp == codigoVendedor){
if(mesVenda == mesVendaTemp){
printf("Nao foi possivel registrar a venda. Nao eh permitido duas vendas no mesmo mes por um mesmo vendedor \n");
}else{
printf("Venda adicionada com sucesso");
fprintf(arquivo, " %d %d %f", codigoVendedor, mesVenda, valor);
}
}
}
}
void consultarVendas(){
/* Crio o arquivo que sera utilizado para armazenas as informações */
char * pch;
char * array[100];
int i = 0;
int j = 0;
int codigoVendedor;
int mes;
printf("Informe o codigo do vendedor: ");
scanf("%d",&codigoVendedor);
printf("Informe o mes das vendas: ");
scanf("%d",&mes);
FILE *in;
if((in = fopen("/Users/claudiohenrique/vendas.txt", "r")) != NULL)
{
char line[256];
if(read_line(in, line, sizeof line))
pch = strtok (line," ");
else
printf("nao foi possivel ler o arquivo \n\n");
fclose(in);
}
while (pch != NULL){
array[i] = pch;
pch = strtok (NULL, " ");
i++;
}
for(j = 0; j < i; j+=3){
int codigoVendedorTemp = atoi(array[j]);
int mesTemp = atoi(array[j+1]);
if(codigoVendedorTemp == codigoVendedor){
if(mes == mesTemp){
printf("O Valor Vendido nesse mes pelo vendedor foi R$ %s \n\n",array[j+2]);
}
}
}
}
void consultarTotal(){
/* Crio o arquivo que sera utilizado para armazenas as informações */
char * pch;
char * array[100];
int i = 0;
int j = 0;
int codigoVendedor;
float total = 0;
printf("Informe o codigo do vendedor: ");
scanf("%d",&codigoVendedor);
FILE *in;
if((in = fopen("/Users/claudiohenrique/vendas.txt", "r")) != NULL)
{
char line[256];
if(read_line(in, line, sizeof line))
pch = strtok (line," ");
else
printf("nao foi possivel ler o arquivo \n\n");
fclose(in);
}
while (pch != NULL){
array[i] = pch;
pch = strtok (NULL, " ");
i++;
}
for(j = 0; j < i; j+=3){
int codigoVendedorTemp = atoi(array[j]);
if(codigoVendedorTemp == codigoVendedor){
total = total + atof(array[j+2]);
}
}
printf("TOTAL DE VENDAS DESSE VENDEDOR %f \n\n",total);
}
void consultarMelhorVendedor(){
/* Crio o arquivo que sera utilizado para armazenas as informações */
char * pch;
char * array[100];
float valorVenda = 0;
float valorVendaTemp = 0;
int i = 0;
int j = 0;
int idVendedor = 0;
int idVendedorTemp = 0;
int mes;
printf("Informe o mes de venda: ");
scanf("%d",&mes);
FILE *in;
if((in = fopen("/Users/claudiohenrique/vendas.txt", "r")) != NULL)
{
char line[256];
if(read_line(in, line, sizeof line))
pch = strtok (line," ");
else
printf("nao foi possivel ler o arquivo \n");
fclose(in);
}
while (pch != NULL){
array[i] = pch;
pch = strtok (NULL, " ");
i++;
}
for(j = 0; j < i; j+=3){
idVendedor = atoi(array[j]);
valorVenda = atoi(array[j+2]);
if(valorVendaTemp < valorVenda){
idVendedorTemp = idVendedor;
valorVendaTemp = valorVenda;
}
}
printf("O VENDEDOR COM MAIS VENDAS DURANTE O MES EH O VENDEDOR (%d) COM R$%f VENDIDOS \n\n",idVendedorTemp,valorVendaTemp);
}
void consultarMelhorMes(){
/* Crio o arquivo que sera utilizado para armazenas as informações */
char * pch;
char * array[100];
float valorVenda = 0;
float valorVendaTemp = 0;
int mesVenda = 0;
int mesVendaTemp = 0;
int i = 0;
int j = 0;
int idVendedor = 0;
int idVendedorTemp = 0;
FILE *in;
if((in = fopen("/Users/claudiohenrique/vendas.txt", "r")) != NULL)
{
char line[256];
if(read_line(in, line, sizeof line))
pch = strtok (line," ");
else
printf("nao foi possivel ler o arquivo \n");
fclose(in);
}
while (pch != NULL){
array[i] = pch;
pch = strtok (NULL, " ");
i++;
}
for(j = 0; j < i; j+=3){
mesVenda = atoi(array[j+1]);
valorVenda = atoi(array[j+2]);
if(valorVendaTemp < valorVenda){
mesVendaTemp = mesVenda;
}
}
printf("O MES COM O MAIOR MONTADE DE VENDAS FOI: %d \n\n ",mesVendaTemp);
}
int main(int argc, const char* argv[]){
/* Váriaveis para controle */
int opcao = 0;
int status = 1;
while(status != 0){
printf("####### MENU ####### \n");
printf("1 - CADASTRAR VENDEDOR \n");
printf("2 - CADASTRAR VENDA \n");
printf("3 - CONSULTAR VENDAS DE UM VENDEDOR ESPECIFICO/MES\n");
printf("4 - CONSULTAR O TOTAL DE VENDAS DE UM DETERMINADO VENDEDOR\n");
printf("5 - CONSULTAR O VENDEDOR COM MAIS VENDAS/MES \n");
printf("6 - CONSULTAR O MES COM MAIS VENDAS \n");
printf("7 - FINALIZAR O PROGRAMA \n");
printf("Informe a opcao desejada : ");
scanf ("%d",&opcao);
switch(opcao){
case 1:
cadastrarVendedor();
break;
case 2:
cadastrarVenda();
break;
case 3:
consultarVendas();
break;
case 4:
consultarTotal();
break;
case 5:
consultarMelhorVendedor();
break;
case 6:
consultarMelhorMes();
break;
case 7:
status = 0;
break;
}
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment