Ciao a tutti. sto imparando ad usare le liste ma ho alcuni problemi...
uno di questi è ad esempio la stampa!

l'esercizio dice di trattare una "catena di montaggio"... fatto sta che devo immagazinare dei dati in una lista e poi stamparla. vi allego i due moduli che ho scritto. sapete dirmi anche solo dove sbaglio? grazie!


main.c
codice:
#include <stdio.h>
#include <stdlib.h>
#include "coda.h"

int main()
{
    int key = -1;
    
    
    while (key != 0)
    {
        printf("\n1) Avvio Job.");
        printf("\n2) Termino Job."); //non sviluppato
        printf("\n3) Stampa lista Job.");
                printf("\n\t... o '0' per terminare. ");
        printf("\n\t Inserisci comando: ");
        fscanf(stdin, "%d", &key);

        switch (key)
        {
        case 1: new_job();
            break;
        case 2: //termino job
            break;
        case 3: print_job();
        case 0:
            break;
        default:
            printf("\n  Comando Errato. Riprova!\n");

        }
    }
    return (EXIT_SUCCESS);
}
coda.h
codice:
#include <stdio.h>
#include <stdlib.h>
#include "Item.h"

typedef struct nodo* Link;

typedef struct nodo{
    Job job;
    Link next;
} nodo;

void new_job();

void print_job();
coda.c
codice:
#include <stdio.h>
#include <stdlib.h>
#include "coda.h"

struct queue
{
    Link head;
    Link tail;
} record;

void new_job()
{
    Link nuovo_job;
    nuovo_job = (nodo*) malloc(sizeof (Link));
    get_item(&(nuovo_job->job));
    if (record.head == NULL)
    {
        record.head = nuovo_job;
    }
    else
        while (record.tail != NULL)
            record.tail = (record.tail)->next;
    printf("\n\tjob in processo!");
    return;
}

void print_job()
{
    Link scroll;
    scroll = record.head;

    do
    {
        print_item(scroll->job);
        scroll=scroll->next;
    }
    while(scroll!=NULL);*/
    
    return;
}

Item.h
codice:
#include <stdio.h>
#include <stdlib.h>

typedef struct Job{
    char lavoro[30]; 
    int priority;
}Job;

void get_item(Job* nodo);
void print_item(Job nodo);

Item.c
codice:
#include <stdio.h>
#include <stdlib.h>
#include "Item.h"

void get_item(Job* nodo)
{
    printf("\nInserisci nome job: ");
    fscanf(stdin, "%s", nodo->lavoro);

    printf("\nInserisci la sua priorita': ");
    fscanf(stdin, "%d", &(nodo->priority));

    return;
}

void print_item(Job nodo)
{
    printf("%s %d\n", nodo.lavoro, nodo.priority);

    return;
}