PDA

Ver la Versión Completa : Ayuda con esto por favor



gatoox
06/07/2009, 20:20
Necesito hacer un programa con el sgte enunciado
Descripción:
UN taller mecánico necesita un sistema que permita organizar los trabajos recibidos. La forma de atención es de la siguiente manera:

Cada vez que llega un auto al taller se ingresa en una cola con los siguientes datos: Nº patente, marca, modelo, año, nombre del dueño y teléfono del mismo. El mecánico revisa el auto y agrega a los datos la falla mecánica y el tiempo en horas en que demorará la restauración de la falla.

Los autos cuya falla demorará en restaurarse más de 8 hrs. pasarán a una cola de atención según el orden de llegada, y los que demorarán menos de 8 hrs. pasarán a una pila donde comenzará su restauración inmediatamente.

El taller mecánico le pide:


Diseñar el sistema de atención tomando en cuenta que los autos de la cola no serán atendidos hasta que la pila esté vacía.


He intentado hacerlo pero debo aceptar que me la esta ganando, quisiera ver si alguien de aqui del portal me ayuda con el programa, si es posible que lo haga para yo asi deglosar y aprender el metodo.
Gracias

gatoox
06/07/2009, 22:48
hasta el momento llevo esto

#include <string.h>
#include <stdio.h>
#include <stdlib.h>
#include <conio2.h>
#include <ctype.h>

struct cola
{
char patente;
char marca ;
char modelo;
int ano;
char n_dueno;
int telefono;
char falla;
int horas;
struct cola *sgte;
};


struct cola *primero,*nuevo,*ultimo,*indice;

struct cola_aux
{
int autos;
struct cola_aux *sgte2;
};

struct cola_aux *primero_2,*nuevo_2,*ultimo_2,*indice_2;




void asigna_memoria()
{
nuevo=(struct cola *) malloc (sizeof ( struct cola));
if (nuevo == NULL)
{
printf("\n ESPACIO INSUFICIENTE EN MEMORIA");
return;
}
else
{
if ((primero == NULL) || (ultimo == NULL))
{
primero = nuevo;
ultimo = nuevo;
ultimo->sgte = NULL;
}
else
{
ultimo->sgte = nuevo;
ultimo = nuevo;
ultimo->sgte = NULL;
}
}
}


void asigna_memoria_2()
{
nuevo_2=(struct cola_aux *) malloc (sizeof ( struct cola_aux));
if (nuevo_2 == NULL)
{
printf("\n ESPACIO INSUFICIENTE EN MEMORIA");
return;
}
else
{
if ((primero_2 == NULL) || (ultimo_2 == NULL))
{
primero_2 = nuevo_2;
ultimo_2 = nuevo_2;
ultimo_2->sgte2 = NULL;
}
else
{
ultimo_2->sgte2 = nuevo_2;
ultimo_2 = nuevo_2;
ultimo_2->sgte2 = NULL;
}
}
}


void intro_ficha_cola ()
{
asigna_memoria();
fflush(stdin);
printf ("\n\nINGRESE NUMERO PATENTE: \n");
gets(&ultimo->patente);
fflush(stdin);
printf ("\nINGRESE MARCA AUTOMOVIL: \n");
gets(&ultimo->marca);
fflush(stdin);
printf ("\n\nINGRESE MODELO AUTOMOVIL: \n");
gets(&ultimo->modelo) ;
fflush(stdin);
printf("\n\nINGRESE AÑO DE AUTOMOVIL: \n") ;
scanf("%d",&ultimo->ano);
fflush(stdin);
printf("\n\nINGRESE NOMBRE DEL DUEÑO DE AUTOMOVIL: \n") ;
gets(&ultimo->n_dueno) ;
fflush(stdin);
printf("\n\nINGRESE TELEFONO CONTACTO: \n") ;
scanf("%d",&ultimo->telefono) ;
fflush(stdin);
printf("\n\n\nDATOS TECNICOS");
printf("\n\nINGRESE FALLA MECANICA: \n");
gets(&ultimo->falla);
fflush(stdin);
printf("\n\nTIEMPO REPARACION: \n");
scanf("%d",&ultimo->horas);
}


int main ()
{
primero = ultimo =NULL;
{
clrscr();
printf("\n MENU DEL PROGRAMA COLA");
printf("\n ------------------------");
printf("\n 1. AÑADIR DATOS DE LA COLA");
printf("\n S. SALIR");
printf("\n\n ingrese opcion: ");

switch(toupper(getche()))
{
case '1' : intro_ficha_cola();
break;
case 'S' : exit(0);
}
}
}

gatoox
06/07/2009, 23:24
aqui es donde me complico en la parte de enviar los mayores a 8 horas a una cola y los menores a una pila, igual si es posible que me lo revisen por si me he equivocado en algo

BlacK
07/07/2009, 23:57
Este tema ya lo hiciste en Consultas y dudas de programacion
http://www.portalnet.cl/comunidad/showthread.php?t=237226


Este foro es para manuales y esas cosas.


Se cierra. Ahi en el otro respondi.