Advertisement
PeckLL

archivos tipo binario N1

Oct 28th, 2016
95
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 6.36 KB | None | 0 0
  1. #include "conio.h"
  2. #include "iostream"
  3. #include <stdio.h>
  4. #include "string.h"
  5. using namespace std;
  6.  
  7. struct regamigos
  8. {
  9. char nombre[30];
  10. int edad;
  11. char sexo;
  12. char estado;
  13. };
  14.  
  15. void agregarRegistro()
  16. {
  17. FILE *ptr;
  18. regamigos reg;
  19. ptr=fopen("amigos.dat","ab");
  20.  
  21. do
  22. {
  23. cout<<"ingrese el nombre"<<endl;
  24. cin.ignore();
  25. gets(reg.nombre);
  26. if(strlen(reg.nombre)==0)
  27. {
  28. cout<<"entrada vacia debe ingresar un nobre para continuar"<<endl;
  29. }
  30. }
  31. while(strlen(reg.nombre)==0);
  32. do
  33. {
  34. cout<<"ingrese la edad"<<endl;
  35. cin>>reg.edad;
  36. if(reg.edad<1||reg.edad>100)
  37. {
  38. cout<<"edad irreal,dbe ingresar una edad entre el 1 y el 100"<<endl;
  39. }
  40. }
  41. while(reg.edad<1||reg.edad>100);
  42. do
  43. {
  44. cout<<"ingrese el sexo (F/M)"<<endl;
  45. cin>>reg.sexo;
  46. if(reg.sexo !='F'&&reg.sexo !='M')
  47. {
  48. cout<<"caracter no valido limitese a los dos parametros"<<endl;
  49. }
  50. }
  51. while(reg.sexo !='F'&&reg.sexo !='M');
  52. reg.estado='A';
  53. fwrite(&reg,sizeof(reg),1,ptr);
  54. fclose(ptr);
  55.  
  56. }
  57.  
  58. void listador()
  59. {
  60. int c=0;
  61. FILE *ptr;
  62. regamigos reg;
  63. ptr=fopen("amigos.dat","rb");
  64. if(ptr!=NULL)
  65. {
  66. cout<<"\n\n========================================================================================";
  67. cout<<"\n\t**** LISTA DE AMNIGOS ****";
  68. cout<<"\n\n========================================================================================";
  69. cout<<"\nnRroReg nombre edad sexo estado";
  70. cout<<"\n\n========================================================================================"<<endl;
  71. fread(&reg,sizeof(reg),1,ptr);
  72. while(feof(ptr)==false)
  73. {
  74. c++;
  75. if(reg.estado=='A')
  76. {
  77. cout<<c<<"\t\t"<<reg.nombre<<"\t\t"<<reg.edad<<"\t"<<reg.sexo<<"\t"<<reg.estado<<endl;
  78. }
  79. fread(&reg,sizeof(reg),1,ptr);
  80. }
  81. cout<<"\n\n========================================================================================"<<endl;
  82. fclose(ptr);
  83. }
  84. else
  85. {
  86. cout<<"nel no existe archivo"<<endl;
  87. }
  88.  
  89. }
  90.  
  91. void promediadora()
  92. {
  93. int m=0,f=0,tm=0,tf=0,t=0;
  94. FILE *ptr;
  95. regamigos reg;
  96. ptr=fopen("amigos.dat","rb");
  97. if(ptr!=NULL)
  98. {
  99. fread(&reg,sizeof(reg),1,ptr);
  100. while(feof(ptr)==false)
  101. {
  102. if(reg.sexo=='M'&&reg.sexo!='E')
  103. {
  104. m+=reg.edad;tm++;fread(&reg,sizeof(reg),1,ptr);
  105. }
  106. else if(reg.sexo=='F'&&reg.sexo!='E')
  107. {
  108. f+=reg.edad;tf++;fread(&reg,sizeof(reg),1,ptr);
  109. }
  110. }
  111. fclose(ptr);
  112. }
  113. else{cout<<"no existe archivo"<<endl;}
  114. t=(m+f)/(tm+tf);
  115. m/=tm;
  116. f/=tf;
  117. cout<<"el promedio de edad de hombres es;"<<m<<endl;
  118. cout<<"el promedio de edad de mujeres es;"<<f<<endl;
  119. cout<<"el promedio de edad generales;"<<t<<endl;
  120. }
  121.  
  122. void buscadora(int n)
  123. {
  124. int c=0;
  125. FILE *ptr;
  126. regamigos reg;
  127. ptr=fopen("amigos.dat","rb");
  128. if(ptr!=NULL)
  129. {
  130. fseek(ptr,(n-1)*sizeof(reg),SEEK_SET);
  131. fread(&reg,sizeof(reg),1,ptr);
  132. if(feof(ptr)==false)
  133. {
  134. if(reg.estado=='A')
  135. {
  136. cout<<"\n\n========================================================================================"<<endl;
  137. cout<<"el registro que desea es :"<<endl;
  138. cout<<n<<"\t\t"<<reg.nombre<<"\t\t"<<reg.edad<<"\t"<<reg.sexo<<"\t"<<reg.estado<<endl;
  139. cout<<"\n\n========================================================================================"<<endl;
  140. }
  141. else{cout<<"el registro se encuentra eliminado"<<endl;}
  142. }
  143. else{cout<<"el registro no existe"<<endl;}
  144. fclose(ptr);
  145. }
  146. else
  147. {
  148. cout<<"nel no existe archivo"<<endl;
  149. }
  150. }
  151.  
  152. void modificadora(int n)
  153. {
  154. int c=0,op;
  155. FILE *ptr;
  156. regamigos reg;
  157. ptr=fopen("amigos.dat","r+b");
  158. if(ptr!=NULL)
  159. {
  160. fseek(ptr,(n-1)*sizeof(reg),SEEK_SET);
  161. fread(&reg,sizeof(reg),1,ptr);
  162. if(feof(ptr)==false)
  163. {
  164. fseek(ptr,(n-1)*sizeof(reg),SEEK_SET);
  165. if(reg.estado=='A')
  166. {
  167. cout<<"el registro que desea modificar es :"<<endl;
  168. cout<<"\n\n========================================================================================"<<endl;
  169. cout<<n<<"\t\t"<<reg.nombre<<"\t\t"<<reg.edad<<"\t"<<reg.sexo<<"\t"<<reg.estado<<endl;
  170. cout<<"\n\n========================================================================================"<<endl;
  171. cout<<"segro desea modificarlo?"<<endl;
  172. cout<<"0=SI\n1=NO"<<endl;
  173. cin>>op;
  174. if(op==0)
  175. {
  176.  
  177. do
  178. {
  179. cout<<"ingrese el nombre"<<endl;
  180. cin.ignore();
  181. gets(reg.nombre);
  182. if(strlen(reg.nombre)==0)
  183. {
  184. cout<<"entrada vacia debe ingresar un nobre para continuar"<<endl;
  185. }
  186. }
  187. while(strlen(reg.nombre)==0);
  188. do
  189. {
  190. cout<<"ingrese la edad"<<endl;
  191. cin>>reg.edad;
  192. if(reg.edad<1||reg.edad>100)
  193. {
  194. cout<<"edad irreal,dbe ingresar una edad entre el 1 y el 100"<<endl;
  195. }
  196. }
  197. while(reg.edad<1||reg.edad>100);
  198. do
  199. {
  200. cout<<"ingrese el sexo (F/M)"<<endl;
  201. cin>>reg.sexo;
  202. if(reg.sexo !='F'&&reg.sexo !='M')
  203. {
  204. cout<<"caracter no valido limitese a los dos parametros"<<endl;
  205. }
  206. }
  207. while(reg.sexo !='F'&&reg.sexo !='M');
  208. }
  209. }
  210. }
  211. else{cout<<"el registro no existe"<<endl;}
  212. fclose(ptr);
  213. }
  214. else
  215. {
  216. cout<<"nel no existe archivo"<<endl;
  217. }
  218. }
  219.  
  220. void main()
  221. {int n,i,y;
  222.  
  223. cout<<"\t\tMENU"<<endl;
  224. cout<<"[1]=añadir amigo"<<endl;
  225. cout<<"[2]=mostrar lista completa"<<endl;
  226. cout<<"[3]=promedio de edades"<<endl;
  227. cout<<"[4]=acceso directo"<<endl;
  228. cout<<"[5]=modificador"<<endl;
  229. cout<<"ingrese su opcion"<<endl;
  230. cin>>n;
  231. switch(n)
  232. {
  233. case 1:{
  234. agregarRegistro();break;
  235. }
  236. case 2:{
  237. listador();break;
  238. }
  239. case 3:{
  240. promediadora();break;
  241. }
  242. case 4:{
  243. cout<<"ingrese el registro que desea buscar"<<endl;
  244. cin>>y;
  245. buscadora(y);break;
  246. }
  247. case 5:{
  248. cout<<"ingrese el registro que desea editar"<<endl;
  249. cin>>y;
  250. modificadora(y);break;
  251. }
  252. }
  253.  
  254. getch();
  255. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement