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;
}