elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.


 


Tema destacado: ¿Eres nuevo? ¿Tienes dudas acerca del funcionamiento de la comunidad? Lee las Reglas Generales


  Mostrar Mensajes
Páginas: [1]
1  Programación / Programación C/C++ / Re: venta de boletos de autobuses utilizando (colas ,listas o arboles) y archivos en: 4 Agosto 2020, 03:43
este seria mi avanze hasta ahora estoy fallando en el modificar ya que me guarda los datos pero no elimina los datos anteriores ligados al codigo y tambien que no se como igualar los numeros de las lista a la variable de numero de bus gracias por su ayuda
Código
  1. #include<stdio.h>
  2. #include<windows.h>
  3.  
  4. FILE * archivo;
  5.  
  6. struct pasajero
  7. {
  8.  
  9. int cod, numbus,edad,ruta,identidad[13];
  10. char nombre[50],telefono[8];
  11.  
  12.  
  13. }pas;
  14. struct Nodo
  15. {
  16. int dato;
  17. Nodo *siguiente;
  18. };
  19.  
  20. Nodo * lista =NULL;
  21. //--------------------------------------------------------
  22. int validar(int valor, int li, int ls)
  23. {
  24. while(valor < li || valor > ls)
  25. {
  26.    printf("\n Error...Ingrese un valor entre [%d] y [%d]: ", li, ls);
  27. scanf("%d",&valor);
  28.  
  29. }
  30. return valor;
  31. }
  32. //.----------------------------------------------------
  33. void consultar()
  34. {
  35. system("cls");
  36. int codigo;
  37.  
  38. archivo = fopen("pasajero.txt","rt");
  39.  
  40. if(archivo == NULL)
  41. printf("\nEL archivo no existe.");
  42. else
  43. {
  44. printf("\n Ingrese el codigo del pasajero: ");
  45. scanf("%d", &codigo);
  46.  
  47. printf("\n codigo Nombre Identidad Edad telefono numero de bus \n");
  48.  
  49. while(!feof(archivo))
  50. {
  51. fscanf(archivo, "%d %s %d %d %s %d ",&pas.cod , &pas.nombre, &pas.identidad, &pas.edad, &pas.telefono,&pas.ruta );
  52.  
  53. if(pas.cod==codigo)
  54. {
  55. printf("%5d %5s %8d %5d %10s %4d \n\n",pas.cod,pas.nombre,pas.identidad,pas.edad,pas.telefono,pas.ruta);
  56. break;
  57. }
  58. else if(feof(archivo))
  59. printf("\n pasajero no encontrado\n\n");
  60. }
  61. }
  62. system("pause");
  63. fclose(archivo);
  64. }
  65. //-------------------------------------------
  66. void busactivo(Nodo * &lista, int num)
  67. {
  68. Nodo *j = lista;
  69. bool encontrado = false;
  70.  
  71. while((j != NULL) && (j -> dato <= num )){
  72. if ( j -> dato == num)
  73. encontrado = true;
  74. j = j -> siguiente;
  75. }
  76.  
  77. if (encontrado == true)
  78. printf("\n El bus numero [%d] esta activo \n",&num);
  79. else
  80. printf("\n El bus numero [%d] NO esta activo \n",&num);
  81.  
  82. system("pause");
  83. }
  84.  
  85. //-------------------------------------------
  86. void agregararchi()
  87. {
  88. int num;
  89. archivo = fopen("pasajero.txt", "rt" );
  90.  
  91. if(archivo!= NULL)
  92.      {
  93. printf("\nEl archivo ya existe.");
  94.  }
  95. else
  96.    {
  97.   archivo = fopen("pasajero.txt", "wt" );
  98.     printf("\nEl archivo se ha creado.");
  99.    }
  100. char resp;
  101. archivo = fopen("pasajero.txt","rt");
  102.  
  103. if(archivo == NULL)
  104. {
  105. printf("\nEl archivo no existe");
  106. }
  107. else
  108.    {
  109.      system("cls");
  110.      archivo = fopen("pasajero.txt", "at" );
  111.  do
  112.    {
  113.      printf("\n\tDatos de pasajero.");
  114.          printf("\n\t*****\n");
  115. //for para agregar numero de asientos ------>pendiente
  116.  
  117.  printf("\nIngrese codigo del pasajero: ");
  118.          scanf("%d", &pas.cod);
  119.  pas.cod=validar(pas.cod,1,999);
  120.  
  121.      printf("\nIngrese Nombre del pasajero: ");
  122.          scanf("%s", &pas.nombre);
  123.  
  124.  printf("\nIngrese Identidad del Pasajero: ");
  125.          scanf("%d", &pas.identidad);
  126.  
  127.    printf("\nIngrese la edad del Pasajero: ");
  128.          scanf("%d", &pas.edad);
  129.          pas.edad=validar(pas.edad,1,99);
  130.  
  131.  printf("\nIngrese numero de telefono del Pasajero: ");
  132.          scanf("%s", &pas.telefono);
  133.  
  134.  printf("\n\t -RUTAS DISPONIBLES-");
  135.  printf("\n\t--------------------");
  136.  printf("\n\t|Ruta[1]...TEG-->SPS|");
  137.  printf("\n\t|-------------------|");
  138.  printf("\n\t|Ruta[2]...TEG-->CHO|");
  139.  printf("\n\t--------------------");
  140.  printf("\nIngrese su ruta deseada: ");
  141.  scanf("%d",&pas.ruta);
  142.          switch(pas.ruta)
  143.          {
  144.           case 1 :
  145.           printf("\nBus numero 1");
  146.           fprintf(archivo,"\nSu numero de bus es [%d]",pas.ruta);
  147.           break;
  148.           case 2 :
  149.           printf("\nBus numero 2");
  150.           fprintf(archivo,"\nSu numero de bus es [%d]",pas.ruta);
  151.           break;
  152.  }
  153.          fprintf(archivo, "\nCodigo del Pasajero: ");
  154.          fprintf(archivo, "%2d", pas.cod);
  155.          fprintf(archivo, "\nNombre del Pasajero: ");
  156.          fprintf(archivo, "%2s", pas.nombre);
  157.          fprintf(archivo, "\nIdentidad del Pasajero: ");
  158.            fprintf(archivo, "%2d", pas.identidad);
  159.            fprintf(archivo, "\nEdad del Pasajero: ");
  160.  fprintf(archivo, "%2d", pas.edad);
  161.  fprintf(archivo, "\nTelefono del Pasajero: ");
  162.  fprintf(archivo, "%2s", pas.telefono);
  163.  fprintf(archivo, "\nRuta: ");
  164.  fprintf(archivo, "%d", pas.ruta);
  165.   switch(pas.ruta)
  166.   {
  167.   case 1:
  168.   fprintf(archivo,"RUTA #1...TEG-->SPS\n");
  169.   break;
  170.  
  171.   case 2:
  172.   fprintf(archivo,"RUTA #2...TEG-->CHO\n");
  173.  
  174. }
  175.  
  176.  do
  177.    {
  178. printf("\n%cDesea agregar otro pasajero ?: ",168);
  179.     scanf("%s", &resp);
  180.     resp = toupper(resp);
  181.     if(resp != 'S' && resp != 'N')
  182.        printf("\n Error... Ingrese [S o N]");
  183.   } while(resp != 'S' && resp != 'N');
  184.  
  185.    }while(resp=='S');
  186.    }
  187. system("pause");    
  188. fclose(archivo);
  189. }
  190.  
  191. //-------------------------------------------
  192. void mostrar(Nodo*lista)
  193. {
  194. Nodo *i=lista;
  195.  
  196. if(lista==NULL){
  197. printf ("\n\t** LISTA VACIA **\n");
  198. }else{
  199. while((i!=NULL)){
  200. printf("bus[%d] --> ",i->dato);
  201. i=i->siguiente;
  202. }
  203. printf("No hay mas buses encontados ");
  204. }
  205.  
  206. printf("\n\n");
  207. system("pause");
  208.  
  209. }
  210. //-------------------------------------------
  211. void agregar(Nodo *&lista, int &num)
  212. {
  213. Nodo * nuevo_nodo = new Nodo();
  214. nuevo_nodo -> dato = num;
  215.  
  216. Nodo * auxi1 = lista;
  217. Nodo * auxi2;
  218.  
  219. while((auxi1 != NULL) && ( auxi1 -> dato))
  220. {
  221. auxi2 = auxi1;
  222. auxi1 = auxi1 -> siguiente;
  223. }
  224. if(lista == auxi1)
  225. lista = nuevo_nodo;
  226.  else
  227. auxi2 -> siguiente = nuevo_nodo;
  228.  
  229. nuevo_nodo-> siguiente = auxi1;
  230. system("cls");
  231. printf("\n El bus[%d] se agrego correctamente \n", num);
  232.  
  233.  
  234. }
  235. //--------------------------------------------
  236. void menu()
  237. {
  238. int id;
  239. char res;
  240. int num;
  241. int opc, marcador;
  242.  
  243. do
  244. {
  245. system("cls");
  246. printf("\n\tTerminal de buses:" );
  247. printf("\n\t** *\n" );
  248. printf("\n [1]... Agregar cliente al bus" );
  249. printf("\n [2]... Mostrar todos los buses disponibles" );
  250. printf("\n [3]... Agregar pasajeros al autobus" );
  251. printf("\n [4]... Consultar pasajero" );//cessar
  252. printf("\n [5]... Modificar datos del pasajero " );//jose
  253. printf("\n [6]... Eliminar pasajero");//andres
  254. printf("\n [7]... Salir " );
  255. do
  256. {
  257. printf("\nIngrese su opcion [1-7]: ");
  258. scanf("%d", &opc);
  259. if(opc<1 || opc>7)
  260. printf("\nError...Ingrese su opci%cn de [1-7]: ",162);
  261. }while(opc<1 || opc>7);
  262.  
  263. switch(opc)
  264. {
  265. case 1:
  266. system("cls");
  267. printf ("\n\t Ingreso de Buses a la Lista Disponible");
  268. printf ("\n\t *** * ** * * ** ****\n");
  269. do
  270. {
  271. printf("\nIngrese el numero Bus en Estado Disponible: ");
  272. scanf("%d",&num);
  273. num=validar(num,1,5);
  274. agregar(lista,num);
  275. do
  276. {
  277. printf("\n%cDesea Agregar otro Bus Disponible[S-N]: ",168);
  278. scanf("%s",&res);
  279. res = toupper(res);
  280. if (res != 'S' && res != 'N')
  281. printf("\n Error... opci%cn incorrecta\n",162);
  282. }while(res != 'S' && res !='N');
  283. }while(res == 'S');
  284. break;
  285. case 2:
  286. system("cls");
  287. printf ("\n Consulta los buses disponibles en la LISTA ");
  288. printf ("\n ****** \n");
  289. mostrar(lista);
  290. break;
  291. case 3:
  292. system("cls");
  293. printf("\nIngrese datos del pasajero");
  294. agregararchi();
  295. break;
  296. case 4:
  297.  
  298. printf("\n\t----Consultar Datos----");
  299. printf("\n\t***********************\n");
  300. consultar();
  301.  
  302. break;
  303. case 5:
  304.  
  305. system("cls");
  306.  
  307. printf("\n\t----- MODIFICAR DATOS -----");
  308. printf("\n\t*********\n");
  309. printf("\n Ingrese el codigo de pasajero a buscar: ");
  310. scanf("%d", &id);
  311.  
  312. if(archivo == NULL)
  313. {
  314. printf("\nEl archivo no existe");
  315. }
  316. else if(id==pas.cod)
  317.    {
  318.      system("cls");
  319.      archivo = fopen("pasajero.txt", "at" );
  320.  
  321.      printf("\n\tDatos de pasajero.");
  322.          printf("\n\t*****\n");
  323. //for para agregar numero de asientos ------>pendiente
  324.  
  325.  printf("\nIngrese codigo del pasajero: ");
  326.          scanf("%d", &pas.cod);
  327.  pas.cod=validar(pas.cod,1,999);
  328.  
  329.      printf("\nIngrese Nombre del pasajero: ");
  330.          scanf("%s", &pas.nombre);
  331.  
  332.  printf("\nIngrese Identidad del Pasajero: ");
  333.          scanf("%d", &pas.identidad);
  334.  
  335.    printf("\nIngrese la edad del Pasajero: ");
  336.          scanf("%d", &pas.edad);
  337.          pas.edad=validar(pas.edad,1,99);
  338.  
  339.  printf("\nIngrese numero de telefono del Pasajero: ");
  340.          scanf("%s", &pas.telefono);
  341.  
  342.  printf("\n\t -RUTAS DISPONIBLES-");
  343.  printf("\n\t--------------------");
  344.  printf("\n\t|Ruta[1]...TEG-->SPS|");
  345.  printf("\n\t|-------------------|");
  346.  printf("\n\t|Ruta[2]...TEG-->CHO|");
  347.  printf("\n\t--------------------");
  348.  printf("\nIngrese su ruta deseada: ");
  349.  scanf("%d",&pas.ruta);
  350.          switch(pas.ruta)
  351.          {
  352.           case 1 :
  353.           printf("\nBus numero 1");
  354.           fprintf(archivo,"\nSu numero de bus es [%d]",pas.ruta);
  355.           break;
  356.           case 2 :
  357.           printf("\nBus numero 2");
  358.           fprintf(archivo,"\nSu numero de bus es [%d]",pas.ruta);
  359.           break;
  360.  }
  361.          fprintf(archivo, "\nCodigo del Pasajero: ");
  362.          fprintf(archivo, "%2d", pas.cod);
  363.          fprintf(archivo, "\nNombre del Pasajero: ");
  364.          fprintf(archivo, "%2s", pas.nombre);
  365.          fprintf(archivo, "\nIdentidad del Pasajero: ");
  366.            fprintf(archivo, "%2d", pas.identidad);
  367.            fprintf(archivo, "\nEdad del Pasajero: ");
  368.  fprintf(archivo, "%2d", pas.edad);
  369.  fprintf(archivo, "\nTelefono del Pasajero: ");
  370.  fprintf(archivo, "%2s", pas.telefono);
  371.  fprintf(archivo, "\nRuta: ");
  372.  fprintf(archivo, "%d", pas.ruta);
  373.   switch(pas.ruta)
  374.   {
  375.   case 1:
  376.   fprintf(archivo,"RUTA #1...TEG-->SPS\n");
  377.   break;
  378.  
  379.   case 2:
  380.   fprintf(archivo,"RUTA #2...TEG-->CHO\n");
  381.  
  382. }
  383.  
  384.    }
  385. printf("\n\n");
  386. system("pause");
  387. break;
  388. //case 6:
  389. // break;
  390. case 7:
  391. default:
  392. printf("\n FELIZ VIAJE");
  393. exit(0);
  394. }
  395. }while(opc!=7);
  396.  
  397. }
  398. main()
  399. {
  400. menu();
  401. return 0;
  402. }
  403.  
2  Programación / Programación C/C++ / eliminar un dato de arbol en: 30 Julio 2020, 00:36
necesito ayuda la verdad no puede logarar que los datos del arbol se eliminen
no logro avanzar de ahi me serviria mucho su ayuda o consejos gracias
eliminar un solo dato del arbol
y despues que se eliminen todos los datos del arbol
 
Código
  1. #include<stdio.h>
  2. #include<windows.h>
  3.  
  4. struct nodo{
  5. double dato;
  6. nodo *derecho;
  7. nodo *izquierdo;
  8. nodo *padre;
  9. };
  10.  
  11. nodo *arbol=NULL;
  12. //--------------------------elliminar dato----------------------------------
  13. void eliminar(nodo*arbol,double num)
  14. {
  15. if(arbol ==NULL)
  16. {
  17. return;
  18. }
  19. else if(num<arbol ->dato)
  20. {
  21. eliminar(arbol->izquierdo,num);
  22. }
  23. else if(num>arbol->dato)
  24. {
  25. eliminar(arbol-> derecho,num);
  26. }
  27. else
  28. {
  29. eliminarnodo(arbol);
  30. }
  31.  
  32.  
  33. }
  34. //--------------------------------------------------------------------------
  35. nodo*minimo(nodo*arbol)
  36. {
  37. if(arbol ==NULL)
  38. {
  39. return NULL;
  40. }
  41. if(arbole->izquierdo)
  42. {
  43. return minimo(arbol->izquierdo);
  44. }
  45. else
  46. {
  47. return arbol;
  48. }
  49. }
  50. //----------------------------------------------------------------
  51. void reemplazar(nodo *arbol,nodo* nuevonodo)
  52. {
  53. if(arbol->padre)
  54. {
  55.  
  56. if(arbol->dato =arbol->padre->izquierdo->dato)
  57. {
  58. arbol->padre->padre->izquierdo=nuevonodo;
  59. }
  60. else if(arbol->dato==arbol->padre->derecho->dato)
  61. {
  62. arbol->padre->derecho=nuevonodo;
  63. }
  64.  
  65. }
  66. if(nuevonodo)
  67. {
  68. nuevonodo->padre=arbol->padre;
  69. }
  70. }
  71. //--------------------------------------------------------------------------
  72. void destruirnodo(nodo *nodo)
  73. {
  74. nodo->izquierdo=NULL;
  75. nodo->derecho=NULL;
  76.  
  77. delete nodo;
  78. }
  79. //---------------------------------------------------------------------------
  80. void eliminarnodo(nodo*nodoeliminar)
  81. {
  82. if(nodoeliminar->izquerdo && nodoeliminar->derecho)
  83. {
  84. nodo*menor=minimo(nodoeliminar->derecho);
  85. nodoeliminar->dato=menor->dato;
  86. eliminarnodo(menor);
  87. }
  88. else if(nodoeliminar->izquierdo)
  89. {
  90. reemplazar(nodoeliminar,nodoeliminar->izquierda);
  91. destruirnodo(nodoeliminar);
  92. }
  93. else if(nodoeliminar->derecho)
  94. {
  95. reemplazar(nodoeliminar,nodoeliminar->derecho);
  96. destruirnodo(nodoeliminar);
  97. }
  98. }
  99. //--------------------------CONSULTAR DATOS---------------------------------
  100. bool consultar(nodo *arbol, double num){
  101.  
  102. if(arbol == NULL)
  103. {
  104. return false;
  105. }
  106. else if(arbol->dato == num)
  107. {
  108. return true;
  109. }
  110. else if(num < arbol->dato)
  111. {
  112. return consultar(arbol->izquierdo, num);
  113. }
  114. else
  115. {
  116. return consultar(arbol->derecho, num);
  117. }
  118.  
  119. }
  120.  
  121. //--------------------------MOSTRAR DATOS---------------------------------
  122. void mostrar(nodo *arbol, double cont)
  123. {
  124. if(arbol==NULL)
  125. {
  126. return;
  127. }
  128. else
  129. {
  130. mostrar(arbol->derecho, cont+1);
  131. for(int i=0;i<cont; i++)
  132. printf("    ");
  133. printf(" %.2lf \n\n",arbol->dato);
  134.  
  135. mostrar(arbol->izquierdo, cont+1);
  136.  
  137. }
  138.  
  139. }
  140. //-------------------------------------------------------------------------
  141.  
  142. nodo * crear(double num)
  143. {
  144. nodo * nuevonodo = new nodo();
  145. nuevonodo->dato = num;
  146. nuevonodo->derecho = NULL;
  147. nuevonodo->izquierdo = NULL;
  148.  
  149. return nuevonodo;
  150. }
  151. //---------------------------INSERTAR DATOS--------------------------------
  152. void insertar(nodo *&arbol, double num)
  153. {
  154. if(arbol == NULL)
  155. {
  156. nodo *nuevonodo = crear(num);
  157. arbol = nuevonodo;
  158. }
  159. else
  160. {
  161. int raiz=arbol->dato;
  162. if(num < raiz)
  163. insertar(arbol->izquierdo, num);
  164. else
  165. {
  166. insertar(arbol->derecho, num);
  167. }
  168. }
  169. }
  170. //------------------------------MENU-----------------------------------------------------
  171. void menu()
  172. {
  173. int opc, cont=0;
  174. double num;
  175. char resp;
  176.  
  177. do{
  178. system("cls");
  179. printf("\n\t MENU ARBOLES BINARIOS");
  180. printf("\n\t **** ******* ********");
  181.  
  182. printf("\n [1]...Agregando datos al %crbol",160);
  183. printf("\n [2]...Mostrar datos del %crbol",160);
  184. printf("\n [3]...Consultar datos del %crbol",160);
  185. printf("\n [4]...Eliminar un dato del %crbol",160);
  186. printf("\n [5]...Eliminar todos los datos del %crbol",160);
  187. printf("\n [6]...SALIR");
  188. do{
  189. printf("\n Ingrese una opci%cn: ",162);
  190. scanf("%d", &opc);
  191. if(opc<1 || opc>6);
  192. printf("\n ERROR...Ingrese una opci%cn v%clida[1-6]: ",162, 160);
  193. }while(opc<1 || opc>6);
  194.  
  195. switch(opc){
  196. case 1:
  197. system("cls");
  198. printf("\n\t INGRESO DATOS AL ARBOL");
  199. printf("\n\t ******* ** ***** ** *****");
  200.  
  201. do{
  202. printf("\n Ingrese un n%cmero al arbol: ", 163);
  203. scanf("%lf", &num);
  204. insertar(arbol, num);
  205.  
  206. do
  207. {
  208. printf("\n %cDesea ingresar otro dato al arbol?: ",168);
  209. scanf("%s", &resp);
  210. resp=toupper(resp);
  211. if(resp != 'S' && resp != 'N')
  212. printf("\n ERROR... Ingrese una opcion valida[S-N]");
  213. }while(resp != 'S' && resp != 'N');
  214. }while(resp=='S');
  215.  
  216. break;
  217.  
  218. case 2:
  219. system("cls");
  220. printf("\n\t MOSTRANDO DATOS DEL ARBOL");
  221. printf("\n\t ********* ***** *** *****\n");
  222. mostrar(arbol, cont);
  223. system("pause");
  224. break;
  225.  
  226. case 3:
  227. system("cls");
  228. printf("\n\t CONSULTAR DATOS DEL DATOS");
  229. printf("\n\t ********* ***** *** *****");
  230.  
  231. do{
  232. printf("\n Ingrese un n%cmero a buscar del arbol: ",163);
  233. scanf("%lf", &num);
  234.  
  235. if(consultar(arbol, num) == true)
  236. {
  237. printf("\n EL ELEMENTO [%.2lf] HA SIDO ENCONTRADO", num);
  238. printf("\n");
  239. }
  240. else
  241. {
  242. printf("\n EL DATO [%.2lf] NO ESTA GUARDADO EN EL ARBOL.",num);
  243. printf("\n");
  244. }
  245. printf("\n");
  246. system("pause");
  247.  
  248. do
  249. {
  250. printf("\n %cDesea buscar otro dato dentro del %crbol?: ",168,160);
  251. scanf("%s", &resp);
  252. resp=toupper(resp);
  253. if(resp != 'S' && resp != 'N')
  254. printf("\n ERROR... Ingrese una opcion valida[S-N]");
  255. }while(resp != 'S' && resp != 'N');
  256. }while(resp=='S');
  257. break;
  258. case 4:
  259. system("cls");
  260. printf("\n\t eliminar un DATO DEL arbol");
  261. printf("\n\t ********* ***** *** *****");
  262. eliminar(arbol,num);
  263.  
  264. default:
  265. exit(0);
  266. }
  267.  
  268. }while(opc != 6);
  269.  
  270.  
  271.  
  272. }
  273.  
  274. main()
  275. {
  276. menu();
  277. return 0;
  278. }
3  Programación / Programación C/C++ / venta de boletos de autobuses utilizando (colas ,listas o arboles) y archivos en: 27 Julio 2020, 03:22
hacer reserva de asientos de un autobús(máximo 10 asientos ) que pida código ,nombre , numero de asiento ,numero de autobús ,precio ,y precio total con impuesto ,guardando los datos en un archivo y utilizando listas o colas y que imprima todo estos datos como un recibo soy estudiante y me ayudaría mucho su ayuda muchas gracias por su tiempo ; si lo siento mucho asta ahii e avanzado

mas que todo queria una idea o una sugerencia de como hacer la parte de colas o listas ya que no se exactamente como proceder
  
Código
  1. #include<stdio.h>
  2. #include<windows.h>
  3.  
  4. FILE *archivo;
  5.  
  6. struct pasajero
  7. {
  8. int codigo ,asiento, edad;
  9. char nombre [50];
  10. double precio ,precioTotal;
  11. }pas;
  12. //**************************************************************
  13. double validar(double valor, double li, double ls)
  14. {
  15. while(valor < li || valor > ls)
  16. {
  17.    printf("\n Error...Ingrese un valor entre [%.2lf] y [%.2lf]: ", li, ls);
  18. scanf("%lf",&valor);  
  19. }
  20. return valor;
  21. }
  22. //***************************************************************
  23. void consultar()
  24. {
  25. int cod;
  26.  
  27. system("cls");
  28.  
  29. archivo = fopen("pasajero.txt","rt");
  30.  
  31. if(archivo == NULL)
  32. printf("\nEl archivo No existe.");
  33. else
  34. {
  35. printf("\n Ingrese el codigo del pasajero: ");
  36. scanf("%d",&pas.codigo);
  37.  
  38. printf("\n codigo Edad Nombre No-asiento");
  39.  
  40. while(!feof(archivo))
  41. {
  42. fscanf(archivo, "%d %d %s %d",&pas.codigo,&pas.edad,&pas.nombre,&pas.asiento);
  43.  
  44. if(pas.codigo==cod)
  45. {
  46. printf("%d %d %s %d",pas.codigo,pas.edad,pas.nombre,pas.asiento);
  47. break;
  48. }
  49. else if(feof(archivo))
  50. printf("\n Pasajero no encontrado");
  51. }
  52. }
  53. system("pause");
  54. fclose(archivo);
  55. }
  56. //***************************************************************
  57. void listar()
  58. {
  59. system("cls");
  60.  
  61. archivo = fopen("pasajero.txt", "rt" );
  62.  
  63. if(archivo == NULL)
  64.     {
  65. printf("\nEl archivo No existe.");
  66.   }
  67. else
  68.     {
  69.   printf("\nCodigo edad nombre promedio\n");
  70.  
  71.   while(!feof(archivo))
  72.            {
  73.  fscanf(archivo, "%d %d %s %d", &pas.codigo, &pas.edad, &pas.nombre, &pas.asiento);
  74.    printf("%5d %4d %5s %5d\n", pas.codigo, pas.edad, pas.nombre, pas.asiento);
  75.            }
  76.     }
  77. system("pause");
  78. fclose(archivo);
  79. }
  80. //***************************************************************
  81. void agregar()
  82. {
  83. char resp;
  84. archivo = fopen("pasajero.txt","rt");
  85.  
  86. if(archivo ==NULL)
  87. {
  88. printf("\nEl archivo No existe");
  89. }
  90. else
  91. {
  92. system("cls");
  93. archivo = fopen("pasajero.txt","at");
  94. do
  95. {
  96. printf("\n\tDatos del pasajero");
  97. printf("\n\t----- --- --------");
  98. printf("\nIngrese el codigo del pasajero :");
  99. scanf("%d",&pas.codigo);
  100. pas.codigo=validar(pas.codigo,1,10);
  101.  
  102. printf("\nIngrese la edad del pasajero:");
  103. scanf("%d",&pas.edad);
  104. pas.edad=validar(pas.edad,1,100);
  105.  
  106. printf("\nIngrese el nombre del pasajero: ");
  107. scanf("%s",&pas.nombre);
  108.  
  109. printf("\nIngrese el numero del asiento:");
  110. scanf("%d",&pas.asiento);
  111.  
  112. fprintf(archivo, "\n %d", pas.codigo);
  113.          fprintf(archivo, "\n %d", pas.edad);
  114. fprintf(archivo, "\n %s", pas.nombre);
  115. fprintf(archivo, "\n %d", pas.asiento);
  116.  
  117. do
  118. {
  119. printf("\n Desea agregar otro envio? \n: ");
  120.    scanf("%s", &resp);
  121.    resp = toupper(resp);
  122.    if(resp != 'S' && resp != 'N')
  123.     printf("\n Error... Ingrese [S o N]");
  124. }while(resp != 'S' && resp != 'N');
  125.  
  126. }while(resp=='S');
  127. }
  128. printf("\n");
  129. system("pause");    
  130. fclose(archivo);
  131. }
  132. //***************************************************************
  133. void crear()
  134. {
  135. archivo = fopen("pasajero.txt","rt");
  136.  
  137. if(archivo !=NULL)
  138. {
  139. printf("\n El archivo ya existe");
  140. }
  141. else
  142. {
  143. archivo = fopen("pasajero.txt","wt");
  144. printf("\n el archivo a sido creado con exito");
  145. }
  146. system("pause");
  147. fclose(archivo);
  148. }
  149. //***************************************************************
  150. void menu()
  151. {
  152. int opc;
  153. do
  154. {
  155. system("cls");
  156. printf("\nMenu :");
  157. printf("\n[1]...crear");
  158. printf("\n[2]... Agregar");
  159. printf("\n[3]... listar datos ");
  160. printf("\n[4]... consultar pasajero");
  161. printf("\n[5]... salir");
  162. do
  163. {
  164. printf("\nIngrese su opcion [1-5]: ");
  165. scanf("%d",&opc);
  166. if(opc<1 || opc>5)
  167. printf("\nError ingrese [1-5]: ");
  168. }while(opc<1 || opc>7);
  169.  
  170. switch(opc)
  171. {
  172. case 1:
  173. crear();
  174. break;
  175. case 2:
  176. agregar();
  177. break;
  178. case 3:
  179. listar();
  180. break;
  181. case 4:
  182. consultar();
  183. break;
  184. default:
  185. printf("gracias por usar nuestro sistema");
  186. exit(0);
  187. }
  188. }while(opc != 5);
  189. }
  190. //*********************************************************
  191. main ()
  192. {
  193. menu();
  194.  
  195. return 0 ;
  196. }
  197.  
Páginas: [1]
Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines