Red de conocimientos turísticos - Información de alquiler - Preguntas y respuestas ¿Cómo programar en lenguaje C?

Preguntas y respuestas ¿Cómo programar en lenguaje C?

Escribí el código directamente para ti. El código es relativamente simple y los módulos básicos están comentados. Si no entiende nada, por favor pregunte nuevamente. Si no conoce el método de almacenamiento de datos en el archivo que utilicé, puede usar este sistema para agregar una pregunta primero.

********************************************* *** *******************************************

# include & ltstdio.h & gt

# include & ltconio.h & gt

int número de pregunta //El número de preguntas en el banco de preguntas

int score = 0; //Número de preguntas respondidas correctamente

//Mostrar menú

void showMenu() {

Printf("1

Printf("2. Ver puntuaciones\ n ");

Printf("3. Agregar nuevas preguntas y respuestas\ n ");

Printf("4. Ver preguntas y respuestas en el banco de preguntas\ n ");

Printf("5. Salir del sistema\ n ");

Printf("Por favor seleccione: ");

}

//Leer preguntas, isAnswer = 1 significa responder la pregunta, isAnswer = 0 significa mostrar el banco de preguntas.

Pregunta no válida (int isAnswer) {

//Abrir banco de preguntas

FILE * f = fopen("question.data ", " r ");

if(f == 0) {

printf("\n\n¡El problema no existe, agréguelo primero!");

Regresar ;

p>

}

Longitud larga;

//Leer longitud del archivo

fseek(f, 0, 2);

longitud = ftell(f);

rebobinar(f);

línea de caracteres[1000], etiqueta;

línea[0 ]= 0 ;

número de pregunta = 0;

while(ftell(f)<length){

//Mostrar pregunta

fgets(línea, 1000, f);

printf("\n\npregunta %d:%s\n",++número de pregunta,línea);

/ / Mostrar cuatro opciones

for(tag = ' A '; tag & lt = ' Dtag++) {

fgets(row, 1000, f);

printf("%c :%s\n ", marca, línea);

}

//Obtener la respuesta

fscanf(f, " % c \n ", & amp tag);

If(isAnswer) {//Si estás respondiendo una pregunta, debes ingresar la respuesta.

for(;;) {

Printf("Seleccione la respuesta (A, B, C, D):"); ( )) {

Caso "A":

caso ' A ':if(tag == ' A ')puntuación++;

Caso " B ":

caso ' B ':if(tag == ' B ')puntuación++; descanso;

caso "C":

caso ' C ' :if(etiqueta == ' C ')puntuación++;

Caso "D":

caso ' D ':if(etiqueta == ' D ')puntuación++; romper ;

Valor predeterminado: printf(" \ n "); continuar

}

Romper

}

} else {//Si se muestra el banco de preguntas, la respuesta se mostrará directamente.

Printf("Respuesta: %c ", etiqueta

}

}

fclose(f);

}

//Agregar tema

void addQuestion() {

//Abrir banco de preguntas

ARCHIVO * f = fopen("question.data", "a");

línea char[1000], etiqueta;

//Ingrese la pregunta

línea[0 ] = 0;

while(line[0] == 0) {

Printf("Ingrese la pregunta:");

Get(line );

}

fprintf(f, " %s\n ", línea

//Ingrese cuatro opciones.

for(etiqueta = ' A '; etiqueta & lt= ' Dtag++) {

línea[0]= 0;

mientras(línea[0] == 0) {

Printf("Ingrese la opción % c:", etiqueta);

Obtener (línea);

fprintf(f, " %s\n ", línea);

}

//Ingresa la respuesta

for(;;) {

Printf("Ingrese la respuesta (A, B, C, D): "

switch(tag = getche()) {

Caso “A”:

Caso “B”:

Caso “C”:

Caso “D”:

Caso “ a” :

Caso "b":

Caso "c":

caso 'd' : fprintf(f, " %c\n ", etiqueta & gt= 97 ?etiqueta - 32: etiqueta);

Valor predeterminado: printf (" \ n "); romper;

}

fclose(f);

}

int main(int argc, char * argv[]) {

showMenu();

for(;;){//Operación en bucle hasta que el usuario sale del sistema.

switch(getche()) {

Caso "1": puntuación = 0; problema(1); (" \ n \ nSu puntuación es: %d ", puntuación == 0? 0: puntuación * 100/número de pregunta

Caso "3": printf(" \ n \ n "); ); agregar pregunta ();

Caso "4": pregunta (0);

Caso "5": salir (0); >

Predeterminado: printf(" \ n \ nError de entrada, vuelva a ingresar: "); continuar

}

printf(" \ n \ n ");

mostrarMenú();

}

}