Sinceramente la cosa non la vedo cosi complessa perchè: devisemlicemente fare dei confronti:
la logica e questa:
opzione 1,opzione 2 opzione 3 ; dati immessi dall'utente a scelta
all'intero del ciclo di lettura file basta che metti:
nel ciclo di lettura file
flag settaggio stampa = 0
switch (zona)
case 1:
switch (prezzo)
stampa ==1 si esci no stampa il record
case 1 :
switch (superfice)
case 1: record da stampare = numero record letto
defoult : ritorna allo switch precedente
fine ciclo lettura file
ricordati di mettere dopo ogni stampa il flag di settaggio = 1 altrimenti ti stampa tutti i record!
usa questa struttura per tutti i casi e il gioco e fatto.
in alternativa puoi usare
if (prezzo==opzione1 && zona == opzione2 && superfice==opzione 3) { stampa record vai al prossimo record}
if (prezzo==opzione1 && zona == opzione2 && opzione 3 is null) { stampa record ai al prossimo record}
if (prezzo==opzione1 && opzione2 is null && superfice =opzione3) { stampa record ai al prossimo record}
if (prezzo==opzione1 && opzione2 is null && opzione3 is null) { stampa record ai al prossimo record}
if (opzione1 is null && zona == opzione2 && superfice == opzione 3) { stampa record ai al prossimo record}
if (opzione1 is null && zona == opzione2 && opzione3 is null) { stampa record ai al prossimo record}
if (opzione1 is null && opzione2 is null && superfice == opzione3 ) { stampa record ai al prossimo record}
ti consiglio il secondo metodo più semplice e non da adito ad errori
se le scelte sono maggiori di 3 allora ti consiglio un metodo di selezione progressiva che consiste in questo:
ti salvi tutti i record in un file di comodo che abbiano soddisfatto la prima opzione1
ti salvi tutti i record in un file di comodo che abbiano soddisfatto la prima opzione2 utilizzando il file creato precedentemente
ripeti il passaggio per ogni opzione utilizzando sempre il file precedente
l'ultimo file conterrà i dati da stampare.