Ask Question

Name:
Title:
Your Question:

Answer Question

Name:
Your Answer:
User Submitted Source Code!


Description:
  s
Language: C/C++
Code:
#include <stdio.h>
#include <stdlib.h>
#include <ctype.h>
#define MAX_PREG 3

typedef struct
{
    char pregunta[50];
    char resp1[50];
    char resp2[50];
    char resp3[50];
    char resp4[50];
    int respuestaCorrecta;
}elemento;

void extraeDatos(char *linea, char *p, char *r1, char *r2,char *r3,char *r4,int *rC)
{
    int *respCorr;
    strcpy(p,strtok(linea,";"));

    strcpy(r1,strtok(NULL,";"));

    strcpy(r2,strtok(NULL,";"));

    strcpy(r3,strtok(NULL,";"));

    strcpy(r4,strtok(NULL,";"));

    respCorr=strtok(NULL,".");
    *rC=atoi(respCorr);
}

void cargar(elemento *tabla)
{
    FILE *archivo;

    char linea[2000];
    int i=0;

     archivo = fopen("preguntasRespuestas.txt","r");

     if (archivo == NULL){

          printf("nFILE COULDN'T BE OPENED. nn");
    }else{
            fgets(linea,2000,archivo);
            while(!feof(archivo)||(i<MAX_PREG))
            {
                extraeDatos(linea,tabla[i].pregunta,tabla[i].resp1,tabla[i].resp2,tabla[i].resp3,tabla[i].resp4,&tabla[i].respuestaCorrecta);
                fgets(linea,2000,archivo);
                i++;
            }
            fclose(archivo);
        printf("FILE LOADEDnn");
    }

}

int generarAleatorio()
{
    int randomnumber;
    srand(time(NULL));
    randomnumber = rand() % MAX_PREG;
    return randomnumber;
}

int puntuacio(int opcio, int rc, int marcador)
{
    if(opcio==rc)
    {
        printf("CORRECTEn");
        marcador=marcador+1;
    }
    else
        printf("Resposta incorrecta. La resposta correcta era la numero %dn",rc);

    return marcador;
}
int main()
{
    elemento listado[MAX_PREG];
    int marcador=0;
    int i=0, selectPreg, opcio=1;

    cargar(listado);
    printf("PRESS 0 TO EXITn");
    while(opcio>0)
    {

    selectPreg=generarAleatorio();

    printf("%sn", listado[selectPreg].pregunta);
    printf("1. %sn", listado[selectPreg].resp1);
    printf("2. %sn", listado[selectPreg].resp2);
    printf("3. %sn", listado[selectPreg].resp3);
    printf("4. %sn", listado[selectPreg].resp4);

    printf(">>");
    scanf("%d",&opcio);

    system("cls");
    marcador=puntuacio(opcio, listado[selectPreg].respuestaCorrecta, marcador);

    printf("puntuacio: %dn",marcador);
    }
    return 0;
}
          
Comments: