CENTRO FEDERAL DE EDUCAÇÃO TECNOLÓGICA DE MINAS GERAIS
FERNANDO FREITAS LAURA DE OLIVEIRA RIBEIRO
TRABALHO TEÓRICO – PROGRAMAÇÃO DE COMPUTADORES I
BELO HORIZONTE 02 DE SETEMBRO DE 2013
ÍNDICE INTRODUÇÃO ______________________________________ FUNDAMENTAÇÃO TEÓRICA ________________________ DESENVOLVIMENTO ________________________________ RESULTADOS APRESENTADOS _______________________ CONCLUSÃO ________________________________________ REFERENCIAS BIBLIOGRÁFICAS ______________________
INTRODUÇÃO A evolução humana é um aspecto tanto que curioso de se abordar. Com o passar do anos a sociedade sempre apresentou certas necessidades de adaptação ao meio que sempre foram significativas, pois é graças a necessidade de adaptação que foram desenvolvidas tecnologias e ferramentas para que otimizassem a produtividade humana. Considerando esse pequeno trecho como assunto norteador, foi desenvolvido um software que auxiliasse no cadastro e busca de clientes e filmes para uma locadora buscando organização e otimização do tempo que seria gasto caso o trabalho fosse manual. Este software foi desenvolvido baseado nas aulas teóricas da disciplina de Programação de computadores em ‘C’, tendo como auxilio bibliotecas, laços, funções, structs, arquivos na construção. Como resultado, foi obtido um código extenso porém de bastante ajuda na otimização do trabalho e organização, proporcionando assim rápido acesso as informações que seriam necessárias ao comerciante e ao contratante, que será detalhado ao longo do trabalho.
FUNDAMENTAÇÃO TEÓRICA Para construção do software foram usados diversos artifícios, entre eles estão: - Bibliotecas de acesso; - Laços; - Funções; - Structs e; - Arquivos Bibliotecas: No trabalho utilizamos 3 bibliotecas: #include <stdio.h>,#include <stdlib.h> e #include <string.h> . Em cada uma dessas bibliotecas existem tipos padrões, que são acessados pelo programa para facilitar o uso de muitas funções. Para melhor explicação, foi construída uma tabela com as funções de cada biblioteca: <stdio.h>
Standard Input Output (entradas e saídas padrão): este cabeçalho contém a definição da estrutura FILE, usada para todas as entradas (input) e saídas (output), além das definições de todas as funções que lidam com a abertura, fechamento, etc de arquivos. A famosa função printf também é definida aqui, juntamente com sprintf, fprintf e toda a família de funções relacionadas.
<stdlib.h>
Standard library functions (funções da biblioteca padrão): Contém abort (término anormal do programa), exit (término normal), atoi, itoa (conversão de texto para inteiro), malloc, calloc, free (módulo de memória dinâmica), rand, srand (números randômicos), putenv, getenv (administração do ambiente), qsort (ordenação), strtod, strtol (conversão de string para double/long), sleep (suspender a execução por um certo período de tempo)
<string.h>
Manipulação de strings: aqui são definidas todas as funções que lidam com a representação padrão de como as strings são usadas em C. Temos strcmp (comparação de strings), strlen (obtenção do comprimento de uma string), strcpy (cópia de uma string para outra), strcat (concatenação de strings), strstr (substring numa string), memset (atribuição de uma região RAM para um caracter), memcpy (copiar memória), memmove (copiar memória cuidando da região de sobreposição).
Funções: Uma função é um bloco de código de programa que pode ser usado diversas vezes emsua execução. O uso de funções permite que o programa fique mais legível, mais bem estruturado. Um programa em C consiste, no fundo, de várias funções colocadas juntas. Essas funções possuem argumentos que são as entradas que a função recebe. É através dos argumentos que passamos parâmetros para a função. Muitas vezes é necessário fazer com que uma função retorne um valor ou então ela pode ser do tipo void, que não retorna nenhum valor. As funções normalmente retornam o número 0. Pode-se especificar um tipo de retorno indicando-o antes do nome da função. Mas para dizer ao C o que será retornado será preciso o uso da palavra reservada return. Forma geral tipo_de_retorno nome_da_função (lista_de_argumentos) { código_da_função }
Structs: Uma estrutura agrupa várias variáveis numa só. A estrutura serve para agrupar um conjunto de dados não similares, formando um novo tipo de dados. Essas estruturas podem também ter qualquer tipo de dados válidos em C como por exemplo, ponteiros, strings, vetores, etc. Para acessar os elementos de uma structs é necessário utilizar-se o (.) (ponto). (Ex: Variavel.membro). struct nome_do_tipo_da_estrutura { tipo_1 nome_1; tipo_2 nome_2; ... tipo_n nome_n; } variáveis_estrutura; Arquivos: Os arquivos são vistos pela linguagem C como sequencias de bytes sem qualquer formato especial, pois são elementos externos e independentes de qualquer programa. Por isso é necessária uma variável do tipo FILE* para que tenham uma boa representação. Os arquivos permitem gravar os dados de um programa de forma permanente em mídia digital. Vantagens de utilizar arquivos: Armazenamento permanente de dados: as informações permanecem disponíveis mesmo que o programa que as gravou tenha sido encerrado, ou seja, podem ser consultadas a qualquer momento. • Grande quantidade dados pode ser armazenada: A quantidade de dados que pode ser armazenada depende apenas da capacidade disponível da mídia de armazenamento. Normalmente a capacidade da mídia é muito maior do que a capacidade disponível na memória RAM. •
Acesso concorrente: Vários programas podem acessar um arquivo de forma concorrente. •
A linguagem C trata os arquivos como uma sequência de bytes. Esta sequência pode ser manipulada de várias formas e para tanto, existem funções em C para criar, ler e escrever o conteúdo de arquivos independente de quais sejam os dados armazenados. Em linguagem C existem dois tipos de arquivos: 1) Arquivo texto: Armazena caracteres que podem ser mostrados diretamente na tela ou modificados por um editor de texto. Exemplos de arquivos texto: documentos de texto, código fonte C, páginas XHTML. 2) Arquivo binário é uma sequência de bits que obedece regras do programa que o gerou. Exemplos: Executáveis, documentos do Word, arquivos compactados. Modo
Significado
"r"
Abre um arquivo texto para leitura. O arquivo deve existir antes de ser aberto.
"w"
Abrir um arquivo texto para gravaçao. Se o arquivo não existir, ele será criado. Se já existir, o conteúdo anterior será destruído.
"a"
Abrir um arquivo texto para gravação. Os dados serão adicionados no fim do arquivo ("append"), se ele já existir, ou um novo arquivo será criado, no caso de arquivo não existente anteriormente.
"rb"
Abre um arquivo binário para leitura. Igual ao modo "r" anterior, só que o arquivo é binário.
"wb"
Cria um arquivo binário para escrita, como no modo "w" anterior, só que o arquivo é binário.
"ab"
Acrescenta dados binários no fim do arquivo, como no modo "a" anterior, só que o arquivo é binário..
"r+"
Abre um arquivo texto para leitura e gravação. O arquivo deve existir e pode ser modificado.
"w+"
Cria um arquivo texto para leitura e gravação Se o arquivo existir, o conteúdo anterior será destruído. Se não existir, será criado.
"a+"
Abre um arquivo texto para gravação e leitura. Os dados serão adicionados no fim do arquivo se ele já existir, ou um novo arquivo será criado, no caso de arquivo não existente anteriormente.
"r+b" Abre um arquivo binário para leitura e escrita. O mesmo que "r+" acima, só que o arquivo é binário "w+b" Cria um arquivo binário para leitura e escrita. O mesmo que "w+" acima, só que o arquivo é binário. "a+b" Acrescenta dados ou cria uma arquivo binário para leitura e escrita. O mesmo que "a+" acima, só que o arquivo é binário.
DESENVOLVIMENTO
Como ferramenta construtiva para a otimização de algum tipo de trabalho na sociedade, são desenvolvido por programadores softwares de grande ajuda no dia a dia. O software aqui construído foi desenvolvido com objetivo puramente acadêmico. O software contém em suas linhas de código subdivisões que podemos associar as matérias aprendidas no curso. Inicialmente, foram usadas as bibliotecas que contém funções que serão utilizadas para algum fim.
IMAGEM BIBLIOTECAS
Em seguida, foram definidas estruturas (entidades) para que fosse possível o acesso de informações que seriam úteis no cadastro e busca (de pessoas ou filmes). Essas estruturas agrupam dados que serão necessários que o usuário digite, para cadastro ou busca. O código feito possui quatro (4) entidades. São elas: Clientes; Filmes; Preços; e Funcionários. Essas entidades são escritas utilizando-se o recurso das estruturas, também conhecidas como structs. Deve-se lembrar Deve-se lembrar que é importante considerar a organização do código e a identação, para que nenhum transtorno ocorra caso haja má interpretação de quem receberá o código para análise ou até mesmo para compreensão de outros programadores, etc. Após a definição das entidades a serem usadas, foram adicionadas as funções que serão usadas no código. Funções com o tipo void, ou seja, não retornam um valor específico. São funções que normalmente são chamadas de procedimentos. Essas funções estão localizadas no fim do código, após o main(){}, mas estão declaradas após as entidades, pois normalmente são indicadas abaixo das bibliotecas definidas. As funções que foram declaradas seguem a proposta do trabalho que instrui a criar um programa que seja útil no cadastro, busca e afins. Abaixo estão algumas das funções declaradas no código:
IMAGEM FUNÇÕES DECLARADAS E IMAGEM DE UMA FUNÇÃO NO FIM DO CÓDIGO.
Os menus definidos no código facilitam o acesso que o usuário terá quando fizer o uso pratico do software. A linguagem utilizada foi simples para que o software fosse de acesso a qualquer pessoa. Inicialmente são oferecidas cinco (5) opções para o usuário: 1- Clientes 2- Filmes 3- Preços 4- Funcionários 5- Sair
Então deve-se escolher a opção desejada. Para qualquer uma das opções escolhidas, novas opções apareceriam na tela que promove a interação com o usuário do programa. Essas opções envolvem o cadastro, busca, exclusão* e mostra dos dados requeridos. Os arquivos foram abertos no desktop do computador, o sistema operacional usado foi o Windows 7 (visto que há diferença entre o Windows e o Linux no diretório de busca). A utilização de arquivos no código deve-se ao fato de existir a possibilidade de gravar os dados que são solicitados, podendo assim ser acessado posteriormente.
MOSTRAR MODO DE ABERTURA DE UM ARQUIVO DENTRO DE UM DO.
Para que o programa rodasse sem algum problema, podendo ser cadastrado mais de um usuário por vezes, foram utilizados laços que só seriam parados caso o usuário quisesse, entrando com o numero correspondente a “Sair” no menu. As funções que já haviam sido declaradas foram colocadas após o main(), tem como corpo de função arquivos que gravarão o que será o argumento dessa função e o que ela faz no software. Além disso, laços também são utilizados para que exista uma continuidade no cadastro do usuário, e no depois, quando deverá-se mostrar o que foi cadastrado, caso o usuário solicite uma busca dos componentes de algumas das entidades.
MOSTRAR PROTOTIPO DA FUNÇÃO
*Nota: A função excluir apresentou erro por má implementação, portanto foi desconsiderada do código para que o software funcionasse perfeitamente. RESULTADOS Os resultados apresentados foram satisfatórios. Embora o código do software tenha ficado extenso, o projeto final, que era exatamente construir um software para uma locadora cadastrar, buscar filmes e clientes, obteve êxito. A facilidade de acesso, a linguagem da interface do programa é totalmente condizente com a realidade de hoje em dia, na qual precisamos aperfeiçoar e aproveitar ao máximo o tempo para que proporcione um conforto ao cliente e ao usuário direto do programa. Como deixado ao longo do desenvolvimento, a função que deveria excluir os usuários ou filmes cadastrados apresentou má implementação. Portanto foi desconsiderada no código, como avisado ao Professor Orientador na apresentação oral do software. Abaixo estão algumas telas mostrando o sucesso ao se implementar o programa.
CONCLUSÃO Para construção do software foi colocado como objetivo principal fazer um software simples para que a utilização não fosse complicada para o usuário. Desse modo foi construído de forma objetiva e com palavras de conhecimento que são básicas no nosso cotidiano. As implementações de funções, arquivos, serviram para que o código se estruturasse de forma a consolidar os dados que seriam introduzidos no software. Para que o software melhorasse tanto no código quanto no entendimento do cliente, para descomplicar muitos quesitos, poderiam ser adicionadas outras entidades que auxiliassem para que não houvesse, por exemplo, algum engano que pudesse vir a ocorrer com nomes ou títulos de filmes equivalentes. Enfim, após analise da fundamentação teórica, desenvolvimento do trabalho e resultados obtidos concluímos que houve total êxito no cumprimento dos objetivos do trabalho.
REFERENCIAS BIBLIOGRÁFICAS DAMAS, Luís. Linguagem C. LTC, 10 ed. Rio de Janeiro, 2007. Curso de C, ministrado via Internet pela UFMG. <http://ead1.eee.ufmg.br/curso/C> Site da Internet < http://www.numaboa.com.br/informatica/tutos/c/1002-c-bibliotecas-
tipos?showall=&limitstart=>