Salve a tutti, sono nuovo del forum ma ho letto diversi articoli di html.it
ho un problema: dovrei scrivere un programma che, partendo dal file "materiali.dat" (supponendo che sia gia' scritto e supponendo che contenga diversi materiali) distinti da un colore, un costo, se sono materiali per pavimenti o per pareti, lunghezza e altezza (dimensioni insomma), mi visualizzi il materiale per pavimento piu' costoso, mi visualizzi il materiale da parete piu' costoso, mi scriva su altri due file (pavimenti.dat e parete.dat) l'elenco dei rispettivi materiali (in pavimenti.dat mi scriva tutti i materiali da pavimenti, mentre in parete.dat mi scriva tutti i materiali da parete).
Ho scritto qualcosina, il main sopratutto ma ho diversi problemi con le funzioni che devo utilizzare nel programma. vi posto quello che ho scritto:
codice:
#include <stdio.h>
typedef enum {pavimento, parete} tipoMateriale;
typedef struct {char colore[20];
float costo;
float lunghezza, altezza;
tipoMateriale tipo;
}caratteristicheMat;
FILE *pf;
void visualizza_pavimento();
void visualizza_parete();
void scrivi_pavimento();
void scrivi_parete();
void main ()
{
caratteristicheMat materiale;
caratteristicheMat nuovoMat;
int scelta;
do { printf("digita 1 per visualizzare il pavimento piu' costoso,\ndigita 2 per visualizzare il materiale da parte piu' costoso,\ndigita 3 per ordinare tutti i pavimenti nel file pavimenti.dat,\ndigita 4 per ordinare tutti i materiali da parete nel file parete.dat,\ndigita 0 per terminare il programma:\n");
scanf("%d", &scelta);
switch (scelta)
{case 1: visualizza_pavimento();
break;
case 2: visualizza_parete();
break;
case 3: scrivi_pavimento();
break;
case 4: scrivi_parete();
break;
case 0: printf("arrivederci");
break;
}
while (scelta);
}
void visualizza_pavimento()
{ caratteristicheMat temp1;
caratteristicheMat temp2;
if(pf=fopen("materiali.dat", "r=") !=NULL)
{ while (fread(&temp1, sizeof(caratteristicheMat), 1, pf!=0 && fread(&temp2, sizeof(caratteristicheMat, 1, pf!=0)
{if(temp.tipo == pavimento && temp1.costo <= temp2.costo)
{
grazie in anticipo, spero possiate aiutarmi o almeno darmi qualche dritta. ovviamente il programma deve essere scritto in linguaggio C