Guest User

Untitled

a guest
Jul 19th, 2018
76
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 8.14 KB | None | 0 0
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <string.h>
  4.  
  5. struct talumno {
  6. char dni[10];
  7. char nombre[20];
  8. char apellido[20];
  9. };
  10. typedef struct talumno talumno;
  11. void GuardarDatosAlumno(char nombref[],talumno p);
  12. void MostrarAlumnos(char nombref[]);
  13. void buscar_datos(char *nombref,char*dni,talumno *p, int *encontrado);
  14. void eliminarAlumno(char*nombref,char*dni);
  15. void MostrarApellido(char*nombref,char*apell);
  16. talumno leerAlumno();
  17. void escribirAlumno(talumno p);
  18.  
  19.  
  20. int main()
  21. {
  22. int encontrado;
  23. talumno al;
  24. int opcion;
  25. char *ruta;
  26. char *dni;
  27. FILE *nombref;
  28. talumno p;
  29. talumno apell;
  30.  
  31.  
  32.  
  33. printf("\n1.Anadir alumno");
  34. printf("\n2.Ver listado de alumnos");
  35. printf("\n3.Buscar por dni");
  36. printf("\n4.Eliminar alumno");
  37. printf("\n5.Ver por apellido");
  38. printf("\n6.Terminar");
  39. printf("\nElige opcion:");
  40. scanf ("%d", &opcion);
  41.  
  42. //printf("\nIntroduce una ruta:");
  43. //scanf("%s",ruta);
  44.  
  45. dni=( char * )malloc(sizeof(char));
  46. ruta =( char * )malloc(sizeof(char));
  47.  
  48. printf("\n---------\n");
  49. switch(opcion)
  50. {
  51. case 1:
  52. {
  53. /* al = leerAlumno();
  54. GuardarDatosAlumno(nombref, al);
  55. escribirAlumno(p)*/
  56.  
  57. }
  58. break;
  59. case 2:
  60. {
  61. /*nombref=fopen(ruta,"rb");
  62. MostrarAlumnos(nombref);*/
  63. }
  64. break;
  65. case 3:
  66. {
  67. /* printf("\nIntroduce un dni");
  68. scanf("%s",dni);
  69.  
  70. buscar_datos(nombref,dni,p,encontrado);*/
  71. }
  72. break;
  73. case 4:
  74. {
  75. //eliminarAlumno(nombref , &dni);
  76. }
  77. break;
  78. case 5:
  79. {
  80. //MostrarApellido(nombref,apell);
  81. }
  82. break;
  83. }
  84.  
  85. system("PAUSE");
  86. return 0;
  87. }
  88.  
  89. void GuardarDatosAlumno(char nombref[] ,talumno p)
  90. {
  91. talumno al;
  92. FILE *fich1;
  93. FILE *fich2;
  94.  
  95. fich1=fopen(nombref,"r");
  96. fich2=fopen("auxiliar","w");
  97. if((fich1!=NULL)&&(fich2!=NULL))
  98. {
  99. fread(&al,sizeof(talumno),1,fich1);
  100. while(((!feof(fich1))&&(strcmp(al.dni,p.dni)<0)))
  101. {
  102. fwrite(&al,sizeof(talumno),1,fich2);
  103. fread(&al,sizeof(talumno),1,fich1);
  104. }
  105. fwrite(&p,sizeof(talumno),1,fich2);
  106. while(!feof(fich1))
  107. {
  108. fwrite(&al,sizeof(talumno),1,fich2);
  109. fread(&al,sizeof(talumno),1,fich1);
  110.  
  111.  
  112. }
  113.  
  114.  
  115. fclose(fich1);
  116. fclose(fich2);
  117.  
  118. }
  119. else
  120. {
  121. if((fich2!=NULL))
  122. {
  123. fwrite(&p,sizeof(talumno),1,fich2);
  124. fclose(fich2);
  125.  
  126. }}
  127.  
  128.  
  129. remove(nombref);
  130. rename("auxiliar",nombref);
  131. }
  132.  
  133. void MostrarAlumnos(char nombref[])
  134. {
  135. talumno al;
  136. FILE *fich;
  137. fich=fopen(nombref,"rb");
  138. if(fich!=NULL)
  139. {
  140. fread(&al,sizeof(al),1,fich);
  141. while(!feof(fich))
  142. {
  143. escribirAlumno(al);
  144. fread(&al,sizeof(al),1,fich);
  145. }
  146. fclose(fich);
  147. }
  148. else
  149. {
  150. printf("\nError al escribir el fichero");
  151. }
  152. }
  153.  
  154. void buscar_datos(char *nombref,char*dni,talumno *p, int *encontrado)
  155. {
  156. talumno al;
  157.  
  158. FILE *fich;
  159. fich=fopen(nombref,"rb");
  160. if(fich!=NULL)
  161. {
  162. *encontrado=0;
  163. fread(&al,sizeof(talumno),1,fich);
  164.  
  165. while(!feof(fich)&&(*encontrado==0))
  166. {
  167. if(strcmp(al.dni,dni)==0)
  168. {
  169. *encontrado=1;
  170. *p=al;
  171.  
  172. }
  173. else{
  174. fread(&al,sizeof(talumno),1,fich);
  175. }
  176. }
  177. fclose(fich);
  178. }
  179. else
  180. {
  181. printf("\nError al abrir al archivo");
  182. }
  183. }
  184.  
  185. void eliminarAlumno(char*nombref,char*dni)
  186. {
  187. talumno al;
  188. FILE*fich1;
  189. FILE*fich2;
  190. fich1=fopen(nombref,"rb");
  191. fich2=fopen("auxiliar","wb");
  192. if(((fich1)!=NULL)&&(fich2!=NULL))
  193. {
  194. fread(&al,sizeof(al),1,fich1);
  195. while((!feof(fich1))&&(strcmp(al.dni,dni)!=0))
  196. {
  197. fwrite(&al,sizeof(al),1,fich2);
  198. fread(&al,sizeof(al),1,fich1);
  199. }
  200.  
  201. if(strcmp(al.dni,dni)==0)
  202. {
  203. fread(&al,sizeof(al),1,fich1);
  204. while(!feof(fich1))
  205. {
  206. fwrite(&al,sizeof(al),1,fich2);
  207. fread(&al,sizeof(al),1,fich1);
  208. }
  209. }
  210. fclose(fich1);
  211. fclose(fich2);
  212. remove(nombref);
  213. rename("auxiliar",nombref);
  214.  
  215. }
  216.  
  217. else
  218. {
  219. printf("\n error en la apertura");
  220. }
  221. }
  222. void MostrarApellido(char*nombref,char*apell)
  223. {
  224. talumno al;
  225. FILE *fich;
  226. fich=fopen(nombref,"rb");
  227. if (fich!=NULL)
  228. {
  229. fread(&al,sizeof(al),1,fich);
  230. while(!feof(fich))
  231. {
  232. if(strcmp(al.apellido,apell)==0)
  233. {
  234. escribirAlumno(al);
  235. }
  236. fread(&al,sizeof(al),1,fich);
  237. }
  238. fclose(fich);
  239. }
  240. else
  241. {
  242. printf("\n error al abrir el archivo");
  243. }
  244. }
  245. talumno leerAlumno()
  246. {
  247. talumno p;
  248.  
  249. printf("\n Dame el dni : ");
  250. scanf("%s",p.dni);
  251.  
  252. printf("\n Dame el nombre : ");
  253. scanf("%s",p.nombre);
  254.  
  255. printf("\n Dame el apellido : ");
  256. scanf("%s",p.apellido);
  257.  
  258. return p;
  259. }
  260.  
  261. void escribirAlumno(talumno p)
  262. {
  263.  
  264. printf("el dni es %s",p.dni);
  265.  
  266.  
  267. printf("\nel nombre del alumno es:%s",p.nombre);
  268.  
  269. printf("\nel apellido del alumno es:%s\n",p.apellido);
  270.  
  271. }
Add Comment
Please, Sign In to add comment