Aplicativo de linha de comando
Projeto de pesquisa: Aplicativo de linha de comando. Pesquise 862.000+ trabalhos acadêmicosPor: mroliveira • 19/6/2014 • Projeto de pesquisa • 1.766 Palavras (8 Páginas) • 302 Visualizações
INTRODUÇÃO
O presente trabalho visa mostrar a experiência adquirida com o ciclo completo de desenvolvimento de um pequeno aplicativo de linha de comando.
Etapa 1
Solução do problema
Para a solução do problema proposto serão criados dois módulos.
O arquivo principal é o MainCodeCount.cpp que contém o módulo toda a rotina de contagem das linhas do arquivo. Este módula realiza a leitura do arquivo informado para análise. Depois de realizada a análise é chamada a função ccRun que está no arquivo LibCodeCount.c, passando alguns parâmetros necessários para realização da rotina.
A função ccRun é responsável por receber os dados passados por parâmetros, pelo módulo principal, formata-los e exibir as informações ao usuário.
Códigos fonte dos arquivos gerados
Aqui temos os códigos fonte dos arquivos gerados no desenvolvimento desta etapa.
Arquivo: MainCodeCount.c
#include
#include
#include
#include
#include
#include "LibCodeCount.h"
int main(int argc, char *argv[])
{
int numeroLinhas, numeroComentarios, numeroVazias;
numeroLinhas = numeroComentarios = numeroVazias = 0;
char *aux;
if(argc < 2)
{
puts("\nUso correto: >MainCodeCount nomearquivo.ext [-c]");
}
else
{
printf("\n\tCode Count - Programmers Tool");
printf("\n\t Versao 1.0 - 2013");
aux = argv[1];
printf("\n\n\tContagem para: \"%s\"", aux);
if(argc == 3)
{
if ((strcmp(argv[2], "-c") == 0) || (strcmp(argv[2], "-comment") == 0))
{
ccRun(argv[1], &numeroLinhas, &numeroComentarios, &numeroVazias, 0, 0);
printf("\n\tNumero de linhas..........: %i", numeroLinhas);
printf("\n\tNumero de linhas vazias...: %i", numeroVazias);
printf("\n\n\n");
}
else
{
ccRun(argv[1], &numeroLinhas, &numeroComentarios, &numeroVazias, 1, 0);
printf("\n\tNumero de linhas...................: %i", numeroLinhas);
printf("\n\tNumero de linhas com comentarios...: %i", numeroComentarios);
printf("\n\tPorcentagem de comentarios.........: %.2f", 100);
printf("\n\tNumero de linhas vazias............: %i", numeroVazias);
printf("\n\n\n");
}
}
system("PAUSE");
return EXIT_SUCCESS;
}
Arquivo: LibCodeCount.c
#include
#include
void ccRun(char* file, int* nLines, int* nLinesComment, int* nLinesEmpty,
int noComment, int silent)
{
FILE * pFile;
int c;
int n = 0;
pFile = fopen (file, "r");
if (pFile !=NULL)
{
do
{ // DO
c = fgetc(pFile);
if (c == '\n')
{
n++;
}
} //DO
while (c != EOF);
fclose (pFile);
*nLines = n;
}
else
{
printf("\nNao foi possivel abrir o arquivo \"%s\"\n\n",argv[1]);
}
}
Etapa 2, 3 e 4
Passos 1 a 4 das etapas 2, 3 e 4
A função main() pode ter parâmetros formais. Mas o programador não pode escolher quais serão eles. A declaração mais completa que se pode ter para a função main() é: Int main (int argc, char *argv[]);
Os parâmetros argc e argv dão ao programador acesso à linha de comando com a qual o programa foi chamado.
O argc (argument count) é um inteiro e possui o número de argumentos com as quais a função main() foi chamada na linha de comando. Ele é, no mínimo 1, pois o nome do programa é contado como sendo o primeiro argumento.
O argv (argument values) é um ponteiro para uma matriz de strings. Cada string desta matriz é um dos parâmetros da linha de comando. O argv[0] sempre aponta para o nome do programa (que, como já foi falado, é considerado o primeiro argumento). É para saber quantos elementos temos em argv que temos argc.
Passo 2
Foram realizadas alterações nos dois módulos para atender
...