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

 

 


Tema destacado: Trabajando con las ramas de git (tercera parte)


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  Tengo que hacer un programa de una areolinea
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Tengo que hacer un programa de una areolinea  (Leído 3,425 veces)
vinceet

Desconectado Desconectado

Mensajes: 10


Ver Perfil
Tengo que hacer un programa de una areolinea
« en: 24 Octubre 2014, 01:10 am »

Hola tengo que hacer un programa de una aerolinea que se guarde en TXT pero tengo una series de errores

necesita comprar boleto eso lo hace
buscar persona con cedula eso lo hace
ver todos los haciendo ocupado mayores de 60 años eso lo hace
ver promedio de edad eso lo hace

pero a la hora de modificar no me modifica
y cuando cierro el programa lo vuelvo abrir el txt no hay nada necesito ayuda.

aqui tengo el codigo


En línea

daryo


Desconectado Desconectado

Mensajes: 1.070



Ver Perfil WWW
Re: Tengo que hacer un programa de una areolinea
« Respuesta #1 en: 24 Octubre 2014, 01:29 am »

pon el codigo dentro de las etiqueta
Código:
[code=c]codigo aca[code]
asegurate de cerrar el txt una ves terminasde escribir , si no puede pasar lo que dices y quedarse en blanco[/code][/code]


En línea

buenas
vinceet

Desconectado Desconectado

Mensajes: 10


Ver Perfil
Re: Tengo que hacer un programa de una areolinea
« Respuesta #2 en: 24 Octubre 2014, 02:21 am »

hay algunas incoherencia como alumnos solo que me copie de uno q habia echo

Código
  1. #include <cstdlib>
  2. #include <iostream>
  3. #include <fstream>
  4.  
  5.  
  6. using namespace std;
  7.  
  8. int contedad=0;
  9. int edadtotal,edadpromedio;
  10.  
  11.  
  12. struct alumno
  13. {
  14.       string nombre;
  15.       int cedula;
  16.       int edad;
  17.       };
  18.  
  19. alumno persona[6][5];
  20.  
  21. int matriz [6][5],i,j;
  22. char resp;
  23.  
  24. void mostrarmatriz(){
  25.  for(int i=0;i<6;i++)
  26.  {
  27. for(int j=0;j<5;j++)
  28. {
  29. printf(" %i",matriz[i][j]);
  30. }
  31. printf("\n");
  32. }
  33. cout<<"\n"<<endl;
  34. }
  35.  
  36.  
  37.  
  38. void Ingresar()
  39. { int opcion,a,b,ced=0;
  40.  
  41.  
  42.  mostrarmatriz();
  43.  
  44.  
  45.  cout<<"Ingresar Fila"<<endl;
  46.  cin>>a;
  47.    cout<<"Ingresar Columna"<<endl;
  48. cin>>b;
  49.  
  50. if(persona[a][b].cedula==0){
  51.  
  52.  
  53.  
  54.  cout<<"Ingresar Nombre"<<endl;
  55.  cin>>persona[a][b].nombre;
  56.   cout<<"Ingresar cedula"<<endl;
  57. cin>>ced;
  58.  
  59.  
  60. for (int u=0; u<6; u++){
  61.         for (int h=0;h<5;h++){
  62.  
  63. if(persona[u][h].cedula==ced){
  64.  
  65.  
  66.  
  67.  
  68.  
  69.  
  70. cout<<"Ingrese una cedula que no este registrada: ";
  71. cin>>ced;
  72.  
  73.  
  74. }}}
  75. persona[a][b].cedula=ced;
  76.   cout<<"Ingresar edad"<<endl;
  77.   cin>>persona[a][b].edad;
  78.   i=a;
  79.   j=b;
  80.   matriz[i][j]=1;
  81.   edadtotal=persona[a][b].edad+edadtotal;
  82.   contedad++;
  83. system ("pause");
  84. }else{
  85. cout<<"El asiento ya esta ocupado"<<endl;
  86. system ("pause");
  87. }
  88.  
  89.  
  90. }
  91.  
  92. void Mostrarlistam60()
  93. {
  94.  
  95. mostrarmatriz();
  96.    for(int a=0;a<6;a++)
  97.  
  98.    {
  99.            for(int b=0;b<5;b++)
  100.            {
  101.                    if((persona[a][b].cedula>0) && (persona[a][b].edad>=60)){
  102.  
  103.     cout<<"\n\nSilla:"<<"Fila: "<<a<<", Columna: "<<b<<endl;      
  104.  cout<<"Nombre: "<<persona[a][b].nombre<<endl;
  105.    cout<<"Cedula: "<<persona[a][b].cedula<<endl;
  106.    cout<<"Edad: "<<persona[a][b].edad<<endl;
  107.  
  108.    system ("pause");
  109.  
  110.  
  111. }
  112.  
  113. }
  114. }
  115. }
  116.  
  117. void pasiento(){
  118.  
  119. int ced;
  120. cout<<"Bienvenido al metodo mostrar: "<<endl;
  121. cout<<"Ingrese cedula de la persona registrada: ";
  122. cin>>ced;
  123. for (int a=0;a<6; a++ ){
  124. for (int b=0;b<5;b++){
  125.  
  126.  
  127. if(persona[a][b].cedula==ced)
  128. {
  129.    cout<<"Silla:"<<a<<b<<endl;      
  130.  cout<<"Nombre: "<<persona[a][b].nombre<<endl;
  131.    cout<<"Cedula: "<<persona[a][b].cedula<<endl;
  132.    cout<<"Edad: "<<persona[a][b].edad<<endl;
  133.  
  134. break;
  135. }
  136. }
  137. }
  138. system ("pause");
  139.  
  140. }
  141.  
  142. void datosdeventas()
  143. {
  144.  
  145. mostrarmatriz();
  146. edadpromedio=(edadtotal)/contedad;
  147. cout<<"La edad promedio del vuelo es: "<<edadpromedio<<endl;
  148.    system ("pause");
  149.  
  150.  
  151. }
  152.  
  153. void Modificar(){
  154.  
  155. int cedula, ced;
  156.     int a,b,resp,u,h;
  157.     system("cls");
  158.     cout<<"Bienvenido al metodo modificar: \n"<<endl;
  159.     cout<<"Ingrese cedula de la persona registrada: ";
  160.     cin>>cedula;
  161. for (a=0; a<6; a++){
  162. for (b=0; b<5; b++){
  163.     if(cedula==persona[a][b].cedula){
  164.                                  do{
  165.                                  system("cls");
  166.  
  167.         cout<<"Nombre: " <<persona[a][b].nombre<<endl;
  168.         cout<<"Cedula: "<<persona[a][b].cedula<<endl;
  169.         cout<<"Edad: "<<persona[a][b].edad<<endl;
  170.         cout<<"Esta sentado en el puesto: Fila: "<<a<<"\tColumna: "<<b<<endl;
  171.  
  172.  
  173.  
  174.      cout<<"_____________________________"<<endl;
  175.     mostrarmatriz();
  176. cout<<"1.-Cambiar de puesto"<<endl;
  177.     cout<<"0-Salir.\n";
  178.     cin>>resp;
  179.  
  180.  
  181.     switch (resp){
  182.            case 1:{
  183.  
  184.                 cout<<"Ingresar nueva fila"<<endl;
  185.  cin>>u;
  186.    cout<<"Ingresar nueva columna"<<endl;
  187. cin>>h;
  188.  
  189. if(persona[u][h].cedula==0){
  190. persona[u][h].nombre=persona[a][b].nombre;
  191. persona[u][h].cedula=persona[a][b].cedula;
  192. persona[u][h].edad=persona[a][b].edad;
  193. matriz[u][h]=1;
  194. persona[a][b].nombre="";
  195.            persona[a][b].cedula=0;
  196.            persona[a][b].edad=0;
  197.            matriz[a][b]=0;
  198. a=u;
  199.            b=h;
  200.  
  201.                 break;
  202.          }else{
  203.           cout<<"Este puesto esta ocupado"<<endl;
  204.          }
  205.  
  206.  
  207.  
  208.         }
  209.            }
  210.  
  211.            }while (resp!=0);
  212.           cout<<"Los datos han sido modificados satisfactoriamente. ";
  213.    system("PAUSE");
  214. break;  
  215.            }
  216.  
  217.     }}
  218.  
  219.  
  220.  
  221.    system ("pause");
  222. }
  223.  
  224.  
  225.  
  226. int main(int argc, char *argv[])
  227. {
  228.  
  229.    int a,b;
  230. int op;
  231. ofstream f;
  232. f.open("Boletosvendidos.txt", ofstream::trunc | ofstream::out);
  233.  
  234.    do
  235.    {
  236.     system("cls");
  237.     cout<<"1.- Comprar Boleto"<<endl;
  238.     cout<<"2.- Buscar asiento de persona por cedula"<<endl;
  239.     cout<<"3.- Ver todos los asientos ocupados de las personas mayores de 60 años"<<endl;
  240. cout<<"4.- Modificar asiento de unas persona"<<endl;
  241. cout<<"5.- Ver promedio de edad"<<endl;
  242.     cout<<"0.- Salir"<<endl;
  243.  
  244.     cin>>op;      
  245.  
  246.    switch (op)
  247.    {
  248.    case 1:
  249. {
  250.         Ingresar();
  251.         break;    
  252. }
  253. case 2:
  254.     {
  255.         pasiento();
  256.         break;
  257.         }
  258. case 3:
  259. {
  260. Mostrarlistam60();
  261. break;
  262. }
  263.  
  264. case 4:
  265. {
  266. Modificar();
  267. break;
  268. }
  269.  
  270. case 5:
  271. {
  272. datosdeventas();
  273. break;
  274. }
  275.  
  276.    }                      
  277.  
  278.    }while(op!=0);
  279.  
  280.    f<<"Todos los asientos ocupados"<<endl;
  281.  
  282.    for(int a=0;a<6;a++)
  283.  
  284.    {
  285.            for(int b=0;b<5;b++)
  286.            {
  287.             if(persona[a][b].cedula!=0){
  288.  
  289.  
  290.  
  291.     f<<"\n\nSilla:"<<a<<b<<endl;      
  292.  f<<"Nombre: "<<persona[a][b].nombre<<endl;
  293.    f<<"Cedula: "<<persona[a][b].cedula<<endl;
  294.    f<<"Edad: "<<persona[a][b].edad<<endl;
  295.  
  296. }
  297.  
  298. }
  299.  
  300. }
  301.  
  302.    f<<"\nTodas los asientos ocupados por personas de 60 años "<<endl;
  303.  
  304.  
  305.    for(int a=0;a<6;a++)
  306.  
  307.    {
  308.            for(int b=0;b<5;b++)
  309.            {
  310.             if(persona[a][b].cedula!=0){
  311.  
  312.                  if(persona[a][b].edad>=60)  {
  313.  
  314.  
  315.     f<<"\n\nSilla:"<<a<<b<<endl;      
  316.  f<<"Nombre: "<<persona[a][b].nombre<<endl;
  317.    f<<"Cedula: "<<persona[a][b].cedula<<endl;
  318.    f<<"Edad: "<<persona[a][b].edad<<endl;
  319. }
  320. }
  321.  
  322. }
  323.  
  324. }
  325. edadpromedio=(edadtotal)/contedad;
  326. f<<"\nPromedio de edad: "<<edadpromedio<<endl;
  327.  
  328.  
  329.  
  330.  
  331.  
  332.    system("PAUSE");
  333.    return EXIT_SUCCESS;
  334. }
  335. [code]
[/code]
En línea

Eternal Idol
Kernel coder
Moderador
***
Desconectado Desconectado

Mensajes: 5.937


Israel nunca torturó niños, ni lo volverá a hacer.


Ver Perfil WWW
Re: Tengo que hacer un programa de una areolinea
« Respuesta #3 en: 24 Octubre 2014, 09:30 am »

trunc   truncate   Any contents that existed in the file before it is open are discarded.

Cada vez que abris el archivo su contenido es descartado, no deberias usar trunc al llamar al metodo open. Ahora continua por tu cuenta, revisa tu codigo en busqueda de errores.
En línea

La economía nunca ha sido libre: o la controla el Estado en beneficio del Pueblo o lo hacen los grandes consorcios en perjuicio de éste.
Juan Domingo Perón
vinceet

Desconectado Desconectado

Mensajes: 10


Ver Perfil
Re: Tengo que hacer un programa de una areolinea
« Respuesta #4 en: 24 Octubre 2014, 14:40 pm »

Entonces en vez de usar trunc que debo usar. le he hecho de todo y asi me ha quedado

y lo de modificar tampoco encuentro el error o no se como hacerlo

por eso les pido ayuda
« Última modificación: 24 Octubre 2014, 14:46 pm por vinceet » En línea

ivancea96


Desconectado Desconectado

Mensajes: 3.412


ASMático


Ver Perfil WWW
Re: Tengo que hacer un programa de una areolinea
« Respuesta #5 en: 26 Octubre 2014, 01:18 am »

Prueba con f.open("Boletosvendidos.txt", ios::app).

ios::out no es necesario ponerlo, puesto que ya viene por defecto al ser ofstream.
ios::app sirve para empezar a escribir en el final del archivo, de lo contrario, empezará a escribir al principio. (Ponlo o no, según lo que busques)
ios::trunc borra el contenido del archivo.

No sabría decirte más, porque leer ese código haría que me duela la cabeza: La identación es horrible xD

EDITO: tras leer el main (gracias VisualStudio que lo identa), vi que a lo mejor sí que quieres que truncar el archivo con ios:.trunc.
« Última modificación: 26 Octubre 2014, 01:23 am por ivancea96 » En línea

vinceet

Desconectado Desconectado

Mensajes: 10


Ver Perfil
Re: Tengo que hacer un programa de una areolinea
« Respuesta #6 en: 26 Octubre 2014, 23:01 pm »

lo de trunc ya lo vi pero como hago para modificar
En línea

eferion


Desconectado Desconectado

Mensajes: 1.248


Ver Perfil
Re: Tengo que hacer un programa de una areolinea
« Respuesta #7 en: 27 Octubre 2014, 11:46 am »

Lo más sencillo es leer la totalidad del fichero en memoria, creando una colección de instancias de "alumno" en el proceso, después modificas esta colección a placer y por último sobreescribes el fichero, borrando todo lo anterior y guardando lo que tienes actualmente en memoria.
En línea

vinceet

Desconectado Desconectado

Mensajes: 10


Ver Perfil
Re: Tengo que hacer un programa de una areolinea
« Respuesta #8 en: 27 Octubre 2014, 18:46 pm »

si mer pusieran un codigo podria enterder mejor soy principiante
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines