Advertisement
Guest User

Untitled

a guest
Jan 24th, 2017
95
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.77 KB | None | 0 0
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <string.h>
  4. #define N 20
  5. typedef struct schifo{
  6. char cog_nome[20];
  7. char matricola;
  8. int voto;
  9. }lista;
  10.  
  11. int main()
  12. {
  13. FILE *punt;
  14. lista var[N];
  15. char sel,dato[20],temp[20],temp2[20],nome[20],matricole[20];
  16. int i=0,j,f,voto,voti,d,h,g;
  17.  
  18.  
  19.  
  20. for(f=0;f<N;f++)
  21. {
  22. var[f].voto=-2;
  23. }
  24.  
  25. while(1)
  26. {
  27. printf("inserire lettera per accedere a varie funzioni:\n");
  28. printf("I per inserire i dati di uno studente\n");
  29. printf("C per cancellare i dati dello studente con quel nome o per cancellare i dati dello studente con quella matricola.\n");
  30. printf("V per visualizzare i dati dello studente con quel nome o per visualizzare i dati dello studente con quella matricola.\n");
  31. printf("P per stampare tutto il data-base. \n");
  32. printf("L per leggere i dati (già ordinati) dal file con quel nome. \n");
  33. printf("S per salvare i dati del data-base nel file con quel nome. \n");
  34.  
  35.  
  36. if(sel=='I')
  37. {
  38. for(g=0;g<N;g++)
  39. {
  40. if(var[g].voto==-3)
  41. {
  42. scanf("%s %s %d",var[g].cog_nome,var[g].matricola,&var[g].voto);
  43. }
  44. scanf("%s %s %d",var[i].cog_nome,var[i].matricola,&var[i].voto);
  45.  
  46. i++;
  47. }
  48.  
  49.  
  50. if(sel=='C')
  51. {
  52. printf("inserisci dato da cancellare");
  53. scanf("%s",dato);
  54. if(isdigit(dato[0]))
  55. {
  56. for(j=0;j<i;j++)
  57. {
  58. if(!strcmp(dato,var[j].matricola))
  59. {
  60. var[j].voto==-3;
  61. }
  62. }
  63. }
  64. if(isalpha(dato[0]))
  65. {
  66. for(j=0;j<i;j++)
  67. {
  68. if(!strcmp(dato,var[j].matricola))
  69. {
  70. var[j].voto==-3;
  71. }
  72. }
  73. }
  74. }
  75.  
  76. if(sel=='V')
  77. {
  78. printf("inserisci dato da cancellare");
  79. scanf("%s",dato);
  80. if(isdigit(dato[0]))
  81. {
  82. for(j=0;j<i;j++)
  83. {
  84. if(!strcmp(dato,var[j].matricola))
  85. {
  86. printf("%s %s %d",var[j].cog_nome,var[j].matricola,var[j].voto);
  87. }
  88. }
  89. }
  90. if(isalpha(dato[0]))
  91. {
  92. for(j=0;j<i;j++)
  93. {
  94. if(!strcmp(dato,var[j].matricola))
  95. {
  96. printf("%s %s %d",var[j].cog_nome,var[j].matricola,var[j].voto);
  97. }
  98. }
  99. }
  100. }
  101.  
  102. if((punt=fopen("nomefile.txt","w"))==NULL)
  103. {
  104. printf("errore file");
  105. return 1;
  106. }
  107.  
  108. if(sel=='S')
  109. {
  110. for(j=0;j<i;j++)
  111. {
  112. strcpy(temp,var[j].cog_nome);
  113. strcpy(temp2,var[j].matricola);
  114. voto=var[j].voto;
  115. for(d=j;d>=0;d--)
  116. {
  117. if((strcmp(temp,var[d].cog_nome))<0)
  118. {
  119. strcpy(var[d+1].cog_nome,var[d].cog_nome);
  120. strcpy(var[d].cog_nome,temp);
  121. strcpy(var[d+1].matricola,var[d].matricola);
  122. strcpy(var[d].matricola,temp2);
  123. var[d+1].voto=var[d].voto;
  124. var[d].voto=voto;
  125. }
  126. }
  127. fprintf(punt,"%s %s %d\n",var[j].cog_nome,var[j].matricola,var[j].voto);
  128.  
  129.  
  130. }
  131. }
  132. fclose(punt);
  133.  
  134. if(sel=='P')
  135. {
  136. for(j=0;j<i;j++)
  137. {
  138. if(var[j].voto!=-3)
  139. {
  140. printf("%s %s %d",var[j].cog_nome,var[j].matricola,var[j].voto);
  141. }
  142. }
  143. }
  144.  
  145. if((punt=fopen("nomefile.txt","r"))==NULL)
  146. {
  147. printf("errore file");
  148. return 1;
  149. }
  150.  
  151.  
  152. if(sel=='L')
  153. {
  154. for(h=0;(fscanf(punt,"%s %s %d",nome,matricole,&voti)!=EOF;h++)
  155. {
  156. printf("%s %s %d",nome,matricole,voti);
  157. }
  158. return 1;
  159. }
  160.  
  161.  
  162. }
  163. }
  164. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement