|
|
1.1 ! root 1: #include "stdio.h" ! 2: #include "lrnref" ! 3: ! 4: dounit() ! 5: { ! 6: char tbuff[100]; ! 7: ! 8: if (todo == 0) ! 9: return; ! 10: wrong = 0; ! 11: retry: ! 12: start(todo); ! 13: sprintf(tbuff, "../../%s/L%s", sname, todo); /* script = lesson */ ! 14: scrin = fopen(tbuff, "r"); ! 15: if (scrin == NULL) { ! 16: fprintf(stderr, "No script.\n"); ! 17: wrapup(1); ! 18: } ! 19: ! 20: copy(0, scrin); ! 21: if (more == 0) ! 22: return; ! 23: copy(1, stdin); ! 24: if (more == 0) ! 25: return; ! 26: copy(0, scrin); ! 27: ! 28: if (comfile >= 0) ! 29: close(comfile); ! 30: wait(&didok); ! 31: didok = (status == 0); ! 32: if (!didok) { ! 33: wrong++; ! 34: printf("\nSorry, that's %snot right. Do you want to try again? ", ! 35: wrong > 1 ? "still " : ""); ! 36: fflush(stdout); ! 37: for(;;) { ! 38: gets(tbuff); ! 39: if (tbuff[0] == 'y') { ! 40: printf("Try the problem again.\n"); ! 41: fflush(stdout); ! 42: goto retry; ! 43: } else if (strcmp(tbuff, "bye") == 0) { ! 44: wrapup(1); ! 45: } else if (tbuff[0] == 'n') { ! 46: wrong = 0; ! 47: printf("\nOK. Lesson %s (%d)\n", todo, speed); ! 48: printf("Skipping to next lesson.\n\n"); ! 49: fflush(stdout); ! 50: break; ! 51: } else { ! 52: printf("Please type yes, no or bye: "); ! 53: fflush(stdout); ! 54: } ! 55: } ! 56: } ! 57: setdid(todo, sequence++); ! 58: } ! 59:
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.