Sistema de seguimiento de errores

¿Qué es el sistema de seguimiento de errores? Un sistema de seguimiento de errores es un software que realiza un seguimiento de los errores que el usuario encontró en cualquier desarrollo de software o en cualquier proyecto.

Las tres funcionalidades principales del sistema de seguimiento de errores son:

  1. Crear un nuevo archivo de texto y escribir los detalles ingresados ​​por el usuario en el archivo de texto.
  2. Opción para cambiar el estado del error.
  3. Informe de archivo de error específico.

Ahora veremos cuales son las funciones involucradas

Función del controlador : la idea es mantener una identificación variable que almacene la identificación de los errores que están registrados hasta ahora. Existen principalmente tres opciones entre las cuales el usuario puede seleccionar la funcionalidad:

  1. Crear nuevo error
  2. Cambiar estado de error
  3. Reportar un error
  4. Salida

Las declaraciones de cambio se utilizan para cambiar a las funcionalidades que prefiera el usuario.

Crear un nuevo error: esta función le pedirá al usuario su nombre y creará un nuevo archivo de texto como un nombre con el número de identificación adjunto.

Por ejemplo:

  • Si el usuario crea un archivo de error por primera vez, la identificación que inicialmente es 0 incrementada en 1 y si el usuario ingresa el nombre como archivo de error , entonces el archivo que nuestro programa creará se llamará bugfile1.txt 
  • Si el usuario crea un archivo de error por tercera vez, la identificación se incrementó en 1 tres veces y si el usuario ingresa el nombre como archivo de error nuevamente, el archivo que nuestro programa creará se llamará bugfile3.txt

Después de nombrar el archivo, tome la información del usuario y agréguela al archivo de texto con la hora de creación adjunta. 

La información que toma un usuario para un bug es:

  1. Error presentado por el usuario.
  2. Tipo de error
  3. Prioridad de errores
  4. Descripción del error
  5. Estado del error

Cambiar estado de error: tome la información sobre el error y cambie el estado del error en el archivo deseado. Además, actualice la hora de la última actualización del error.

Informar de un error: Tome la información sobre el error. Como el nombre del archivo de error e imprimir el contenido del error.

A continuación se muestra la implementación del sistema de seguimiento de errores:

Diver Function

// C program for the Driver Function
// of the Bug Tracking System
 
#include <stdio.h>
 
// Driver Code
void main()
{
    printf("***************");
    printf("BUG TRACKING SYSTEM");
    printf("***************\n");
 
    int number, i = 1;
 
    // Id initialised to 0
    int id = 0;
 
    // while loop to run
    while (i != 0) {
        printf("\n1. FILE A NEW BUG\n");
        printf("2. CHANGE THE STATUS OF THE BUG\n");
        printf("3. GET BUG REPORT\n4. EXIT");
        printf("\n\n ENTER YOUR CHOICE:");
 
        scanf("%d", &number);
 
        // Using switch to go case by case
        switch (number) {
        case 1:
            id++;
 
            // Creating a New Bug
            filebug(id);
            break;
        case 2:
 
            // Change Status of Bug
            changestatus();
            break;
        case 3:
 
            // Report the Bug
            report();
            break;
        case 4:
            i = 0;
            break;
        default:
            printf("\ninvalid entry");
            break;
        }
    }
}

Create a Bug

// C program for filing a bug
// in Bug Tracking System
 
#include <conio.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <time.h>
 
// Function to file the Bug into
// the Bug Tracking System
void filebug(int id)
{
    printf("**********");
    printf("FILING A BUG");
    printf("***********\n");
 
    // Current Time
    time_t CurrentTime;
    time(&CurrentTime);
 
    char name[20], bugtype[50];
    char bugdescription[1000];
    char bugpriority[30];
    int bugstatus;
 
    FILE* ptr;
 
    // User name
    printf("Enter your name:\n");
    scanf("%s", name);
    char ids[10];
    itoa(id, ids, 10);
    strcat(name, ids);
    char ex[] = ".txt";
    strcat(name, ex);
 
    // Filename of the Bug
    printf("Filename :%s\n", name);
    ptr = fopen(name, "w");
 
    // Case when file cannot be created
    if (ptr == NULL)
        printf("cannot create file!!!\n");
 
    fprintf(ptr, "DATE AND TIME : %s",
            ctime(&CurrentTime));
 
    // ID in the Text File
    fprintf(ptr, "BUG ID    :    %d\n", id);
 
    // Adding New Line in Text File
    fprintf(ptr, "\n");
 
    // Bug ID
    printf("BUG ID:%d\n", id);
 
    fprintf(ptr, "BUG FILED BY: %s\n",
            name);
    fprintf(ptr, "\n");
 
    printf("Enter bug type:\n");
    scanf(" %[^\n]", bugtype);
 
    // Bug Type
    fprintf(ptr, "TYPE OF BUG: %s",
            bugtype);
    fprintf(ptr, "\n");
 
    // Bug Priority
    printf("Enter bug priority:\n");
    scanf(" %[^\n]s", bugpriority);
 
    fprintf(ptr, "BUG PRIORITY: %s\n",
            bugpriority);
    fprintf(ptr, "\n");
 
    // Bug Description
    printf("Enter the bug description:\n");
    scanf(" %[^\n]s", bugdescription);
 
    fprintf(ptr, "BUG DESCRIPTION: %s\n",
            bugdescription);
    fprintf(ptr, "\n");
 
    printf("Status of bug:\n");
    printf("1. NOT YET ASSIGNED\n");
    printf("2.IN PROCESS\n 3.FIXED\n");
    printf("4.DELIVERED\n ENTER YOUR CHOICE:");
 
    int j;
    scanf("%d", &j);
 
    // Date and time of Bug Creation
    fprintf(ptr, "DATE AND TIME: %s",
            ctime(&CurrentTime));
 
    fprintf(ptr, "BUG STATUS:");
 
    // Switching for the Status of the
    // Bug
    switch (j) {
    case 1:
        fprintf(ptr, "NOT YET ASSIGNED\n");
        break;
    case 2:
        fprintf(ptr, "IN PROCESS\n");
        break;
    case 3:
        fprintf(ptr, "FIXED\n");
        break;
    case 4:
        fprintf(ptr, "DELIVERED\n");
        break;
    default:
        printf("invalid choice\n");
        break;
    }
 
    fclose(ptr);
}

Status of Bug

// C program for changing Status
// in Bug Tracking System
 
#include <conio.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <time.h>
 
// Function to Change the status
// of the Bug
void changestatus()
{
    printf("*************");
    printf("Change status");
    printf("**************\n");
 
    // Current Time
    time_t CurrentTime;
    time(&CurrentTime);
 
    FILE* file;
    char name[50];
 
    // Bug File name
    printf("Enter file name:\n");
    scanf("%s", name);
    char ex[] = ".txt";
    strcat(name, ex);
 
    // Opening the Bug in Append Mode
    file = fopen(name, "a");
 
    printf("\n 1. NOT YET ASSIGNED\n");
    printf(" 2.IN PROCESS\n 3.FIXED\n");
    printf(" 4.DELIVERED\n ENTER YOUR CHOICE:");
 
    // Change the Status
    int k;
    scanf("%d", &k);
 
    fprintf(file, "\n");
    fprintf(file, "DATE AND TIME : %s",
            ctime(&CurrentTime));
 
    fprintf(file, "BUG STATUS:");
 
    // Changing the status on the
    // basis of the user input
    switch (k) {
    case 1:
        fprintf(file, "NOT YET ASSIGNED\n");
        break;
    case 2:
        fprintf(file, "IN PROCESS\n");
        break;
    case 3:
        fprintf(file, "FIXED\n");
        break;
    case 4:
        fprintf(file, "DELIVERED\n");
        break;
    default:
        printf("invalid choice\n");
        break;
    }
    fclose(file);
}

Report Bug

// C program for report a bug
// in Bug Tracking System
 
#include <conio.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <time.h>
 
// Function to report the Bug
// in the Bug Tracking System
void report()
{
    printf("**********");
    printf("REPORT");
    printf("**********\n");
 
    FILE* fp;
    char name[50];
 
    // Asking the Filename to report
    // the bug of the file
    printf("Enter file name:\n");
    scanf("%s", name);
    char ex[] = ".txt";
    strcat(name, ex);
 
    // Opening the file into the
    // Read mode
    fp = fopen(name, "r");
 
    char ch;
    ch = getc(fp);
 
    // Character of the File
    while (ch != EOF) {
        printf("%c", ch);
        ch = getc(fp);
    }
 
    fclose(fp);
    getch();
}

Complete Code

// C program for the
// Bug Tracking System
 
#include <conio.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <time.h>
 
// Function to file the Bug into
// the Bug Tracking System
void filebug(int id)
{
    printf("**********");
    printf("FILING A BUG");
    printf("***********\n");
 
    // Current Time
    time_t CurrentTime;
    time(&CurrentTime);
 
    char name[20], bugtype[50];
    char bugdescription[1000];
    char bugpriority[30];
    int bugstatus;
 
    FILE* ptr;
 
    // User name
    printf("Enter your name:\n");
    scanf("%s", name);
    char ids[10];
    itoa(id, ids, 10);
    strcat(name, ids);
    char ex[] = ".txt";
    strcat(name, ex);
 
    // Filename of the Bug
    printf("Filename :%s\n", name);
    ptr = fopen(name, "w");
 
    // Case when file cannot be created
    if (ptr == NULL)
        printf("cannot create file!!!\n");
 
    fprintf(ptr, "DATE AND TIME : %s",
            ctime(&CurrentTime));
 
    // ID in the Text File
    fprintf(ptr, "BUG ID    :    %d\n", id);
 
    // Adding New Line in Text File
    fprintf(ptr, "\n");
 
    // Bug ID
    printf("BUG ID:%d\n", id);
 
    fprintf(ptr, "BUG FILED BY: %s\n",
            name);
    fprintf(ptr, "\n");
 
    printf("Enter bug type:\n");
    scanf(" %[^\n]", bugtype);
 
    // Bug Type
    fprintf(ptr, "TYPE OF BUG: %s",
            bugtype);
    fprintf(ptr, "\n");
 
    // Bug Priority
    printf("Enter bug priority:\n");
    scanf(" %[^\n]s", bugpriority);
 
    fprintf(ptr, "BUG PRIORITY: %s\n",
            bugpriority);
    fprintf(ptr, "\n");
 
    // Bug Description
    printf("Enter the bug description:\n");
    scanf(" %[^\n]s", bugdescription);
 
    fprintf(ptr, "BUG DESCRIPTION: %s\n",
            bugdescription);
    fprintf(ptr, "\n");
 
    printf("Status of bug:\n");
    printf("1. NOT YET ASSIGNED\n");
    printf("2.IN PROCESS\n 3.FIXED\n");
    printf("4.DELIVERED\n ENTER YOUR CHOICE:");
 
    int j;
    scanf("%d", &j);
 
    // Date and time of Bug Creation
    fprintf(ptr, "DATE AND TIME: %s",
            ctime(&CurrentTime));
 
    fprintf(ptr, "BUG STATUS:");
 
    // Switching for the Status of the
    // Bug
    switch (j) {
    case 1:
        fprintf(ptr, "NOT YET ASSIGNED\n");
        break;
    case 2:
        fprintf(ptr, "IN PROCESS\n");
        break;
    case 3:
        fprintf(ptr, "FIXED\n");
        break;
    case 4:
        fprintf(ptr, "DELIVERED\n");
        break;
    default:
        printf("invalid choice\n");
        break;
    }
 
    fclose(ptr);
}
 
// Function to Change the status
// of the Bug
void changestatus()
{
    printf("*************");
    printf("Change status");
    printf("**************\n");
 
    // Current Time
    time_t CurrentTime;
    time(&CurrentTime);
 
    FILE* file;
    char name[50];
 
    // Bug File name
    printf("Enter file name:\n");
    scanf("%s", name);
    char ex[] = ".txt";
    strcat(name, ex);
 
    // Opening the Bug in Append Mode
    file = fopen(name, "a");
 
    printf("\n 1. NOT YET ASSIGNED\n");
    printf(" 2.IN PROCESS\n 3.FIXED\n");
    printf(" 4.DELIVERED\n ENTER YOUR CHOICE:");
 
    // Change the Status
    int k;
    scanf("%d", &k);
 
    fprintf(file, "\n");
    fprintf(file, "DATE AND TIME : %s",
            ctime(&CurrentTime));
 
    fprintf(file, "BUG STATUS:");
 
    // Changing the status on the
    // basis of the user input
    switch (k) {
    case 1:
        fprintf(file, "NOT YET ASSIGNED\n");
        break;
    case 2:
        fprintf(file, "IN PROCESS\n");
        break;
    case 3:
        fprintf(file, "FIXED\n");
        break;
    case 4:
        fprintf(file, "DELIVERED\n");
        break;
    default:
        printf("invalid choice\n");
        break;
    }
    fclose(file);
}
 
// Function to report the Bug
// in the Bug Tracking System
void report()
{
    printf("**********");
    printf("REPORT");
    printf("**********\n");
 
    FILE* fp;
    char name[50];
 
    // Asking the Filename to report
    // the bug of the file
    printf("Enter file name:\n");
    scanf("%s", name);
    char ex[] = ".txt";
    strcat(name, ex);
 
    // Opening the file into the
    // Read mode
    fp = fopen(name, "r");
 
    char ch;
    ch = getc(fp);
 
    // Character of the File
    while (ch != EOF) {
        printf("%c", ch);
        ch = getc(fp);
    }
 
    fclose(fp);
    getch();
}
 
// Driver Code
void main()
{
    printf("***************");
    printf("BUG TRACKING SYSTEM");
    printf("***************\n");
 
    int number, i = 1;
 
    // Id initialised to 0
    int id = 0;
 
    // while loop to run
    while (i != 0) {
        printf("\n1. FILE A NEW BUG\n");
        printf("2. CHANGE THE STATUS OF THE BUG\n");
        printf("3. GET BUG REPORT\n4. EXIT");
        printf("\n\n ENTER YOUR CHOICE:");
 
        scanf("%d", &number);
 
        // Using switch to go case by case
        switch (number) {
        case 1:
            id++;
 
            // Creating a New Bug
            filebug(id);
            break;
        case 2:
 
            // Change Status of Bug
            changestatus();
            break;
        case 3:
 
            // Report the Bug
            report();
            break;
        case 4:
            i = 0;
            break;
        default:
            printf("\ninvalid entry");
            break;
        }
    }
}

Producción:

Función del controlador:

Crear un error:

Cambiar estado e informar el error

Archivo de error:

Publicación traducida automáticamente

Artículo escrito por gurukiranx y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *