Advertisement
Guest User

Untitled

a guest
Apr 2nd, 2014
206
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.87 KB | None | 0 0
  1. #include <stdio.h>
  2. #include <string.h>
  3. #include <time.h>
  4. #include <cstdlib>
  5. #include <ctime>
  6. #include <errno.h>
  7.  
  8. struct para{
  9. double czas;
  10. struct para *nast;
  11. };
  12.  
  13. int istnieje(char plik[30]){
  14. FILE *o;
  15.  
  16. if ((o = fopen(plik, "r")) == NULL){
  17. return 1;
  18. }
  19. else{
  20. fclose(o);
  21. return 0;
  22. }
  23. }
  24.  
  25. int main(){
  26. FILE *o;
  27. FILE *t;
  28. char plik[30] = {NULL}, tekst[80] = {NULL};
  29. int i = 0, c = 0;
  30. double wartosc;
  31. struct para *glowa = NULL, *wsk = NULL;
  32.  
  33. //pobieranie nazwy pliku
  34. printf("Podaj nazwe Twojego pliku: ");
  35. scanf("%s", plik);
  36. //sprawdzanie długości nazwy pliku
  37. while (strlen(plik) > 30){
  38. printf("\nNazwa Twojego pliku jest zbyt dluga, przekracza 30 znakow.\nPodaj nazwe Twojego pliku: ");
  39. scanf("%s", plik);
  40. }
  41. //otwieranie pliku
  42. if ((o = fopen(plik, "r")) == NULL){
  43. printf("Blad otwarcia pliku %s: ", plik);
  44. fprintf(stderr, strerror(errno));
  45. return 0;
  46. }
  47. else{
  48. printf("Brawo! Twoj plik zostal wczytany poprawnie.\n");
  49. }
  50. //zawartość pliku
  51. printf("\nWczytane dane:\n");
  52. while (!feof(o)){
  53. fscanf(o,"%lf", &wartosc);
  54. int z = 0, d = 0;
  55. double y = 0;
  56. z = wartosc;
  57. y = z;
  58. if (y == wartosc){
  59. d = 1;
  60. }
  61. else{
  62. printf("Blad! Podana liczba nie jest calkowita.\n");
  63. return 0;
  64. }
  65. if (wartosc != 0 && wartosc > 0 && d == 1){
  66. printf("%g\n", wartosc);
  67. }
  68. }
  69. //plik jest pusty
  70. if (wartosc == 0){
  71. printf("Blad! Twoj plik jest pusty.\n");
  72. return 0;
  73. }
  74. //liczba ujemna
  75. if (wartosc < 0){
  76. printf("Blad! Wartosc podanej liczby jest ujemna.\n");
  77. return 0;
  78. }
  79.  
  80. //zamykanie pliku
  81. fclose(o);
  82. //pobieranie nazwy pliku do zapisu
  83. printf("\nPodaj nazwe pliku do zapisu: ");
  84. scanf("%s", plik);
  85. while (strlen(plik) > 30){
  86. printf("\nNazwa Twojego pliku jest zbyt dluga, przekracza 30 znakow.\nPodaj nazwe Twojego pliku: ");
  87. scanf("%s", plik);
  88. }
  89. //kontrola
  90. printf("Nazwa Twojego pliku: %s\n", plik);
  91. //plik istnieje
  92. while (istnieje(plik) == 0){
  93. printf("Blad! Plik o podanej nazwie juz istnieje.\n");
  94. printf("\nPodaj nazwe pliku do zapisu: ");
  95. scanf("%s", plik);
  96. while (strlen(plik) > 30){
  97. printf("\nNazwa Twojego pliku jest zbyt dluga, przekracza 30 znakow.\nPodaj nazwe Twojego pliku: ");
  98. scanf("%s", plik);
  99. }
  100. }
  101. //otwieranie pliku do zapisu
  102. if ((o = fopen(plik, "w")) == NULL){
  103. printf("Blad otwarcia pliku %s: ", plik);
  104. fprintf(stderr, strerror(errno));
  105. }
  106. else{
  107. printf("Brawo! Twoj plik zostal wczytany poprawnie.\n");
  108. }
  109. //losowanie tekstu
  110. if ((t = fopen("tekst.txt", "r")) == NULL){
  111. printf("Blad otwarcia pliku %s: ", plik);
  112. fprintf(stderr, strerror(errno));
  113. }
  114. else{
  115. printf("Wczytano teskt do wylosowania.\n");
  116. }
  117. srand(time(NULL));
  118. c = rand()%19;
  119. if (t == NULL){
  120. printf("Blad otwarcia pliku %s: ", plik);
  121. fprintf(stderr, strerror(errno));
  122. }
  123. while (!feof(t)){
  124. fgets(tekst, 80, t);
  125. if (i == c){
  126. break;
  127. }
  128. i++;
  129. }
  130. fclose(t);
  131. //przepisywanie tekstu - etap zręcznościowy
  132. printf("\nPrzepisz podany napis jak najszybciej i kliknij ENTER.\n");
  133. printf("%s\n", tekst);
  134. int a = 0;
  135. double b = 0;
  136.  
  137. while (a < wartosc){
  138. printf("[%d] proba: ", a+1);
  139. time_t czasStart = time( NULL );
  140. scanf("%s", tekst);
  141. time_t czasStop = time( NULL );
  142. b = difftime(czasStop, czasStart);
  143. if (glowa == NULL){
  144. glowa = wsk = (struct para*)malloc(sizeof(struct para));
  145. }
  146. else{
  147. wsk->nast = (struct para*)malloc(sizeof(struct para));
  148. wsk = wsk->nast;
  149. }
  150. wsk->czas = b;
  151. printf("Brawo! Przepisales napis w %.2f sek.\n", b);
  152. a++;
  153. }
  154. wsk = glowa;
  155. a = 0;
  156. double suma = 0;
  157. while (a < wartosc){
  158. printf("\n%.2f", wsk->czas);
  159. fprintf(o, "%.2f\n", wsk->czas);
  160. suma = suma + wsk->czas;
  161. wsk = wsk->nast;
  162. a++;
  163. }
  164. printf("\nSredni czas = %.2f", suma/wartosc);
  165. fprintf(o, "%.2f\n", suma/wartosc);
  166. fclose(o);
  167. printf("\nKoniec programu.\n");
  168. return 0;
  169. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement