ATPS - Programação Estruturada II
Por: GFEDSF • 3/4/2015 • Trabalho acadêmico • 3.491 Palavras (14 Páginas) • 522 Visualizações
Tecologia em Analise e Desenvolviemento de Sistemas
PROGRAMAÇÃO ESTRUTURADA II
Sumário
Introdução
Programa contador de linhas
Validando o programa Contador de Linhas
Conclusão
Bibliografia
Introdução
Esse trabalho visa criar um programa que leia, através de uma linha de comando, códigos fontes escritos em linguagem C e retorne o número de linhas total do código, além do total de linhas em branco, total de linhas de comentário simples e total de linhas de comentário multi-linhas.
Programa contador de linhas
O programa foi desenvolvido na linguagem C. Ele é dividido em dois arquivos ou dois módulos, um principal e outro auxiliar: MainCodeCount.c e LibCodeCount.h. O primeiro arquivo contêm a função principal que será chamada através de um comando no Prompt. O segundo arquivo, que é uma biblioteca, contêm uma função que faz a contagem das linhas.
A função principal recebe obrigatoriamente como primeiro parâmetro o nome do arquivo a ser pesquisado o número de linhas. A função pode também receber três parâmetros que são opcionais: -h ou -help; -c ou -comment; e -s ou -silent.
Ao receber o parâmetro -h ou -help o programa apresentará para o usuário uma explicação de como funciona o programa. Ao receber o parâmetro -c ou -comment o programa contará o número de linhas de comentário, se esse parâmetro não for enviado o programa só mostrará o número total de linhas e o número de linhas em branco do arquivo. O terceiro parâmetro que pode ser enviado para o programa é o parâmetro -s ou -silent que fará o programa não apresentar resultados na tela de comando.
Eis a seguir os dois módulos que compõem o código fonte do nosso programa:
Arquivo MainCodeCount.c
#include
#include
#include
#include "LibCodeCount.h" /* para ccRun() */
int main(int argc, char *argv[])
{
int i, help = 0, comment = 0, silent = 0;
int nLines = 1, nLinesCommentS = 0, nLinesCommentM = 0, nLinesEmply = 0;
for (i=2; i
{
help = help || (strstr(argv[i], "-help" ) != NULL);
help = help || (strstr(argv[i], "-h" ) != NULL);
comment = comment || (strstr(argv[i], "-comment") != NULL);
comment = comment || (strstr(argv[i], "-c" ) != NULL);
silent = silent || (strstr(argv[i], "-silent" ) != NULL);
silent = silent || (strstr(argv[i], "-s" ) != NULL);
}
printf("\n---------------------------------------------------------------------------");
if (help)
{
printf("\n");
printf("O programa CodeCount conta linhas de um codigo escrito em linguagem C.\n");
printf("Alem de contar a quantidade de linhas do codigo, o programa CodeCount\n");
printf("conta o total de linhas em branco.\n");
printf("\n");
printf("Para usar esse programa digite o endereco do programa juntamente com seu\n");
printf("nome. Depois digite o endereco e nome do arquivo C que quer contar as\n");
printf("linhas.\n");
printf("\n");
printf("Se alem de contar as linhas, voce quiser saber o total de linhas de\n");
printf("comentario simples e comentario multi-linhas, digite \"-c\" ou \"-comment\"\n");
printf("apos o nome do arquivo.\n");
printf("\n");
printf("Voce pode ainda obter uma pequena explicacao do programa digitando\n");
printf("\"-h\" ou \"-help\".\n");
printf("\n");
printf("Se voce nao quer que apareca o resultado na tela digite \"-s\" ou \"-silent\".\n");
}
if (!silent)
{
printf("\ncounting for \"%s\"...\n\n", argv[1]);
}
ccRun(argv[1], &nLines, &nLinesCommentS, &nLinesCommentM, &nLinesEmply, comment, silent);
printf("\n\n");
system("PAUSE");
}
Arquivo MainCodeCount.h
#include
#include
void ccRun(char* file, int* nLines, int* nLinesCommentS, int* nLinesCommentM, int* nLinesEmpty, int comment, int silent)
{
FILE *dataFile;
short int ch1 = 0;
short int ch2 = 0;
short int ch3 = 0;
...