Menú

Mostrar Mensajes

Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.

Mostrar Mensajes Menú

Mensajes - Anduresu

#1
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

#include<stdio.h>
#include<windows.h>

FILE * archivo;

struct pasajero
{

int cod, numbus,edad,ruta,identidad[13];
char nombre[50],telefono[8];


}pas;
struct Nodo
{
int dato;
Nodo *siguiente;
};

Nodo * lista =NULL;
//--------------------------------------------------------
int validar(int valor, int li, int ls)
{
while(valor < li || valor > ls)
{
    printf("\n Error...Ingrese un valor entre [%d] y [%d]: ", li, ls);
scanf("%d",&valor);
 
}
return valor;
}
//.----------------------------------------------------
void consultar()
{
system("cls");
int codigo;

archivo = fopen("pasajero.txt","rt");

if(archivo == NULL)
printf("\nEL archivo no existe.");
else
{
printf("\n Ingrese el codigo del pasajero: ");
scanf("%d", &codigo);

printf("\n codigo Nombre Identidad Edad telefono numero de bus \n");

while(!feof(archivo))
{
fscanf(archivo, "%d %s %d %d %s %d ",&pas.cod , &pas.nombre, &pas.identidad, &pas.edad, &pas.telefono,&pas.ruta );

if(pas.cod==codigo)
{
printf("%5d %5s %8d %5d %10s %4d \n\n",pas.cod,pas.nombre,pas.identidad,pas.edad,pas.telefono,pas.ruta);
break;
}
else if(feof(archivo))
printf("\n pasajero no encontrado\n\n");
}
}
system("pause");
fclose(archivo);
}
//-------------------------------------------
void busactivo(Nodo * &lista, int num)
{
Nodo *j = lista;
bool encontrado = false;

while((j != NULL) && (j -> dato <= num )){
if ( j -> dato == num)
encontrado = true;
j = j -> siguiente;
}

if (encontrado == true)
printf("\n El bus numero [%d] esta activo \n",&num);
else
printf("\n El bus numero [%d] NO esta activo \n",&num);

system("pause");
}

//-------------------------------------------
void agregararchi()
{
int num;
archivo = fopen("pasajero.txt", "rt" );

if(archivo!= NULL)
      {
printf("\nEl archivo ya existe.");
  }
else
    {
  archivo = fopen("pasajero.txt", "wt" );
     printf("\nEl archivo se ha creado.");
    }
char resp;
archivo = fopen("pasajero.txt","rt");

if(archivo == NULL)
{
printf("\nEl archivo no existe");
}
else
    {
      system("cls");
      archivo = fopen("pasajero.txt", "at" );
  do
    {
      printf("\n\tDatos de pasajero.");
          printf("\n\t*****\n");
//for para agregar numero de asientos ------>pendiente
 
  printf("\nIngrese codigo del pasajero: ");
          scanf("%d", &pas.cod);
  pas.cod=validar(pas.cod,1,999);

      printf("\nIngrese Nombre del pasajero: ");
          scanf("%s", &pas.nombre);

  printf("\nIngrese Identidad del Pasajero: ");
          scanf("%d", &pas.identidad);

    printf("\nIngrese la edad del Pasajero: ");
          scanf("%d", &pas.edad);
          pas.edad=validar(pas.edad,1,99);
 
  printf("\nIngrese numero de telefono del Pasajero: ");
          scanf("%s", &pas.telefono);
 
  printf("\n\t -RUTAS DISPONIBLES-");
  printf("\n\t--------------------");
  printf("\n\t|Ruta[1]...TEG-->SPS|");
  printf("\n\t|-------------------|");
  printf("\n\t|Ruta[2]...TEG-->CHO|");
  printf("\n\t--------------------");
  printf("\nIngrese su ruta deseada: ");
  scanf("%d",&pas.ruta);
          switch(pas.ruta)
          {
          case 1 :
          printf("\nBus numero 1");
          fprintf(archivo,"\nSu numero de bus es [%d]",pas.ruta);
          break;
          case 2 :
          printf("\nBus numero 2");
          fprintf(archivo,"\nSu numero de bus es [%d]",pas.ruta);
          break;
  }
          fprintf(archivo, "\nCodigo del Pasajero: ");
          fprintf(archivo, "%2d", pas.cod);
          fprintf(archivo, "\nNombre del Pasajero: ");
          fprintf(archivo, "%2s", pas.nombre);
          fprintf(archivo, "\nIdentidad del Pasajero: ");
            fprintf(archivo, "%2d", pas.identidad);
            fprintf(archivo, "\nEdad del Pasajero: ");
  fprintf(archivo, "%2d", pas.edad);
  fprintf(archivo, "\nTelefono del Pasajero: ");
  fprintf(archivo, "%2s", pas.telefono);
  fprintf(archivo, "\nRuta: ");
  fprintf(archivo, "%d", pas.ruta);
  switch(pas.ruta)
  {
  case 1:
  fprintf(archivo,"RUTA #1...TEG-->SPS\n");
  break;
 
  case 2:
  fprintf(archivo,"RUTA #2...TEG-->CHO\n");
 
}
 
  do
    {
printf("\n%cDesea agregar otro pasajero ?: ",168);
     scanf("%s", &resp);
     resp = toupper(resp);
     if(resp != 'S' && resp != 'N')
        printf("\n Error... Ingrese [S o N]");
   } while(resp != 'S' && resp != 'N');

    }while(resp=='S');
    }
system("pause");   
fclose(archivo);
}

//-------------------------------------------
void mostrar(Nodo*lista)
{
Nodo *i=lista;

if(lista==NULL){
printf ("\n\t** LISTA VACIA **\n");
}else{
while((i!=NULL)){
printf("bus[%d] --> ",i->dato);
i=i->siguiente;
}
printf("No hay mas buses encontados ");
}

printf("\n\n");
system("pause");

}
//-------------------------------------------
void agregar(Nodo *&lista, int &num)
{
Nodo * nuevo_nodo = new Nodo();
nuevo_nodo -> dato = num;

Nodo * auxi1 = lista;
Nodo * auxi2;

while((auxi1 != NULL) && ( auxi1 -> dato))
{
auxi2 = auxi1;
auxi1 = auxi1 -> siguiente;
}
if(lista == auxi1)
lista = nuevo_nodo;
  else
auxi2 -> siguiente = nuevo_nodo;

nuevo_nodo-> siguiente = auxi1;
system("cls");
printf("\n El bus[%d] se agrego correctamente \n", num);


}
//--------------------------------------------
void menu()
{
int id;
char res;
int num;
int opc, marcador;

do
{
system("cls");
printf("\n\tTerminal de buses:" );
printf("\n\t** *\n" );
printf("\n [1]... Agregar cliente al bus" );
printf("\n [2]... Mostrar todos los buses disponibles" );
printf("\n [3]... Agregar pasajeros al autobus" );
printf("\n [4]... Consultar pasajero" );//cessar
printf("\n [5]... Modificar datos del pasajero " );//jose
printf("\n [6]... Eliminar pasajero");//andres
printf("\n [7]... Salir " );
do
{
printf("\nIngrese su opcion [1-7]: ");
scanf("%d", &opc);
if(opc<1 || opc>7)
printf("\nError...Ingrese su opci%cn de [1-7]: ",162);
}while(opc<1 || opc>7);

switch(opc)
{
case 1:
system("cls");
printf ("\n\t Ingreso de Buses a la Lista Disponible");
printf ("\n\t *** * ** * * ** ****\n");
do
{
printf("\nIngrese el numero Bus en Estado Disponible: ");
scanf("%d",&num);
num=validar(num,1,5);
agregar(lista,num);
do
{
printf("\n%cDesea Agregar otro Bus Disponible[S-N]: ",168);
scanf("%s",&res);
res = toupper(res);
if (res != 'S' && res != 'N')
printf("\n Error... opci%cn incorrecta\n",162);
}while(res != 'S' && res !='N');
}while(res == 'S');
break;
case 2:
system("cls");
printf ("\n Consulta los buses disponibles en la LISTA ");
printf ("\n ****** \n");
mostrar(lista);
break;
case 3:
system("cls");
printf("\nIngrese datos del pasajero");
agregararchi();
break;
case 4:

printf("\n\t----Consultar Datos----");
printf("\n\t***********************\n");
consultar();

break;
case 5:

system("cls");

printf("\n\t----- MODIFICAR DATOS -----");
printf("\n\t*********\n");
printf("\n Ingrese el codigo de pasajero a buscar: ");
scanf("%d", &id);

if(archivo == NULL)
{
printf("\nEl archivo no existe");
}
else if(id==pas.cod)
    {
      system("cls");
      archivo = fopen("pasajero.txt", "at" );
 
      printf("\n\tDatos de pasajero.");
          printf("\n\t*****\n");
//for para agregar numero de asientos ------>pendiente
 
  printf("\nIngrese codigo del pasajero: ");
          scanf("%d", &pas.cod);
  pas.cod=validar(pas.cod,1,999);

      printf("\nIngrese Nombre del pasajero: ");
          scanf("%s", &pas.nombre);

  printf("\nIngrese Identidad del Pasajero: ");
          scanf("%d", &pas.identidad);

    printf("\nIngrese la edad del Pasajero: ");
          scanf("%d", &pas.edad);
          pas.edad=validar(pas.edad,1,99);
 
  printf("\nIngrese numero de telefono del Pasajero: ");
          scanf("%s", &pas.telefono);
 
  printf("\n\t -RUTAS DISPONIBLES-");
  printf("\n\t--------------------");
  printf("\n\t|Ruta[1]...TEG-->SPS|");
  printf("\n\t|-------------------|");
  printf("\n\t|Ruta[2]...TEG-->CHO|");
  printf("\n\t--------------------");
  printf("\nIngrese su ruta deseada: ");
  scanf("%d",&pas.ruta);
          switch(pas.ruta)
          {
          case 1 :
          printf("\nBus numero 1");
          fprintf(archivo,"\nSu numero de bus es [%d]",pas.ruta);
          break;
          case 2 :
          printf("\nBus numero 2");
          fprintf(archivo,"\nSu numero de bus es [%d]",pas.ruta);
          break;
  }
          fprintf(archivo, "\nCodigo del Pasajero: ");
          fprintf(archivo, "%2d", pas.cod);
          fprintf(archivo, "\nNombre del Pasajero: ");
          fprintf(archivo, "%2s", pas.nombre);
          fprintf(archivo, "\nIdentidad del Pasajero: ");
            fprintf(archivo, "%2d", pas.identidad);
            fprintf(archivo, "\nEdad del Pasajero: ");
  fprintf(archivo, "%2d", pas.edad);
  fprintf(archivo, "\nTelefono del Pasajero: ");
  fprintf(archivo, "%2s", pas.telefono);
  fprintf(archivo, "\nRuta: ");
  fprintf(archivo, "%d", pas.ruta);
  switch(pas.ruta)
  {
  case 1:
  fprintf(archivo,"RUTA #1...TEG-->SPS\n");
  break;
 
  case 2:
  fprintf(archivo,"RUTA #2...TEG-->CHO\n");
 
}
 
    }
printf("\n\n");
system("pause");
break;
//case 6:
// break;
case 7:
default:
printf("\n FELIZ VIAJE");
exit(0);
}
}while(opc!=7);

}
main()
{
menu();
return 0;
}
#2
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


#include<stdio.h>
#include<windows.h>

struct nodo{
double dato;
nodo *derecho;
nodo *izquierdo;
nodo *padre;
};

nodo *arbol=NULL;
//--------------------------elliminar dato----------------------------------
void eliminar(nodo*arbol,double num)
{
if(arbol ==NULL)
{
return;
}
else if(num<arbol ->dato)
{
eliminar(arbol->izquierdo,num);
}
else if(num>arbol->dato)
{
eliminar(arbol-> derecho,num);
}
else
{
eliminarnodo(arbol);
}


}
//--------------------------------------------------------------------------
nodo*minimo(nodo*arbol)
{
if(arbol ==NULL)
{
return NULL;
}
if(arbole->izquierdo)
{
return minimo(arbol->izquierdo);
}
else
{
return arbol;
}
}
//----------------------------------------------------------------
void reemplazar(nodo *arbol,nodo* nuevonodo)
{
if(arbol->padre)
{

if(arbol->dato =arbol->padre->izquierdo->dato)
{
arbol->padre->padre->izquierdo=nuevonodo;
}
else if(arbol->dato==arbol->padre->derecho->dato)
{
arbol->padre->derecho=nuevonodo;
}

}
if(nuevonodo)
{
nuevonodo->padre=arbol->padre;
}
}
//--------------------------------------------------------------------------
void destruirnodo(nodo *nodo)
{
nodo->izquierdo=NULL;
nodo->derecho=NULL;

delete nodo;
}
//---------------------------------------------------------------------------
void eliminarnodo(nodo*nodoeliminar)
{
if(nodoeliminar->izquerdo && nodoeliminar->derecho)
{
nodo*menor=minimo(nodoeliminar->derecho);
nodoeliminar->dato=menor->dato;
eliminarnodo(menor);
}
else if(nodoeliminar->izquierdo)
{
reemplazar(nodoeliminar,nodoeliminar->izquierda);
destruirnodo(nodoeliminar);
}
else if(nodoeliminar->derecho)
{
reemplazar(nodoeliminar,nodoeliminar->derecho);
destruirnodo(nodoeliminar);
}
}
//--------------------------CONSULTAR DATOS---------------------------------
bool consultar(nodo *arbol, double num){

if(arbol == NULL)
{
return false;
}
else if(arbol->dato == num)
{
return true;
}
else if(num < arbol->dato)
{
return consultar(arbol->izquierdo, num);
}
else
{
return consultar(arbol->derecho, num);
}

}

//--------------------------MOSTRAR DATOS---------------------------------
void mostrar(nodo *arbol, double cont)
{
if(arbol==NULL)
{
return;
}
else
{
mostrar(arbol->derecho, cont+1);
for(int i=0;i<cont; i++)
printf("    ");
printf(" %.2lf \n\n",arbol->dato);

mostrar(arbol->izquierdo, cont+1);

}

}
//-------------------------------------------------------------------------

nodo * crear(double num)
{
nodo * nuevonodo = new nodo();
nuevonodo->dato = num;
nuevonodo->derecho = NULL;
nuevonodo->izquierdo = NULL;

return nuevonodo;
}
//---------------------------INSERTAR DATOS--------------------------------
void insertar(nodo *&arbol, double num)
{
if(arbol == NULL)
{
nodo *nuevonodo = crear(num);
arbol = nuevonodo;
}
else
{
int raiz=arbol->dato;
if(num < raiz)
insertar(arbol->izquierdo, num);
else
{
insertar(arbol->derecho, num);
}
}
}
//------------------------------MENU-----------------------------------------------------
void menu()
{
int opc, cont=0;
double num;
char resp;

do{
system("cls");
printf("\n\t MENU ARBOLES BINARIOS");
printf("\n\t **** ******* ********");

printf("\n [1]...Agregando datos al %crbol",160);
printf("\n [2]...Mostrar datos del %crbol",160);
printf("\n [3]...Consultar datos del %crbol",160);
printf("\n [4]...Eliminar un dato del %crbol",160);
printf("\n [5]...Eliminar todos los datos del %crbol",160);
printf("\n [6]...SALIR");
do{
printf("\n Ingrese una opci%cn: ",162);
scanf("%d", &opc);
if(opc<1 || opc>6);
printf("\n ERROR...Ingrese una opci%cn v%clida[1-6]: ",162, 160);
}while(opc<1 || opc>6);

switch(opc){
case 1:
system("cls");
printf("\n\t INGRESO DATOS AL ARBOL");
printf("\n\t ******* ** ***** ** *****");

do{
printf("\n Ingrese un n%cmero al arbol: ", 163);
scanf("%lf", &num);
insertar(arbol, num);

do
{
printf("\n %cDesea ingresar otro dato al arbol?: ",168);
scanf("%s", &resp);
resp=toupper(resp);
if(resp != 'S' && resp != 'N')
printf("\n ERROR... Ingrese una opcion valida[S-N]");
}while(resp != 'S' && resp != 'N');
}while(resp=='S');

break;

case 2:
system("cls");
printf("\n\t MOSTRANDO DATOS DEL ARBOL");
printf("\n\t ********* ***** *** *****\n");
mostrar(arbol, cont);
system("pause");
break;

case 3:
system("cls");
printf("\n\t CONSULTAR DATOS DEL DATOS");
printf("\n\t ********* ***** *** *****");

do{
printf("\n Ingrese un n%cmero a buscar del arbol: ",163);
scanf("%lf", &num);

if(consultar(arbol, num) == true)
{
printf("\n EL ELEMENTO [%.2lf] HA SIDO ENCONTRADO", num);
printf("\n");
}
else
{
printf("\n EL DATO [%.2lf] NO ESTA GUARDADO EN EL ARBOL.",num);
printf("\n");
}
printf("\n");
system("pause");

do
{
printf("\n %cDesea buscar otro dato dentro del %crbol?: ",168,160);
scanf("%s", &resp);
resp=toupper(resp);
if(resp != 'S' && resp != 'N')
printf("\n ERROR... Ingrese una opcion valida[S-N]");
}while(resp != 'S' && resp != 'N');
}while(resp=='S');
break;
case 4:
system("cls");
printf("\n\t eliminar un DATO DEL arbol");
printf("\n\t ********* ***** *** *****");
eliminar(arbol,num);

default:
exit(0);
}

}while(opc != 6);



}

main()
{
menu();
return 0;
}
#3
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
 

#include<stdio.h>
#include<windows.h>

FILE *archivo;

struct pasajero
{
int codigo ,asiento, edad;
char nombre [50];
double precio ,precioTotal;
}pas;
//**************************************************************
double validar(double valor, double li, double ls)
{
while(valor < li || valor > ls)
{
   printf("\n Error...Ingrese un valor entre [%.2lf] y [%.2lf]: ", li, ls);
scanf("%lf",&valor);  
}
return valor;
}
//***************************************************************
void consultar()
{
int cod;

system("cls");

archivo = fopen("pasajero.txt","rt");

if(archivo == NULL)
printf("\nEl archivo No existe.");
else
{
printf("\n Ingrese el codigo del pasajero: ");
scanf("%d",&pas.codigo);

printf("\n codigo Edad Nombre No-asiento");

while(!feof(archivo))
{
fscanf(archivo, "%d %d %s %d",&pas.codigo,&pas.edad,&pas.nombre,&pas.asiento);

if(pas.codigo==cod)
{
printf("%d %d %s %d",pas.codigo,pas.edad,pas.nombre,pas.asiento);
break;
}
else if(feof(archivo))
printf("\n Pasajero no encontrado");
}
}
system("pause");
fclose(archivo);
}
//***************************************************************
void listar()
{
system("cls");

archivo = fopen("pasajero.txt", "rt" );

if(archivo == NULL)
    {
printf("\nEl archivo No existe.");
  }
else
    {
  printf("\nCodigo edad nombre promedio\n");

  while(!feof(archivo))
           {
 fscanf(archivo, "%d %d %s %d", &pas.codigo, &pas.edad, &pas.nombre, &pas.asiento);
   printf("%5d %4d %5s %5d\n", pas.codigo, pas.edad, pas.nombre, pas.asiento);
           }
    }
system("pause");
fclose(archivo);
}
//***************************************************************
void agregar()
{
char resp;
archivo = fopen("pasajero.txt","rt");

if(archivo ==NULL)
{
printf("\nEl archivo No existe");
}
else
{
system("cls");
archivo = fopen("pasajero.txt","at");
do
{
printf("\n\tDatos del pasajero");
printf("\n\t----- --- --------");
printf("\nIngrese el codigo del pasajero :");
scanf("%d",&pas.codigo);
pas.codigo=validar(pas.codigo,1,10);

printf("\nIngrese la edad del pasajero:");
scanf("%d",&pas.edad);
pas.edad=validar(pas.edad,1,100);

printf("\nIngrese el nombre del pasajero: ");
scanf("%s",&pas.nombre);

printf("\nIngrese el numero del asiento:");
scanf("%d",&pas.asiento);

fprintf(archivo, "\n %d", pas.codigo);
         fprintf(archivo, "\n %d", pas.edad);
fprintf(archivo, "\n %s", pas.nombre);
fprintf(archivo, "\n %d", pas.asiento);

do
{
printf("\n Desea agregar otro envio? \n: ");
   scanf("%s", &resp);
   resp = toupper(resp);
   if(resp != 'S' && resp != 'N')
    printf("\n Error... Ingrese [S o N]");
}while(resp != 'S' && resp != 'N');

}while(resp=='S');
}
printf("\n");
system("pause");    
fclose(archivo);
}
//***************************************************************
void crear()
{
archivo = fopen("pasajero.txt","rt");

if(archivo !=NULL)
{
printf("\n El archivo ya existe");
}
else
{
archivo = fopen("pasajero.txt","wt");
printf("\n el archivo a sido creado con exito");
}
system("pause");
fclose(archivo);
}
//***************************************************************
void menu()
{
int opc;
do
{
system("cls");
printf("\nMenu :");
printf("\n[1]...crear");
printf("\n[2]... Agregar");
printf("\n[3]... listar datos ");
printf("\n[4]... consultar pasajero");
printf("\n[5]... salir");
do
{
printf("\nIngrese su opcion [1-5]: ");
scanf("%d",&opc);
if(opc<1 || opc>5)
printf("\nError ingrese [1-5]: ");
}while(opc<1 || opc>7);

switch(opc)
{
case 1:
crear();
break;
case 2:
agregar();
break;
case 3:
listar();
break;
case 4:
consultar();
break;
default:
printf("gracias por usar nuestro sistema");
exit(0);
}
}while(opc != 5);
}
//*********************************************************
main ()
{
menu();

return 0 ;
}