- Especificação
- Structs
- Diagrama de esquema
- Implementação
- Funcionamento
Esse projeto tem o objetivo de administrar e controlar os dados gerados em uma oficina mecânica. O programa será criado em cima de 3 “pilares” ( ** Proprietario, Veiculo e Manutencao ** ), onde esses serão as structs principais do programa, tendo mais 4 structs ( ** Endereço, Telefone, Data e Oficina ** ) “auxiliares”. O programa em questão será responsável por cadastrar, alterar e excluir um proprietário e/ou um veículo, onde a manutenção terá apenas a função cadastrar e excluir, respeitando as possíveis regras de alteração e exclusão. Tendo essas funcionalidades ativas, o programa terá algumas funcionalidades a mais, como, por exemplo, apresentação de todos os dados (proprietários, veículos e manutenções) e pesquisas filtradas, onde serão dadas, pelo usuário, as informações chaves de cada struct principal para suas respectivas pesquisas.
- Proprietario :
typedef struct{
char nome[TAM_NOME]; // Nome do proprietário
char cpf[TAM_CPF]; // CPF do proprietário ##(chave)##
Endereco endereco; // Endereço do proprietário
Telefone telefone; // Telefone do proprietário
}Proprietario;
A struct do tipo Proprietario é responsável por manipular o arquivo binário “ ** dbProp.dat ** ”, onde será salvo os dados lido por essa struct, para futuros cadastros, alterações, exclusões ou pesquisas.
- Veiculo:
typedef struct{
char placa[TAM_PLACA]; // A placa do veículo ##(chave)##
char modelo[TAM_MODELO]; // O modelo do veiculo
char fabricante[TAM_FABRICANTE]; // O fabricante do veiculo
char chassi[TAM_CHASSI]; // O chassi do veiculo
char ano[TAM_ANO]; // O ano de fabricação do veiculo
}Veiculo;
A struct do tipo Veiculo é responsável por manipular o arquivo binário “ ** dbVeic.dat ** ”, onde será salvo os dados lido por essa struct, para futuros cadastros, alterações, exclusões ou pesquisas.
- Manutenção:
typedef struct{
char placa[TAM_PLACA]; // A placa do veículo ##(chave)##
char cpf[TAM_CPF]; // O cpf do proprietário ##(chave)##
char descricao[TAM_DESCRICAO]; // A descrição da manutenção
float valorPecas; // O valor das peças da manutenção
float valorObra // O valor da mão-de-obra da manut.
Data data; // A data da manutenção ##(chave)##
}Manutencao;
A struct do tipo Manutenção é responsável por manipular o arquivo binário “ ** dbManut.dat ** ”, onde será salvo os dados lido por essa struct, para futuros cadastros, exclusões ou pesquisas.
- Endereço:
typedef struct endereco{
char descricao[TAM_DESCRICAO]; // A descrição do endereço
char cidade[TAM_CIDADE]; // A cidade do endereço
char estado[TAM_ESTADO]; // O estado do endereço
}Endereco;
A struct do tipo Endereço é responsável por manipular o endereço ultilizado na struct ** Proprietario. **
- Telefone:
typedef struct telefone{
char ddd[TAM_DDD]; // O DDD do telefone
char telefone[TAM_TEL];// O telefone
}Telefone;
A struct do tipo Telefone é responsável por manipular o telefone que será utilizado na struct de ** Proprietario ** .
- Data:
typedef struct data{
int dia, mes, ano;
//Informações acerca da data
}Data;
A struct Data é responsável por manipular a data que será utilizada na struct de Manutenção
- Oficina:
typedef struct oficina{
char nome[TAM_NOME]; // Nome da oficina
char endereco[TAM_NOME]; // Endereço da oficina
}Oficina;
A struct Oficina é responsável por receber os dados da oficina ao inicializar o programa, apresentando o nome e o endereço da oficina durante a execução do programa.
- Arvore:
typedef struct Arvore{
Proprietario dado; // Dados de um proprietario
struct Arvore *esquerda; // Proprietario à esquerda (menor nome alfabeticamente)
struct Arvore *direita; // Proprietario à direita(maior nome alfabeticamente)
}Arvore;
A struct Arvore é responsável por carregar os dados de um proprietario na memoria em ordem alfabetica do nome dos proprietarios.
O diagrama de esquema a seguir mostra todos os componentes utilizados nas structs desse projeto, além das informações chaves em destaque
Esse projeto está sendo desenvolvido por meio da Linguagem de Programação C, utilizando como base a biblioteca windows.h no segundo semestre de 2016. Seu código fonte está disponível com o nome físico ** Main.c **
O ponto de entrada da aplicação é a função WinMain, onde se cria uma instância no sistema, apartir dessa instancia são criados duas caixas de dialogo, que interagem com o usuário através de eventos recebidos e lançados pelo sistema que são nomeados como "mensagens":
Por ser uma aplicação baseada no modelo "Dialog Based", só trabalhamos com "Dialog Box", segue em anexo o fluxograma resumido do funcionamento geral da aplicação:

