Guest User

Untitled

a guest
Apr 24th, 2018
72
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.22 KB | None | 0 0
  1.  
  2. #include <stdio.h>
  3. #include <stdlib.h>
  4. #include <ctype.h>
  5.  
  6. struct Student {
  7. char nazwisko[30], imie[20];
  8. char indeks[10];
  9. int wiek;
  10. double stypendium;
  11. char zaliczenie;
  12. };
  13.  
  14. int sprznak(char* temp){
  15. int i, v=1;
  16.  
  17. for(i=0;i<strlen(temp);i++){
  18. if(!isalpha(temp[i]))
  19. {
  20. v=0;
  21. break;
  22. }
  23. }
  24. return v;
  25. }
  26.  
  27. int czyliczba(char* temp){
  28. int i, v=1;
  29.  
  30. for(i=0;i<strlen(temp);i++){
  31. if(!isdigit(temp[i]))
  32. {
  33. v=0;
  34. break;
  35. }
  36. }
  37. return v;
  38. }
  39.  
  40.  
  41. void wypelnij(struct Student *uczelnia, int n, char* plik){
  42. int i;
  43. FILE *f=NULL;
  44. for(i=0;i<n;i++){
  45. do{
  46. printf("Imie[%d]: ",i);
  47. scanf("%s", &uczelnia[i].imie);
  48. if(!sprznak(uczelnia[i].imie)){
  49. printf("Imie musi skladac sie z liter \n");
  50. }
  51. }
  52. while(!sprznak(uczelnia[i].imie));
  53.  
  54. do{
  55. printf("Nazwisko[%d]: ",i);
  56. scanf("%s", &uczelnia[i].nazwisko);
  57. if(!sprznak(uczelnia[i].nazwisko)){
  58. printf("Nazwisko musi skladac sie z liter \n");
  59. }
  60. }
  61. while(!sprznak(uczelnia[i].nazwisko));
  62. do{
  63. printf("Indeks[%d]: ",i);
  64. scanf("%s", &uczelnia[i].indeks);
  65. if(!czyliczba(uczelnia[i].indeks))
  66. printf("Indeks musi skladac sie z liczb \n");
  67.  
  68. if(strlen(uczelnia[i].indeks)!=10)
  69. printf("Indeks musi skladac sie z 10 liczb \n ");
  70.  
  71. }
  72. while(!czyliczba(uczelnia[i].indeks) || strlen(uczelnia[i].indeks)!=10);
  73. do{
  74. printf("Wiek[%d]: ",i);
  75. scanf("%d", &uczelnia[i].wiek);
  76. if(uczelnia[i].wiek<0)
  77. printf("Wiek musi skladac sie z wartosci powyzej 0 \n");
  78. }
  79. while((uczelnia[i].wiek)<0);
  80. do{
  81. printf("Stypendium[%d]: ",i);
  82. scanf("%lf", &uczelnia[i].stypendium);
  83. if(uczelnia[i].stypendium<0)
  84. printf("Stypendium musi skladac sie z wartosci powyzej 0 \n");
  85. }
  86. while((uczelnia[i].stypendium)<0);
  87. do{
  88. printf("Zaliczenie[%d]: ",i);
  89. fflush(stdin);
  90. scanf("%c", &uczelnia[i].zaliczenie);
  91. if(uczelnia[i].zaliczenie!='T' && uczelnia[i].zaliczenie!='N' )
  92. printf("Zaliczenie musi skladac sie z T lub N \n");
  93. }
  94. while(uczelnia[i].zaliczenie!='T' && uczelnia[i].zaliczenie!='N' );
  95. }
  96.  
  97. f=fopen(plik,"wb");
  98. if(!f) {
  99. printf("BLAD");
  100. return -1;
  101. }
  102. fwrite(uczelnia,sizeof(struct Student),n,f);
  103. free(uczelnia);
  104. fclose(f);
  105. }
  106. void pokaz(char* nazwa)
  107. {
  108. struct Student *tablica;
  109. int n;
  110. FILE *f=NULL;
  111. f=fopen(nazwa,"rb");
  112. if(!f) {
  113. printf("BLAD!!!");
  114. return -1;
  115. }
  116. fseek(f,0,SEEK_END);
  117. n=((ftell(f))/sizeof(struct Student));
  118. rewind(f);
  119. tablica=(struct Student*)malloc(n*sizeof(struct Student));
  120. if(!tablica) {
  121. printf("BLAD!!!!!!!!!!!");
  122. return -1;
  123. }
  124. fread(tablica,sizeof(struct Student),n,f);
  125. printf("%s", tablica[0].imie);
  126. fclose(f);
  127.  
  128. }
  129.  
  130.  
  131. int main(){
  132.  
  133. struct Student uczelnia[1];
  134. //wypelnij(uczelnia,1,"pliczek");
  135. pokaz("pliczek");
  136. //SYSTEM("PAUSE");
  137. getch();
  138. return 0;
  139.  
  140. }
Add Comment
Please, Sign In to add comment