Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <stdio.h>
- #include <stdlib.h>
- #include <string.h>
- struct nodo {
- char codice[6];
- struct nodo * next;
- }*front, *rear, *temp, *front1;
- typedef struct elemento {
- char codice_cliente[6];
- char codice_articolo[11];
- int pezzi_venduti;
- int costo;
- }elemento;
- typedef struct lista {
- elemento info;
- struct lista * next;
- }lista;
- int menu()
- {
- int scelta;
- puts("1.Stampa la lista degli acquisti");
- puts("2.Inserimento di un nuovo cliente in coda");
- puts("3.Estrazione elemento dalla coda ed inserimento in lista acquisti(dati forniti da tastiera)");
- puts("4.Calcolo totale degli acquisti");
- puts("5.Calcolo dell'acquisto di importo maggiore");
- puts("6.Salva la lista acquisti in un file di testo");
- printf("Selezionare un'alternativa: ");
- scanf("%d", &scelta);
- printf("\n");
- return scelta;
- }//fine menรน
- lista * lista_vuota() {
- return NULL;
- }
- void stampa_lista(lista*l)
- {
- lista*temp = l;
- if (temp == NULL)
- printf("\nLista vuota\n\n");
- else
- {
- while (temp != NULL)
- {
- printf("%s", temp->info.codice_cliente);
- printf("%s", temp->info.codice_articolo);
- printf("%d", temp->info.costo);
- printf("%d", temp->info.pezzi_venduti);
- if (temp->next != NULL)
- {
- temp = temp->next;
- }//fine if
- }//fine while
- }//fine else
- }//fine stampa_lista
- /*Inserimento di un nuovo cliente in coda*/
- void inserimento_coda(char a[6])
- {
- if (rear == NULL)
- {
- rear = (struct nodo*)malloc(1 * sizeof(struct nodo));
- rear->next = NULL;
- strcpy(rear->codice, a);
- front = rear;
- }//end of if
- else
- {
- temp = (struct nodo*)malloc(1 * sizeof(struct nodo));
- rear->next = temp;
- strcpy(temp->codice, a);
- temp->next = NULL;
- rear = temp;
- }//end of if
- }//end of inserimento_coda
- void trasferimento(lista * l)
- {
- lista * temp = l;
- if (rear == NULL)
- printf("\nImpossibile effettuare il trasferimento, coda vuota\n\n");
- else
- if (temp == NULL)
- {
- temp = malloc(sizeof(lista));
- temp->next = NULL;
- strcpy(temp->info.codice_cliente, rear->codice);
- printf("Inserire codice articolo: \n");
- scanf("%s", temp->info.codice_articolo);
- printf("Quanti pezzi sono stati venduti?\n");
- scanf("%d", temp->info.pezzi_venduti);
- printf("Costo totale?\n");
- scanf("%d", temp->info.costo);
- }//fine if
- else
- {
- while (temp->next != NULL)
- {
- temp = temp->next;
- }//fine while
- temp = temp->next;
- temp = malloc(sizeof(lista));
- temp->next = NULL;
- strcpy(temp->info.codice_cliente, rear->codice);
- printf("Inserire codice articolo: \n");
- scanf("%s", temp->info.codice_articolo);
- printf("Quanti pezzi sono stati venduti?\n");
- scanf("%d", temp->info.pezzi_venduti);
- printf("Costo totale?");
- scanf("%d", temp->info.costo);
- }//fine else
- }//fine trasferimento
- /*Calcolo totale acquisti*/
- int spesa(lista*l)
- {
- lista*temp = l;
- int tot = 0;
- if (temp == NULL)
- {
- printf("\nNun spinnierru na lira\n\n");
- }//fine if
- else
- {
- tot = tot + temp->info.costo;
- while (temp->next != NULL)
- {
- temp = temp->next;
- tot = tot + temp->info.costo;
- }//fine while
- }//fine else
- return tot;
- }//fine spesa
- /*Calcolo acquisto di importo maggiore*/
- int maggiore(lista * l)
- {
- int max = 0;
- lista * temp = l;
- if (temp == NULL)
- printf("\nNun spinnierru na lira\n\n");
- else
- {
- max = temp->info.costo;
- while (temp->next != NULL)
- {
- temp = temp->next;
- if (temp->info.costo >= max)
- max = temp->info.costo;
- }//fine while
- }//fine else
- return max;
- }//fine maggiore
- int main()
- {
- int scelta;
- lista * l = lista_vuota();
- char a[6];
- int totale_acquisti;
- int max;
- while (1)
- {
- scelta = menu();
- switch (scelta)
- {
- case 1:
- stampa_lista(l);
- break;
- case 2:
- printf("Digitare il nome: \n");
- scanf("%s", &a);
- inserimento_coda(a);
- break;
- case 3:
- trasferimento(l);
- break;
- case 4:
- totale_acquisti = spesa(l);
- break;
- case 5:
- max = maggiore(l);
- }//fine switch
- }//fine while
- }//fine main
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement