ATPS DE PROGAMÇÂOO ESTRUTURADA II REALIZADA
Por: vocarvalho • 16/5/2015 • Trabalho acadêmico • 4.172 Palavras (17 Páginas) • 273 Visualizações
Objetivo do Desafio
Construir um Relatório virtual de um ciclo completo de desenvolvimento de um pequeno aplicativo de linda de comando (console).
“Desenvolvimento de um pequeno aplicativo de linda de comando – console”
ETAPA 1
Código Fonte:
int main(int argc, char *argv[])
{
int i, silent, help, comment, nLines, nLinesComment, nLinesEmpty, count, noComment;
silent = 0;
nLines = 0;
help = 0;
comment = 0;
//system("cls");
#include
void ccRun(char file[], int *nLines, int *nLinesComment, int *nLinesEmpty){
void ccRun(char* file, int* nLines, int* nLinesComment, int* nLinesEmpty);
ETAPA 2
Código Fonte:
int main(int argc, char *argv[])
{
int i, silent, help, comment, nLines, nLinesComment, nLinesEmpty, count, noComment;
silent = 0;
nLines = 0;
help = 0;
comment = 0;
//system("cls");
for(i=2; i < argc; i++){
//VERIFICANDO SE FOI PASSADO O PARAMETRO SILENT
silent = silent || ( strstr(argv[i], "-silent" ) != NULL);
silent = silent || ( strstr(argv[i], "-s" ) != NULL);
//VERIFICANDO SE FOI PASSADO O PARAMETRO HELP
help = help || ( strstr(argv[i], "-help" ) != NULL);
help = help || ( strstr(argv[i], "-h" ) != NULL);
//VERIFICANDO SE FOI PASSADO O PARAMETRO COMMENT
comment = comment || ( strstr(argv[i], "-comment" ) != NULL);
comment = comment || ( strstr(argv[i], "-c" ) != NULL);
}
printf("\n-------------------------------------\n");
printf("| Code Count - Programmers Tool |\n");
printf("| Version 1.1 - 2009 |\n");
printf("-------------------------------------\n\n\n");
if(!silent){
printf("Iniciando a leitura do arquivo \"%s\"\n", argv[1]);
printf("Exibindo progresso da execucao de contagem...\n\n");
}
if(comment){
printf("Adicionando execucao da funcao de contagem de comentarios...\n\n");
}else{
printf("Funcao de contagem de comentarios nao solicitada '-c', abortando contagem de comentarios...\n\n");
}
if(help){
printf("Sinintaxe correta: MainCodCount
printf("Voce selecionou o opcao de AJUDA\n");
printf("[-h] ou [-help] para obter ajuda\n");
printf("[-s] ou [-silent] para suprimir informacoes do programa\n");
printf("[-c] ou [-comment] para mostrar o tfotal de linhas comentadas\n");
}
ccRun(argv[1], nLines, nLinesComment, nLinesEmpty);
printf("Programa contador de linhas\n");
printf("\nArquivo: \"%s\"\n",argv[1]);
printf("\nTotal de linhas: %d \t\t(%.2f%%)",nLines,(100.0/nLinesComment)*nLines);
if(comment==1 && silent==1){
printf("\nNumero de linhas comentadas: %d \t(%.2f%%)",nLinesComment,(100.0/nLines)*nLinesComment);
printf("\nNumero de linhas vazias: %d \t(%.2f%%)",nLinesEmpty,(100.0/nLines)*nLinesEmpty);
printf("\n\nLinhas de codigo sem comentarios e linhas vazias: %d \t(%.2f%%)",nLines-nLinesComment-nLinesEmpty,(100.0/nLines)*(nLines-nLinesComment-nLinesEmpty));
}else if(comment==1){
printf("\nNumero de linhas comentadas: %d \t(%.2f%%)",nLinesComment,(100.0/nLines)*nLinesComment);
printf("\n\nLinhas de codigo sem comentarios: %d \t(%.2f%%)",nLines-nLinesComment,(100.0/nLines)*(nLines-nLinesComment));
}else if(silent==1){
printf("\nNumero de linhas vazias: %d \t(%.2f%%)",nLinesEmpty,(100.0/nLines)*nLinesEmpty);
printf("\n\nLinhas de codigo sem linhas vazias: %d \t(%.2f%%)",nLines-nLinesEmpty,(100.0/nLines)*(nLines-nLinesEmpty));
}
return 0; }
ETAPA 3
Código Fonte:
}
//Contador de comentários e linhas brancas
for(i=0;i
//Comentários em blocos
if(texto[i]=='/' && texto[i+1]=='*'){
bCom=1;
nCom++;
}
if(bCom==1 && texto[i]=='\n'){
nCom++;
}
if(texto[i]=='*' && texto[i+1]=='/'){
bCom=0;
}
//Fim
//Comentário de linha única
if(lCom==1 && texto[i]!=' '){
if(texto[i]=='/' && texto[i+1]=='/'){
...