Você está na página 1de 23

RESUMO

Este projeto tem por objetivo aplicar os conhecimentos adquiridos nas


disciplinas de lógica de programação e engenharia de software. O projeto a ser
desenvolvido deverá contemplar um aplicativo para o controle de um
estacionamento, utilizando a linguagem C na qual será abordado todo o processo de
desenvolvimento do software, assim como apresentar toda a sua estrutura lógica. A
ferramenta (IDE) utilizada para o desenvolvimento é o DEV C++, também será
abordado recursos como a utilização de arquivos textos para armazenamento de
informações e explicação do código e lógica com a apresentação da interface de
todo o programa.

Palavra-chave: Linguagem C, Estacionamento, Desenvolvimento.


ABSTRACT

This project aims to apply the knowledge acquired in the logic of disciplines
programming and software engineering. The project to be developed should include
an application to control a car, using the C language in which will be addressed
throughout the software development process as well as provide all its logical
structure. The tool (IDE) used for the development is the DEV C ++, also will address
the use of resources such as text files for storing information and explanation of the
code and logic with the presentation of the whole program interface.

Keyword: C Language, Parking Development.


SUMÁRIO

1.
INTRODUÇÃO.......................................................................................................... 10

2. CICLO DE VIDA DO SOFTWARE


...................................................................................................................................11

2.1.1. REQUISITOS DO SOFTWARE


................................................................................................................................... 11

2.1.2. CODIFICAÇÃO
................................................................................................................................... 12

2.1.3. FLUXOGRAMA
................................................................................................................................... 12

2.1.4. PSEUDOCÓDIGO DO PROGRAMA


................................................................................................................................... 13

2.1.5. LÓGICA E OPERAÇÕES DO PROGRAMA


................................................................................................................................... 14

2.2.1. O CÓDIGO
................................................................................................................................... 16

2.2.2. TESTES
...................................................................................................................................18

2.2.3. INTERFACE DO PROGRAMA.....................................................................19


CONCLUSÃO
................................................................................................................................... 25

REFERÊNCIAS......................................................................................................... 26
LISTA DE FIGURAS

FIGURA 1 – MODELO CASCATA...........................................................................11

FIGURA 2 - FLUXOGRAMA.....................................................................................12

FIGURA 3 - EXEMPLO DE USO ARQUIVO TEXTO EM C......................................17

FIGURA 4 - TESTE ENTRADA DO MESMO VEÍCULO...........................................18

FIGURA 5 - TESTES SAÍDA DO MESMO VEÍCULO ..............................................19

FIGURA 6 - TELA INICIAL PRIMEIRA UTILIZAÇÃO..............................................20

FIGURA 7 - TELA PRINCIPAL DE OPERAÇÕES...................................................20

FIGURA 8 - TELA DE ENTRADA DE VEÍCULOS....................................................21


FIGURA 9 - RECIBO DE ENTRADA........................................................................22

FIGURA 10 - TELA SAÍDA DE VEÍCULOS..............................................................22


FIGURA 11 - TELA RECIBO DE SAÍDA..................................................................23

FIGURA 12 - TELA FECHAMENTO DE CAIXA.......................................................23


FIGURA 13 - TELA RECIBO FECHAMENTO DE CAIXA........................................24

FIGURA 14 - TELA DE CONFIGURAÇÕES.............................................................24


10

1. INTRODUÇÃO

Com a rápida e crescente evolução tecnológica, o mercado no ramo de


software cresce e evolui a cada dia que passa, atualmente existem diversos tipos de
empresas especializadas em diferentes tipos de softwares, mas afinal, o que é um
software? O termo “software" foi usado pela primeira vez em 1958 em um artigo
escrito pelo cientista americano John Wilder Tukey. Foi ele o responsável por
introduzir o termo "bit" para designar "dígito binário". O software pode ser definido
como uma seqüência de instruções escritas para ser interpretado pelo computador,
em outras palavras o software são os programas utilizados pelas empresas para o
gerenciamento de suas atividades. Entendendo o conceito do que é um software,
este projeto irá apresentar de forma geral todo o processo de desenvolvimento de
um software para o gerenciamento de um estacionamento, onde deve ser controlada
a entrada e saída de veículos utilizando a linguagem C. Linguagem esta que foi
desenvolvida nos anos de 1969 – 1973 por Dennis Richey e Kerningham David. A
linguagem C é extremamente rigorosa e é a linguagem que mais se aproxima da
lógica interna de máquina e estrutura, ou seja, o hardware, o que faz dela uma
poderosa linguagem de programação, principalmente pelo fato de ser possível o
desenvolvimento de softwares para diferentes tipos de OS, como o Linux por
exemplo.
11

2. Ciclo de Vida do Software

O ciclo de vida do software se baseia no modelo cascata, definido como um


modelo clássico de desenvolvimento de software, também abordado como top-dow
na qual surgiu na década de 1970 até meados de 1980 e foi o único modelo de
aceitação geral, é um modelo de desenvolvimento de software seqüencial adotado
para o desenvolvimento do projeto para o estacionamento, esta seqüência pode ser
vista na Figura1 logo abaixo.

2.1.1. Requisitos do Software

Os requisitos funcionais de um software definem o que ele deve fazer, ou


seja, as funcionalidades que o software deve possuir para atender as necessidades
dos usuários. Tais requisitos focam no que o software deva fazer, sem se preocupar
como fazer. Sendo assim o projeto aqui proposto deve atender os seguintes
requisitos:

1. Registrar a entrada de veículos.

2. Registrar a saída de veículos.

3. Realizar a cobrança do tempo de permanência.


12

4. Cobrar valor por hora e hora adicional.

5. Realizar o fechamento de caixa.

2.1.2. Codificação

A codificação se dá na fase de implementação do software e iremos detalhar


toda a codificação assim desde o fluxograma, pseudocódigo e a própria
codificação em seu código definitivo e funcional.

2.1.3. Fluxograma

A figura 2 mostra todo o fluxograma do software que nada mais é que a


representação gráfica que mostra de forma descomplicada o fluxo dos
procedimentos que o software executa.
13

2.1.4. Pseudocódigo do Programa.

O pseudocódigo ou Portugol é a forma escrita natural de explanar um código


conforme o programa abaixo.
15

14

2.1.5. Lógica e Operações do Software

Com base no fluxograma e no pseudocódigo, fica clara a lógica do programa


a ser desenvolvido. Lógica esta que consiste em desenvolver o algoritmo com o
objetivo de controlar o fluxo de veículos sendo a entrada e saída, cobrando o valor
da hora normal e horas adicionais de acordo com o tempo de permanência e por fim
realizar o fechamento de caixa totalizando as operações ocorridas no dia, sendo
assim foi iniciado a codificação atendendo as seguintes especificações:

Registrar a entrada de veículos:

O veículo deve ser registrado no sistema utilizando como chave de


identificação a placa e modelo. Ao registrar o veículo o mesmo será
armazenado em um arquivo texto contendo a placa, modelo, data e hora
de entrada, a nomenclatura deste arquivo é a própria placa do veículo,
sendo o arquivo texto individual para cada veículo registrado, facilitando e
reduzindo a quantidade de código e posterior manutenção, além de
facilitar também os testes. A entrada do veículo também é condicional a
quantidade de vagas disponíveis no estacionamento, esta quantidade
deve ser configurada na inicialização do programa que também ficará
armazenada em um arquivo texto e carregada na inicialização do
programa, se houver quantidade o suficiente de vagas disponíveis,
permite estacionar o veículo, caso contrário emite um alerta de que este
lotado não permitindo registrar mais veículos.

Registrar a saída de Veículos:

Com base no arquivo texto armazenado cujo sua nomenclatura é o


próprio número de placa, ao realizar a saída do veículo informando o
número da placa, o sistema irá ler o seu conteúdo e passar o valor de
cada dado armazenado para as variáveis utilizadas para registrar a saída,
tendo como principal variável a hora de entrada, obtendo a hora de
entrada é realizado o cálculo com base na hora atual, mais
especificamente é realizado a subtração das horas e minutos de entrada 15
com as horas e minutos de saída, após realizar o cálculo outra variável
recebe o valor do cálculo e realiza a operação de multiplicação pelo valor
da primeira hora, valor este que também deve ser previamente cadastrado
nas configurações de inicialização do sistema. Caso o tempo de
permanência seja menor ou igual a um, realiza a multiplicação pelo valor
da primeira hora. Agora se o tempo de permanência ultrapassar 1 hora e
10 minutos, será cobrado o valor adicional que também deve ser
configurado na inicialização do sistema. Sendo assim para cada hora
adicional, ou seja, que ultrapasse a quantidade de 1 Hora é cobrado um
valor adicional. Após realizar o cálculo do valor total a pagar, todas as
informações de cada veículo são armazenadas em um arquivo texto que
será utilizado posteriormente para o fechamento de caixa, e o arquivo
individual do veículo é apagado, liberando assim mais uma vaga para o
próximo veículo.

Realizar o fechamento de caixa:

Após movimentações de entrada e saída de veículos, um arquivo texto


é criando compondo todos os veículos que entraram e saíram do
estacionamento, este arquivo é utilizado para realizar a totalização em
valores das operações no dia, esta operação basicamente faz a leitura de
todos os valores até o fim do arquivo, dentro de um laço, onde cada valor
é somado a uma variável que por fim imprime na tela o valor total das
operações.

Configurações:

A operação de configurações é uma alternativa implementada para


facilitar a manutenção do programa, pois permite configurar a quantidade de
vagas disponíveis, isso agrega valor ao programa devido ao fato de que
possibilita ao usuário ou cliente, configurar a quantidade quando necessário
seja por reforma de um determinado espaço no estacionamento, ou até
mesmo a expansão do estabelecimento. Além de configurar a quantidade de
vagas, também possibilita configurar os valores da primeira hora e demais 16
horas, considerando o fato de que reajustes em tipo de atividade é comum.
Resumidamente a operação de configuração apenas armazena os
valores em um arquivo texto, para ser carregado na inicialização do sistema e
ser utilizado nas demais operações do sistema.

2.2.1. O código

O programa foi codificado armazenando suas informações em arquivos texto,


para desenvolver estes recursos foi estudado entrada e saída em arquivos textos na
linguagem C. Primeiramente na manipulação de arquivos textos deve ser respeitado
três etapas básicas:

 Abertura do arquivo;

 Ler e gravar dados;

 Fechar o arquivo.

Na linguagem C as operações com arquivos envolvem um identificador de fluxo que


é uma variável do tipo FILE* que nada mais é que um ponteiro, este tipo de ponteiro
já esta incluso na biblioteca padrão do C e pode ser utilizado sem preocupações.
Portanto foi utilizado no software para armazenamento e leitura das informações
conforme um trecho mostrado na figura 3. Trecho este responsável por armazenar
os dados de configurações do programa, como quantidade de vagas, valor da hora e
valor da hora adicional.
17

Funções para trabalhar com arquivos texto:

A função fopen() precisa conter o endereço e o nome do arquivo, caso não


seja informado o endereço, a leitura ou criação do arquivo é feita no diretório onde
se encontrar o executável.

Exemplo: arquivo_texto = fopen(“Parâmetros.txt”, w);

Onde foi atribuído a variável ponteiro o nome do arquivo entre aspas duplas mais a
letra “w” separada por uma vírgula. Mas afinal do que se trata esta letra “w” ?
A letra no final do arquivo define o modo de abertura do arquivo conforme a tabela
abaixo:

Letra Tipo Definição


r (read) Read Abre o arquivo em Modo Leitura Somente
r+ Read+write Abre p/ Leitura + Escrita
w (write) Write Abre o arquivo em Modo Escrita
a Append Abre o arquivo e anexar linhas
a+ Append +Leitura Abre o arquivo em Modo Leitura e Anexar linhas
18

Todo o restante do código foi implementado com base nos conceitos e


técnicas aprendidas nas disciplinas de programação e pode ser mais bem
visualizado no arquivo código fonte do programa.

2.2.2. Testes

Foi realizada a utilização funcional de todas as operações do sistema, a fim


de se realizar os testes para definir qualidades e o mapeamento de possíveis
problemas e propor as soluções mais adequadas ao sistema, onde um dos pontos
levantados nos testes foi validar a entrada de um veículo caso o mesmo já esteja
estacionado, o programa não deve deixar que isso ocorra e emitir um alerta de que o
veículo já se encontra estacionado conforme mostra a figura 4.

Também deveria ser validada a saída do veículo, caso o usuário realize a


digitação de uma placa incorreta ou de um veículo que já saiu do estacionamento,
deveria ser emitido um alerta de que não existe o veículo ou o mesmo já saiu a
figura abaixo mostra a implementação realizada:
19

Os pontos aqui levantados no estágio de testes explanam apenas uma


pequena parte do que foi validado na etapa de testes. Este processo deve ser
realizado constantemente buscando melhorias para manter a qualidade do sistema.

2.2.3. Interface do Programa

Resumidamente conforme já visto nos tópicos anteriores, o programa tem por


objetivo registrar a entrada e saída de veículos e realizar o fechamento de caixa.
Portanto a partir deste tópico será abordada a interface do programa, ou seja, as
telas na qual o usuário irá visualizar para realizar a operações acima citadas.

A figura 6 mostra a tela principal que o usuário irá visualizar em sua primeira
utilização. Sendo a tela de configuração, onde a mesma só é exibida na primeira
utilização utilizando com parâmetro para apresentá-la, o arquivo texto contendo os
valores de configurações gravados, caso exista o arquivo texto exibe tela de
configuração, caso contrário exibe tela principal com as operações.
20

A figura 7 mostra as operações referente as funcionalidades do programa,


além de mostrar o total de vagas que o estacionamento possui, total de vagas
disponíveis, valor da hora e valor adicional por hora.

Operações estas descritas abaixo:

1 – Registra a entrada de veículos armazenando placa, modelo data e hora.

2 – Registra a saída de veículo realizando o cálculo de permanência e valor.


21

3 – Realiza o fechamento de caixa após a saída dos veículos e exibe o total.

4 – Configurações de quantidade de vagas, valor da hora e hora adicional.

5 – Encerra todo o sistema.

A figura 8 mostra a entrada de um veículo no estacionamento, com o


preenchimento de apenas dois campos básicos, sendo a placa e o modelo/marca.
22

Logo após a inclusão da entrada é emitido o recibo de entrada conforme


mostra a figura 9.

Fonte:Elaborado pelo autor


A operação dois “saída de veículos” realiza a saída de um veículo, utilizando
a hora de entrada e a hora de saída, obtendo assim o tempo de permanência e
realizando o cálculo do valor, esta tela pode ser vista na figura 10.

23

Logo após a saída do veículo informando apenas a placa, será emitido o


recibo de saída, contendo data e hora da entrada e data e hora da saída, assim
como o tempo total de permanência com seu respectivo valor, a tela do recibo pode
ser vista na figura 11.
A operação três mostrada na figura 12 realiza o fechamento do caixa
totalizando todos os movimentos do dia, onde é solicitado o dia no formato conforme
mostra a figura.

24

Após realizar digitar a data para o fechamento, será exibido em tela conforme
a figura 13 o fechamento do caixa com o valor total de movimentos no dia.
Por fim a operação quatro possibilita que o usuário configure a quantidade de
vagas disponível no estacionamento, assim como o valor da primeira hora e valor da
hora adicional, a tela pode ser vista na figura 14.

25

CONCLUSÃO
Com base neste projeto podemos concluir que a linguagem C além de ser uma
poderosa ferramenta de desenvolvimento, pode ser utilizada para o desenvolvimento
de softwares, utilizando diversos recursos de funções internas e também de
bibliotecas externas. O desenvolvimento é didático, sendo de extrema importância
para o aprendizado, principalmente pela lógica de programação aprendida para a
conclusão do programa e claro também com relação aos tipos de variáveis, cálculos
e funções.

26

REFERÊNCIAS
REFERÊNCIAS

http://www.batebyte.pr.gov.br/modules/conteudo/conteudo.php?conteudo=299

http://bitsnerd.blogspot.com.br/2012/03/historia-do-software.html

http://www.cprogressivo.net/2013/10/Operacoes-com-arquivos-FILE-fopen-modos-
de-abertura-fechamento-modo-texto-binario-EOF-fclose-fcloseall.html

http://pt.wikipedia.org/wiki/C_%28linguagem_de_programa%C3%A7%C3%A3o%29

Você também pode gostar