hola si me pueden ayudar con este problema, recien empiezo a programar en c++ y me dejaron un problema con listas enlazadas, en el programa pide ingresar el nombre y hacer una operacion de retirar dinero como en un cajero, y que pueda ser mas de una persona que haga esta operacion, y que el programa parara cuando ya no haya dinero digamos en el cajero...(la cantidd de dinero disponible son 40000 pesos)..esto es lo que llevo, solo me deja ingresar nombre, pero no se como hacer la operacion de resta, aparte tampoco se como hacer para que al finalizar la operacion me vuelva a pedir si quiero ingresar otro nombre
gracias!!!
#include<iostream.h>
#include<conio.h>
#include<stdio.h>
#include<string.h>
#include<stdlib.h>
struct _contacto {
char nombre[33];
int retirar;
struct _contacto *siguiente;
};
struct _contacto *primero, *ultimo;
void agregar_contacto()
{
struct _contacto *nuevo;
nuevo = (struct _contacto*)malloc(sizeof(struct _contacto));
if(nuevo==NULL){
cout<<"\nNo hay espacio suficiente.";
return;
}
cout<<"\n\ningrese su nombre\n";
cout<<"------------------";
cout<<"\nNombre: ";
fgets(nuevo->nombre,32,stdin);
nuevo->siguiente = NULL;
if(primero==NULL){
primero = nuevo;
ultimo = nuevo;
} else {
ultimo->siguiente = nuevo;
ultimo = nuevo;
}
}
void retirar_1()
{
int retirar;
struct _contacto *nuevo;
nuevo = (struct _contacto*)malloc(sizeof(struct _contacto));
if(nuevo==NULL){
cout<<"\nNo hay espacio suficiente.";
return;
}
cout<<"ingrese cantidad a retirar:";
cin>>retirar;
nuevo->retirar;
cout<<endl<<"lo retirado fue:"<<nuevo->retirar;
nuevo->retirar;
nuevo->siguiente = NULL;
if(primero==NULL){
primero = nuevo;
ultimo = nuevo;
} else {
ultimo->siguiente = nuevo;
ultimo = nuevo;
}
}
void mostrar(){
ultimo=primero;
while(ultimo!=NULL){
cout<<endl<<"nombre:"<<primero->nombre;
cout<<endl<<"retiro:"<<primero->retirar;
ultimo=ultimo->siguiente;
}
}
void mostrar_menu()
{
cout<<"\n\n\n Bienvenido\n";
cout<<"======\n";
cout<<"1. Agregar nombre\n";
cout<<"2. retirar dinero\n";
cout<<"3. mostrar datos\n";
cout<<"4. Salir\n";
}
int main()
{
int opcion = 0;
char bufferOpcion[5];
while(opcion!=4){
mostrar_menu();
fgets(bufferOpcion,sizeof(bufferOpcion),stdin);
sscanf(bufferOpcion, "%d", &opcion);
switch(opcion){
case 1:
agregar_contacto();
break;
case 2:
retirar_1();
break;
case 3:
mostrar();
break;
}
}
return 0;
getchar();
}