Preguntas y respuestas ¿Cómo programar en lenguaje C?
********************************************* *** *******************************************
# 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[]) { p>
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ú();
}
}