ejemplo de solución
Requisitos de finalización
// Ing. Germán Andrés Xander 2022 //
#include<iostream>
using namespace std;
struct datos{
int numero;
char nombre[10];
float tiempo;
struct datos *pprox;
};
void agregar(datos *&puntero);
void listar(datos *puntero);
void buscar(datos *puntero);
int main() {
char opcion;
datos *lista=NULL;
do{
cout<<"\t Menu"<<endl
<<"\t 1 Carga de un tiempo de vuelta"<<endl
<<"\t 2 Listar todos los tiempos por pantalla"<<endl
<<"\t 3 Buscar tiempo por nro. de auto."<<endl
<<"\t s salir"<<endl;
cin>>opcion;
switch(opcion){
case '1':
agregar(lista);
break;
case '2':
listar(lista);
break;
case '3':
buscar(lista);
break;
}
}while(opcion!='s');
return 0;
}
void agregar(datos *&puntero){
datos *puntero2=puntero, *puntero3, *nuevo=new datos;
cout<<"ingrese numero"<<endl;
cin>>nuevo->numero;
cout<<"ingrese nombre"<<endl;
cin>>nuevo->nombre;
cout<<"ingrese tiempo"<<endl;
cin>>nuevo->tiempo;
if(!puntero || nuevo->tiempo<puntero2->tiempo){
puntero=nuevo;
}else{
while(puntero2!=NULL && puntero2->tiempo<=nuevo->tiempo){
puntero3=puntero2;
puntero2=puntero2->pprox;
}
puntero3->pprox=nuevo;
}
cout<<endl;
nuevo->pprox=puntero2;
}
void listar(datos *puntero){
while(puntero!=0){
cout<<"numero: "<<puntero->numero
<<"\t nombre: "<<puntero->nombre
<<"\t tiempo en [s]: "<<puntero->tiempo<<endl;
puntero=puntero->pprox;
}
cout<<endl<<endl;
}
void buscar(datos *puntero){
int nro;
cout<<"ingrese numero de auto a buscar "<<endl;
cin>>nro;
while(puntero!=0){
if(puntero->numero==nro){
cout<<"numero: "<<puntero->numero
<<"\t nombre: "<<puntero->nombre
<<"\t tiempo en [s]: "<<puntero->tiempo<<endl<<endl<<endl;
return;
}
puntero=puntero->pprox;
}
cout<<"no se encontro un auto con ese numero"<<endl<<endl;
}Última modificación: viernes, 8 de mayo de 2026, 08:22