Oppure

Loading
07/06/13 13:54
magna.tutto
Salve a tutti
Ho da finire un progetto e mi manca quest'ultima parte...
In pratica ho una ferramenta e devo gestire il magazzino
Ho tre punti da svolgere:
1. acquistare un prodotto (fatto)
2. visualizzare i prodotti in esaurimento (fatto)
3. visaulizzare in ordine alfabetico i prodotti in base al loro settore di utilizzo (da fare)

Ho questa struct così dichiarata:
typedef struct
{
int codice;
char nome[20];
char utilizzo[20];
int quantita;
float costo;
} magazzino;

 magazzino scorta[20]={
 {1, "martello", "Edilizia", 15, 2.99},
 {2, "tubo", "Idraulica", 10, 1.50},
 {3, "avvolgicavo", "Elettrico", 2, 4.99},
 {4, "chiodi", "Utensileria", 50, 0.99},
 {5, "colori", "Pitturazione", 45, 1.00},
 {6, "vernice", "Pitturazione", 4, 10.49},
 {7, "pennello", "Pitturazione", 2, 1.99},
 {8, "sifone", "Idraulica", 10, 4.90},
 {9, "cacciavite", "Edilizia", 20, 2.50},
 {10, "lampada", "Elettrico", 5, 10.00},
 {11, "scalpello", "Utensileria", 3, 2.50},
 {12, "lavabo", "Idraulica", 15, 15.99},
 {13, "presa", "Elettrico", 1, 0.50},
 {14, "tenaglia", "Utensileria", 5, 2.50},
 {15, "spatola", "Edilizia", 6, 2.99},
 {16, "spine", "Elettrico", 25, 0.50},
 {17, "lavabile", "Pitturazione", 1, 10.50},
 {18, "calce", "Edilizia", 8, 2.99},
 {19, "guarnizione", "Idraulica", 4, 9.50},
 {20, "fontana", "Idraulica", 10, 9.90}};


In pratica devo visualizzare in ordine alfabetico i prodotti divisi per "utilizzo" (Edilizia, Elettrico,....)
Devo usare l'ordinamento per inserimento ma non so da dove iniziare 8-|
chi mi aiuta?:k:
Ultima modifica effettuata da magna.tutto 07/06/13 13:55
aaa
07/06/13 15:39
pierotofy
Implementa l'insertion sort. programmingsimplified.com/c/source-code/…

Poi per il confronto tra stringhe usa strcmp. cplusplus.com/reference/cstring/strcmp/
Il mio blog: piero.dev
10/06/13 9:46
magna.tutto
quindi dovrebbe essere una cosa del genere...

{
    int i,j,b;
    magazzino prodTemp;
    for(i = 0; i < 20; i++)
	{
		for(j = 0; j < 20; j++)
		{
			b = strcmp(scorta[i].utilizzo, scorta[j].utilizzo);

			if( b < 0 )
			{
				prodTemp = scorta[j];
				scorta[j] = scorta[i];
				scorta[i] = prodTemp;
			}
			else if ( b == 0 )
			{
				if(strcmp(scorta[i].nome, scorta[j].nome) < 0)
				{
					prodTemp = scorta[j];
					scorta[j] = scorta[i];
					scorta[i] = prodTemp;
				}
			}
		}
	}

	printf("\n");
	for(i = 0; i < 20; i++)
	{
		printf("Nome: %s\nUtilizzo: %s\n\n", scorta[i].nome, scorta[i].utilizzo);
	}
}

Ultima modifica effettuata da magna.tutto 10/06/13 9:46
aaa