Buscar

DESAFIO PROFISSIONAL III - Análise e Desenvolvimento de Sistemas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 36 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 6, do total de 36 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 9, do total de 36 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

UNIVERSIDADE ANHANGUERA 
Faculdade Anhanguera de São Bernardo 
Curso: Tecnologia em Análise e Desenvolvimento de Sistemas. 
 
ERIC SITWEEL SEARLES – RA 6032501055 
 
Desafio Profissional. 
 
Tutores EAD: Joice Siqueira Lima 
 
 
 
 
1º SEMESTRE/2018 
SÃO BERNARDO DO CAMPO – SP 
2018 
 
 
RESUMO 
Este trabalho destina-se a conclusão das matérias estudadas no semestre I do curso 
de Análise e Desenvolvimento de Sistemas da Faculdade Anhanguera, sua finalidade 
é desenvolver e colocar em prática os conhecimentos adquiridos ao longo do 
semestre. 
Para atender as necessidades de demanda dos equipamentos da empresa utilizados 
em obras, foi necessário criar um controle de utilização dos mesmos, este controle 
mostrará de forma clara, quais equipamentos estão disponíveis para uso, e em qual 
local estão armazenados, mostrará também, quais equipamentos estão sendo 
utilizados, em qual obra encontra-se o equipamento, qual a previsão de uso, e quem 
é o responsável pela alocação do equipamento, possibilitando assim, um melhor 
planejamento para a utilização dos mesmos sem causar prejuízos na realização dos 
serviços. 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
SUMÁRIO 
1 INTRODUÇÃO......................................................................................................... 
2 DESENVOLVIMENTO............................................................................................. 
2.1 Objetivos do Projeto............................................................................................... 
2.2 Descrição do projeto.............................................................................................. 
2.3 Organização do Projeto.......................................................................................... 
3 METODOLOGIA DO PROJETO............................................................................... 
3.1 Requisitos do projeto............................................................................................. 
3.2 Modelagem de negócio........................................................................................... 
4 Requisitos Funcionais e Não-funcionais do Sistema.......................................... 
4.1 São requisitos funcionais do sistema................................................................... 
4.2 São requisitos não-funcionais do sistema............................................................ 
5 DIAGRAMAS............................................................................................................ 
5.1 Diagrama de caso de uso....................................................................................... 
5.2 Diagrama de classes............................................................................................... 
5.3 Diagrama Entidade Relacionamento..................................................................... 
6 BANCO DE DADOS PARA O SOFTWARE............................................................. 
6.1 Tabelas do Banco de Dados................................................................................... 
6.2 Script SQL ............................................................................................................... 
7 PROGRAMANDO EM C........................................................................................... 
7.1 Cadastro Funcionários........................................................................................... 
7.2 Listar Funcionários................................................................................................. 
7.3 Excluir funcionário................................................................................................. 
7.4 Cadastro Equipamento........................................................................................... 
8 ESTUDO PARA OTIMIZAÇÃO DE ROTAS........................................................... 
8.1 Tabela Verdade...................................................................................................... 
9 CONCLUSÃO.......................................................................................................... 
10 REFERÊNCIAS........................................................................................................ 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1 – INTRODUÇÃO 
Com a expansão da CONSTRUTORA CONSTRUINDO SEMPRE, fez-se necessário 
criar um projeto para controle de alocação de equipamentos utilizados pela 
construtora, em suas obras, possibilitando com isto, uma melhor utilização dos 
recursos disponíveis, para a melhor utilização e controle de equipamentos nas obras 
realizadas pela CONSTRUTORA CONSTRUINDO SEMPRE. 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
2 - DESENVOLVIMENTO 
2.1 - Objetivos do Projeto 
Este projeto tem por objetivo desenvolver rotinas para a alocação dos equipamentos, 
organizando a utilização e as informações sobre a localização, a disponibilidade para 
uso e a previsão do tempo de uso, caso o mesmo não esteja disponível. Também 
deixará disponível as informações sobre qual funcionário está responsável pelo 
equipamento em uso, facilitando a troca de informações sobre o estado do 
equipamento. 
Com isto esperamos facilitar o controle e também disponibilizar dados para a 
construtora avaliar a necessidade de aquisição ou não de novos equipamentos, de 
acordo com a necessidade. 
 
2.2 - Descrição do projeto 
A proposta do sistema é cadastrar todos os equipamentos, montar um mapa da 
localização e cronograma de todas as obras onde os equipamentos serão utilizados, 
e o nome do funcionário responsável, desta forma, o funcionário que precisar do 
equipamento, fará a solicitação ao estoque e saberá quando o equipamento estará 
disponível para uso, podendo assim programar no seu cronograma, o período para a 
utilização do equipamento, este controle possibilitará à construtora ver a real demanda 
de cada equipamento e com isto saber se é necessário a aquisição ou não, de novos 
equipamentos, e evitar possíveis problemas com perdas ou extravios de 
equipamentos. 
 
2.3 - Organização do Projeto 
A realização do projeto justifica-se pelo crescimento da CONSTRUTORA 
CONSTRUINDO SEMPRE e a dificuldade gerada para o controle de alocação de 
equipamentos nas obras. 
Visto que, como minha modalidade de estudos é E.A.D, ficarei responsável por todas 
as etapas de desenvolvimento do projeto. 
3 - METODOLOGIA DO PROJ ETO 
 Para desenvolver uma solução eficiente para o processo de alocação de 
equipamentos em obras foi necessário analisar os recursos utilizados no processo, 
realizar o levantamento de sistemas, pessoal e tecnologias envolvidos. 
Foram elaborados diagramas para delimitar as funções de cada usuário, bem como 
as ações necessárias em cada momento. 
 
3.1 – Requisitos do projeto 
Análise de requisitos 
O sistema será web, para que possa ser acessado de qualquer local onde for 
necessário. 
É necessário que o sistema realize as seguintes funções: 
• Cadastrar usuários: 
Cadastrar usuários em uma base de dados com diferentes permissões de 
acesso para utilizarem o sistema 
• Validar Cadastro: 
Verificar na base de dados se o usuário já possui cadastro no sistema, caso 
possua, emitir mensagem de alerta 
• Fazer login no sistema: 
Permitir ao usuário fazer login no sistema após estar cadastrado 
• Validar acesso ao sistema: 
Validar o acesso do usuário através de login e senha. 
• Cadastrar Equipamentos: 
Cadastraros equipamentos da construtora disponibilizados para alocação 
em suas obras 
• Cadastrar Estoque: 
Manter controle de equipamentos disponíveis ou não em estoque com datas 
de entrada e saída, e nome do responsável pela solicitação e devolução do 
equipamento. 
• Cadastrar Obra: 
Cadastrar as obras que estão em execução e as que serão iniciadas com 
datas de início e enceramento. 
• Cadastrar Movimentação de locação: 
Cadastrar a entrada e saída de equipamentos com as informações da 
localização do mesmo e previsão de tempo de uso. 
 
3.2 - Modelagem de negócio 
Processo Serviços Envolvidos 
Cadastrar usuário Na tela de acesso para 
cadastro preencher os 
dados solicitados 
Departamento Pessoal 
Fazer login no sistema Na tela de Login 
preencher os dados nome 
de usuário e senha para 
acessar o sistema 
Funcionário 
Cadastrar Equipamento Após preencher os 
campos do formulário de 
cadastro de equipamento. 
clicar no botão “gravar” 
para armazenar o registro 
Diretoria de Obras 
(Planejamento) 
Cadastrar Estoque Após preencher os 
campos do formulário de 
entrada e saída de 
equipamento clicar no 
botão “gravar” para 
armazenar o registro 
Funcionário (estoque) 
Cadastrar Obra Após preencher os 
campos do formulário de 
cadastro de obra, clicar no 
botão “gravar” para gravar 
o registro dos dados da 
obra 
Diretoria de Obras 
(Planejamento) 
Cadastrar Movimentação 
de Alocação 
Após verificar a 
necessidade de utilização 
do equipamento, o 
funcionário responsável 
solicita a alocação a 
diretoria de obras 
Diretoria de Obras 
(Execução) 
 
 
 
 
 
4 - Requisitos Funcionais e Não-funcionais do Sistema 
4.1 - São requisitos funcionais do sistema 
• Cadastrar usuários 
• Validar Cadastro 
• Fazer login no sistema 
• Validar acesso ao sistema 
• Cadastrar equipamento 
• Controle de estoque 
• Criar pedido de alocação 
• Finalizar pedido de alocação 
• Inserir, alterar, excluir dados de usuários cadastrados no sistema 
• Inserir, alterar, excluir dados de equipamentos cadastradas no sistema 
 
4.2 - São requisitos não-funcionais do sistema 
• A base de dados deve ser protegida e o acesso apenas restrito ao 
gerenciamento de T.I. 
• Apenas usuários cadastrados pelo departamento pessoal terão acesso ao 
sistema 
• Apenas a Diretoria de Obras poderá cadastrar dados das obras da 
Construtora no sistema 
• Apenas usuários da Diretoria de Obras (Execução) poderão solicitar 
alocação de equipamento para obra. 
• O sistema será acessado via web. 
 
 
 
 
 
 
5 – DIAGRAMAS 
5.1 – Diagrama de caso de uso 
 
5.2 - Diagrama de classes 
 
5.3 - Diagrama Entidade Relacionamento 
 
 
 
 
 
 
 
 
 
 
 
6 - BANCO DE DADOS PARA O SOFTWARE 
Após estudo realizado sobre qual o melhor banco de dados a ser utilizado para o 
sistema, optamos pela utilização do MySql 
O MySQL se tornou o mais popular banco de dados open source do mundo porque 
possui consistência, alta performance, confiabilidade e é fácil de usar. Atualmente é 
usado em mais de 6 milhões de instalações em todos os continentes (inclusive na 
Antártica), que vão desde instalações em grandes corporações a específicas 
aplicações embarcadas. 
O servidor de banco de dados MySQL fornece o melhor em escalabilidade, ostentando 
a capacidade para lidar com aplicações profundamente enraizadas com uma pegada 
de apenas 1MB de executar maciços data warehouses segurando terabytes de 
informação. A flexibilidade da plataforma é uma característica forte do MySQL com 
todos os sabores de Linux, UNIX e Windows que está sendo suportado. E, a natureza 
de código aberto do MySQL permite a personalização completa para adicionar 
requisitos exclusivos para o servidor de banco de dados. 
MySQL oferece um dos mais poderosos motores de banco de dados transacionais no 
mercado. As características incluem ACID completo (atômica consistente isolado 
duráveis) suporte a transações, bloqueio de nível de linha ilimitada, capacidade de 
transação distribuída, e suporte a transações multi-versão onde os leitores não 
bloqueiam escritores e vice-versa. integridade de dados completo também é 
assegurada através da integridade imposta por servidor referencial, os níveis de 
isolamento de transação especializados e detecção de impasse instante. 
Usando o MySQL para novos projetos de desenvolvimento, as empresas estão 
percebendo economias de. Conseguido através da utilização das arquiteturas de 
servidores de banco de dados e scale-out do MySQL que utilizam hardware 
commodity de baixo custo, as empresas estão descobrindo que eles podem alcançar 
níveis surpreendentes de escalabilidade e desempenho, tudo a um custo que é muito 
menos do que os oferecidos pela proprietária e fornecedores de software de scale-up. 
Além disso, a confiabilidade e fácil manutenção do MySQL significa que os 
administradores de banco de dados não percam tempo solucionando problemas de 
desempenho ou tempo de inatividade. 
O MySQL funciona em mais de 20 plataformas, incluindo Linux, Windows, HP-UX, 
AIX, Netware, dando ao sistema, flexibilidade e controle. 
A MySQL oferece uma gama completa de produtos certificados, testados e 
homologados pela própria MySQL AB, além de treinamento consultoria e suporte para 
fazer o seu projeto bem-sucedido. 
 
Linguagens de acesso ao MySQL 
 * C, C++, Java 
 * PHP, Python, Perl 
 * Ruby 
 * .NET, Oracle Forms, Microsoft ASP 
 * Delphi, Kylix 
 * LISP, Lasso, Pike, TCL, Guile, Rexx, Dylan. 
 
 
 
 
 
 
 
 
 
 
 
 
6.1 - Tabelas do Banco de Dados 
 
 
6.2 – Script SQL 
CREATE TABLE IF NOT EXISTS 'funcionarios' ( 
 'idfuncionario' int(11) NOT NULL AUTO_INCREMENT, 
 'matricula' int(11) NOT NULL DEFAULT '0', 
 'cpf' int(11) NOT NULL DEFAULT '', 
 'usuarios_idusuario' int(11) NOT NULL, 
 'funcao' varchar(45) NOT NULL DEFAULT '0', 
 PRIMARY KEY ('idfuncionario'), 
 FOREIGN KEY ('usuarios_idusuario'), 
) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 ; 
 
INSERT INTO ‘funcionários’ (‘matricula’, ‘cpf’, ‘usuários_idusuario’,’ funcao’) VALUES 
(‘numero da matricula do funcionario’, ‘cpf do funcionario’, ‘idusario da tabela usarios’, 
‘função do funcionáro’) ; 
 
7 - PROGRAMANDO EM C 
7.1 - Cadastro Funcionários 
#include <stdio.h> 
#include <stdlib.h> 
#include <locale.h> 
#include <string.h> 
typedef struct DadosFuncionarios{ 
 int matricula; 
 int cpf[11]; 
 char funcao[30]; 
} formulario; 
int repetiMenu(){ 
 fflush(stdin); 
 int tecla; 
 printf("\n\n\t\t ##############################\n"); 
 printf("\t tecle Space e depois Enter para fazer uma nova consulta\n"); 
 printf("\t\t\tOu tecle Enter duas vezes para sair...\n"); 
 tecla = getchar(); 
 
 if(tecla == 32){ 
 system("cls"); 
 return 1; 
 } 
} 
 
void desenharTitulo(){ 
 printf(" %c----------------------------------------------------------------------------
%c\n",254,254); 
 printf(" | ");printf("\t\t\t CADASTRO DE FUNCIONÁRIO");printf("\t\t\t |\n"); 
 printf(" %c----------------------------------------------------------------------------
%c\n",254,254); 
 printf("\n\n"); 
} 
void chamaMenu(){ 
 int opcaoMenu; 
 char tecla; 
 float soma = 0; 
 int i = 0; 
 do{ 
 printf(" %c----------------------------------------------------------------------------
%c\n",254,254); 
 printf(" | "); printf("\t\t\t CADASTRO DE FUNCIONÁRIO");printf("\t\t\t |\n"); 
 printf(" %c----------------------------------------------------------------------------%c\n",254,254); 
 printf("\t\t %c----------%c\t\t\t\t ",254,254); 
 printf("\t\t\t | MENU ");printf("|\t\t\t\t \n"); 
 printf("\t\t %c-----------------------------------%c \n",254,254); 
 printf("\t\t | <1> Novo cadastro |\n"); 
 printf("\t\t |-----------------------------------|\n"); 
 printf("\t\t | <2> Excluir cadastros |\n"); 
 printf("\t\t |-----------------------------------|\n"); 
 printf("\t\t | <3> Listar |\n"); 
 printf("\t\t |-----------------------------------|\n"); 
 printf("\t\t | <5> Sair |\n"); 
 printf("\t\t %c-----------------------------------%c\n",254,254); 
 printf("\t\t\tOPÇÃO: "); 
 scanf("%d",&opcaoMenu); 
 fflush(stdin); 
 switch (opcaoMenu){ 
 case 1: 
 system("cls"); 
 incluir(); 
 break; 
 case 2: 
 system("cls"); 
 excluir(); 
 break; 
 case 3: 
 system("cls"); 
 listar(); 
 break; 
 case 4: 
 printf("\t\t bye"); 
 remove(TMPDATA_ORDE); 
 exit(0); 
 break; 
 default : 
 system("cls"); 
 break; 
 } 
 }while(opcaoMenu > 6 && printf("\t\t\t\tOpção invalida\n\n\n")); 
} 
int achaMatricula(int *matricula){ 
 formulario Dados; 
 FILE *pf; 
 pf = fopen(DATA_FILENAME,"r"); 
 rewind(pf); 
 if(pf == NULL){ 
 printf("\t\t Erro ao abrir arquivo\n"); 
 } 
 //percorrer todo o arquivo procurando se já existe a matricula. 
 while(fread(&Dados,sizeof(Dados),1,pf) != 0){ 
 if(*matricula == Dados.matricula){ 
 return 1; 
 } 
 } 
 fclose(pf); //fecha arquivo 
} 
//função para validar a matricula 
int validaMatricula(int *matricula){ 
 formulario Dados; 
 FILE *pf; 
 int total = 0; 
 pf = fopen(DATA_FILENAME,"r"); 
 rewind(pf); 
 if(pf == NULL){ 
 printf("\t\t Erro ao abrir arquivo\n"); 
 } 
 //percorrer todo o arquivo procurando se já existe a matricula. 
 while(fread(&Dados,sizeof(Dados),1,pf) != 0){ 
 if(*matricula == Dados.matricula){ 
 printf("\t\t A matricula já cadastrada. Digite uma nova 
matricula\n"); 
 return 1; 
 } 
 } 
 fclose(pf); //fecha arquivo 
} 
int percorre(){ 
 formulario Dados; 
 FILE *pf; 
 int total = 0; 
 pf = fopen(DATA_FILENAME,"r"); 
 rewind(pf); 
 while(fread(&Dados,sizeof(Dados),1,pf) != 0){ 
 total++; 
 } 
 return total; 
} 
int incluir(){ 
 formulario Dados; 
 FILE *pf; 
 int total = 0; 
 pf = fopen(DATA_FILENAME,"a+"); 
 desenharTitulo(); 
 printf("\t\t %c--------------------------------------%c\n",254,254); 
 printf("\t\t | ");printf("\t\t INCLUIR");printf("\t\t |\n"); 
 printf("\t\t %c--------------------------------------%c\n",254,254); 
 printf("\n"); 
 printf("\t\t |--------------------------------------|\n"); 
 
 do{ 
 printf("\t\t |MATRÍCULA : "); 
 scanf("%d",&Dados.matricula); 
 }while(validaMatricula(&Dados.matricula) == 1); 
 fflush(stdin); 
 printf("\t\t |funcao : "); 
 gets(Dados.funcao); 
 fflush(stdin); 
 printf("\t\t |cpf : "); 
 scanf("%f",&Dados.cpf); 
 fflush(stdin); 
 printf("\t\t |--------------------------------------|\n\n"); 
 if(pf == NULL){ 
 printf("\t\t Erro ao criar arquivo\n"); 
 } 
 //escreve no arquivo 
 fwrite(&Dados,sizeof(Dados),1,pf); 
 //verifica se o arquivo foi fechado com sucesso 
 if(fclose(pf) == 0){ 
 printf("\t\t Funcionario cadastrado com sucesso\n"); 
 }else{ 
 printf("\t\t Problemas ao salvar o arquivo\n"); 
 } 
 printf("\t\t Funcionarios cadastrados : %d",percorre()); 
 if(repetiMenu() == 1){ 
 chamaMenu(); 
 } 
} 
7.2 - Listar Funcionários 
int listar(){ 
 fflush(stdin); 
 FILE *pf; 
 formulario Dados; 
 int registro = 0; 
 float soma = 0; 
 pf = fopen(DATA_FILENAME,"r"); 
 rewind(pf); 
 
 if(pf == NULL){ 
 printf("\t\t Erro ao abrir arquivo\n"); 
 } 
 desenharTitulo(); 
 printf("\t\t %c--------------------------------------%c\n",254,254); 
 printf("\t\t | ");printf("\t\t LISTAR");printf("\t\t |\n"); 
 printf("\t\t %c--------------------------------------%c\n",254,254); 
 printf("\n"); 
 printf("\t\t %c--------------------------------------%c\n",254,254); 
 printf("\t\t | ");printf("MATRICULA \t FUNCAO CPF");printf("\t |\n"); 
 printf("\t\t %c--------------------------------------%c\n",254,254); 
 
 while(fread(&Dados, sizeof(Dados), 1, pf) != 0){ 
 printf("\t\t %d %s 
%.2f\n",Dados.matricula,Dados.funcao,Dados.cpf); 
 printf("\t\t ----------------------------------------\n"); 
 registro++; 
 soma += Dados.cpf; 
 } 
 printf("\n\t\t Total de resgistros : %d Total de cpf : %.2f\n",registro,cpf); 
 fclose(pf); 
 if(repetiMenu() == 1){ 
 chamaMenu(); 
 } 
} 
 
void excluirValida(){ 
 formulario Dados; 
 FILE *pf; 
 pf= fopen(DATA_FILENAME,"w+"); 
 
 if(pf==NULL){ 
 printf("\n\tArquivo Funcionario.txt não pode ser aberto.\n"); 
 } 
 
 FILE *temporario; 
 temporario = fopen(TMPDATA_FILENAME,"a+"); 
 
 if(temporario == NULL){ 
 printf("\nArquivo Funcionario.txt não pode ser aberto.\n"); 
 } 
 
 while(fread(&Dados,sizeof(Dados),1,temporario)!=0){ 
 fwrite(&Dados,sizeof(Dados),1,pf); 
 } 
 
 fclose(pf); 
 fclose(temporario); 
} 
7.3 - Excluir funcionário 
int excluir(){ 
 FILE *pf; 
 FILE *temporario; 
 pf = fopen(DATA_FILENAME,"a+"); 
 temporario = fopen(TMPDATA_FILENAME,"a+"); 
 formulario Dados; 
 int matricula; 
 rewind(pf); 
 if(pf == NULL){ 
 printf("\t\t Erro ao abrir arquivo\n"); 
 } 
 desenharTitulo(); 
 printf("\t\t %c--------------------------------------%c\n",254,254); 
 printf("\t\t | ");printf("\t\t EXCLUIR");printf("\t\t |\n"); 
 printf("\t\t %c--------------------------------------%c\n",254,254); 
 printf("\n"); 
 printf("\t\t |--------------------------------------|\n"); 
 printf("\t\t |MATRÍCULA : "); 
 scanf("%d",&matricula); 
 if(achaMatricula(&matricula) == 0){ 
 printf("\n\t\t\t Matricula não encontrada\n"); 
 if(repetiMenu() == 1){ 
 chamaMenu(); 
 } 
 } 
 //fread tem retorno 0 quando chega ao final do arquivo 
 while(fread(&Dados,sizeof(Dados),1,pf) != 0){ 
 if(Dados.matricula != matricula){ 
 fwrite(&Dados,sizeof(Dados),1,temporario); 
 } 
 } 
 //fecha os arquivos 
 fclose(pf); 
 fclose(temporario); 
 //remove o arquivo original e renomeia o arquivo temporario 
 excluirValida(); 
 remove(TMPDATA_FILENAME); 
 printf("\n\t\t\t Excluido com sucesso\n"); 
 //chama menu. 
 if(repetiMenu() == 1){ 
 chamaMenu(); 
 } 
} 
 if(repetiMenu() == 1){ 
 chamaMenu(); 
 } 
} 
int main(){ 
 setlocale(LC_ALL,""); 
 chamaMenu(); 
} 
 
7.4 - Cadastro Equipamento 
#include <stdio.h> 
#include <stdlib.h> 
#include <locale.h> 
#include <string.h> 
typedef struct DadosEqupamento{ 
 char numSerie;[30] 
 char nome[30]; 
 char descricao[100]; 
} formulario; 
int repetiMenu(){ 
 fflush(stdin); 
 int tecla; 
 printf("\n\n\t\t ##############################\n"); 
 printf("\t tecle Space e depois Enter para fazer uma nova consulta\n"); 
 printf("\t\t\tOu tecle Enter duas vezes para sair...\n"); 
 tecla = getchar(); 
 if(tecla == 32){system("cls"); 
 return 1; 
 } 
} 
 
void desenharTitulo(){ 
 printf(" %c----------------------------------------------------------------------------
%c\n",254,254); 
 printf(" | ");printf("\t\t\t CADASTRO DE EQUIPAMENTO");printf("\t\t\t |\n"); 
 printf(" %c----------------------------------------------------------------------------
%c\n",254,254); 
 printf("\n\n"); 
} 
void chamaMenu(){ 
 int opcaoMenu; 
 char tecla; 
 float soma = 0; 
 int i = 0; 
 do{ 
 printf(" %c----------------------------------------------------------------------------
%c\n",254,254); 
 printf(" | "); printf("\t\t\t CADASTRO DE EQUIPAMENTO");printf("\t\t\t 
|\n"); 
 printf(" %c----------------------------------------------------------------------------
%c\n",254,254); 
 printf("\t\t %c----------%c\t\t\t\t ",254,254); 
 printf("\t\t\t | MENU ");printf("|\t\t\t\t \n"); 
 printf("\t\t %c-----------------------------------%c \n",254,254); 
 printf("\t\t | <1> Novo cadastro |\n"); 
 printf("\t\t |-----------------------------------|\n"); 
 printf("\t\t | <2> Excluir cadastros |\n"); 
 printf("\t\t |-----------------------------------|\n"); 
 printf("\t\t | <3> Listar |\n"); 
 printf("\t\t |-----------------------------------|\n"); 
 printf("\t\t | <5> Sair |\n"); 
 printf("\t\t %c-----------------------------------%c\n",254,254); 
 printf("\t\t\tOPÇÃO: "); 
 scanf("%d",&opcaoMenu); 
 fflush(stdin); 
 switch (opcaoMenu){ 
 case 1: 
 system("cls"); 
 incluir(); 
 break; 
 case 2: 
 system("cls"); 
 excluir(); 
 break; 
 case 3: 
 system("cls"); 
 listar(); 
 break; 
 case 4: 
 printf("\t\t bye"); 
 remove(TMPDATA_ORDE); 
 exit(0); 
 break; 
 default : 
 system("cls"); 
 break; 
 } 
 }while(opcaoMenu > 6 && printf("\t\t\t\tOpção invalida\n\n\n")); 
} 
int achaMatricula(int *matricula){ 
 formulario Dados; 
 FILE *pf; 
 pf = fopen(DATA_FILENAME,"r"); 
 rewind(pf); 
 if(pf == NULL){ 
 printf("\t\t Erro ao abrir arquivo\n"); 
 } 
 //percorrer todo o arquivo procurando se já existe a matricula. 
 while(fread(&Dados,sizeof(Dados),1,pf) != 0){ 
 if(*numSerie == Dados.numSerie){ 
 return 1; 
 } 
 } 
 fclose(pf); //fecha arquivo 
} 
//função para validar a matricula 
int validaEquipamento(char *numSerie){ 
 formulario Dados; 
 FILE *pf; 
 int total = 0; 
 pf = fopen(DATA_FILENAME,"r"); 
 rewind(pf); 
 if(pf == NULL){ 
 printf("\t\t Erro ao abrir arquivo\n"); 
 } 
 //percorrer todo o arquivo procurando se já existe o numero de serie. 
 while(fread(&Dados,sizeof(Dados),1,pf) != 0){ 
 if(*matricula == Dados.numSerie){ 
 printf("\t\t O Equpamento já está cadastrad. Tente cadstrar outo 
equipamento\n"); 
 return 1; 
 } 
 } 
 fclose(pf); //fecha arquivo 
} 
int percorre(){ 
 formulario Dados; 
 FILE *pf; 
 int total = 0; 
 pf = fopen(DATA_FILENAME,"r"); 
 rewind(pf); 
 while(fread(&Dados,sizeof(Dados),1,pf) != 0){ 
 total++; 
 } 
 return total; 
} 
int incluir(){ 
 formulario Dados; 
 FILE *pf; 
 int total = 0; 
 pf = fopen(DATA_FILENAME,"a+"); 
 desenharTitulo(); 
 printf("\t\t %c--------------------------------------%c\n",254,254); 
 printf("\t\t | ");printf("\t\t INCLUIR");printf("\t\t |\n"); 
 printf("\t\t %c--------------------------------------%c\n",254,254); 
 printf("\n"); 
 printf("\t\t |--------------------------------------|\n"); 
 
 do{ 
 printf("\t\t |NUMERO DE SERIE : "); 
 scanf("%d",&Dados.numSerie); 
 }while(validaSerial(&Dados.numSerie) == 1); 
 fflush(stdin); 
 printf("\t\t |funcao : "); 
 gets(Dados.funcao); 
 fflush(stdin); 
 printf("\t\t |cpf : "); 
 scanf("%f",&Dados.cpf); 
 fflush(stdin); 
 printf("\t\t |--------------------------------------|\n\n"); 
 if(pf == NULL){ 
 printf("\t\t Erro ao criar arquivo\n"); 
 } 
 //escreve no arquivo 
 fwrite(&Dados,sizeof(Dados),1,pf); 
 //verifica se o arquivo foi fechado com sucesso 
 if(fclose(pf) == 0){ 
 printf("\t\t Equipamento cadastrado com sucesso\n"); 
 }else{ 
 printf("\t\t Problemas ao salvar o arquivo\n"); 
 } 
 printf("\t\t Equipamento cadastrados: %d",percorre()); 
 if(repetiMenu() == 1){ 
 chamaMenu(); 
 } 
} 
 
 
 
 
 
 
 
 
 
8 - ESTUDO PARA OTIMIZAÇÃO DE ROTAS 
Sabendo que o motorista tem que passar por 4 cidades, podemos determinar o 
número de rotas possíveis realizando o cálculo: n! /4! (n-4)! tal que n = número de 
cidades, o resultado desta expressão informa a quantidade de rotas possíveis que o 
veículo poderá percorrer para chegar ao seu destino, totalizando 24 rotas possíveis, 
como demonstrado 4! = 4. 3. 2. 1 = 24. 
Supondo as rotas fictícias dadas, se o veículo que estará realizando a entrega 
passar pela cidade A e não passar pela cidade B então conseguirá chegar à cidade 
C mais rápido, chegamos a seguinte sequência proposicional: 
 (a^ ~b) - > c 
 
8.1 - Tabela Verdade: 
a b c ~b (a ^ ~ b) c (a ^ ~ b) c 
V V V F F V V 
V V F F F F V 
V F V V V V V 
V F F V V F F 
F V V F F V V 
F V F F F F V 
F F V V V V V 
F F f v V F V 
 
 
 
 
 
 
 
9 - CONCLUSÃO 
Após concluir o projeto, ficou evidente a necessidade de um controle mais rigoroso do 
uso dos equipamentos da empresa, visto que todos os equipamentos tem um grande 
fluxo de uso e dão suporte a realização de várias obras em diferentes locais, sendo 
assim são manipulados por muitos funcionários, a falta deste controle ocasiona o 
extravio e até a perda de alguns equipamentos. Com a implantação do sistema, ficou 
mais fácil saber onde se encontram os equipamentos e quem é o responsável pelo 
mesmo, conseguindo com estas informações uma melhor programação para o uso 
destes recursos. 
Podemos concluir portanto, que o desenvolvimento de um software para a gestão de 
equipamentos foi fundamental no auxílio d plano de expansã da empresa. 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
10 - REFERÊNCIAS 
Principais razões para usar mysql 
Disponível em: 
http://www.hti.com.br/principais-razoes-para-usar-mysql 
Acessado em 15/0/2018 
 
Por que usar mysql 
Disponível em: 
https://www.oficinadanet.com.br/artigo/484/por_que_usar_mysql 
Acessado em 15/0/2018 
 
PEEIRA, FÁBIO - Programação em C ; Editora Érica, 2003, 6ª Edição. 
 
Relacionamento entre classes e dependências 
Disponível em: 
http://www.ateomomento.com.br/orientacao-a-objetosuml-relacionamento-entre-
classes-dependencia/ 
Acesso em 15 de maio de 2018 
 
LAUDON, K. C., LAUDON, J. P., Sistemas de Informação Gerencias: Administrando a 
empresa digital. 5. ed. São Paulo. Prentice-Hall, 2004. 
 
O`BRIEN, J. A. Sistema de informação e as decisões gerenciais na era da internet. 
São Paulo. Tradução da 9ª ed. Editora Saraiva, São Paulo, 2001. 
 
TORQUATO, P.R.G.; SILVA, G. P. Tecnologia e estratégia: uma abordagem analítica 
e prática. Revista de Administração, São Paulo: v. 35, n.1, p.72-85, jan./mar. 2000

Continue navegando