|
|
|
![]() |
|
Strumenti |
![]() |
#1 |
Junior Member
Iscritto dal: Oct 2007
Messaggi: 3
|
[C++] problema ricerca su file
innanzitutto ciao ragazzi....vi ringrazio dell'attenzione...
ho da sottoporvi un mio programma che deve simulare molto semplicemente l'archiviazione di alunni e relativi voti scolastici insomma si ritorna a scuola ihih allora vi mostro quello che ho fatto.. #include <stdio.h> #include <stdlib.h> #include <conio.h> #include <string.h> #include <iostream> char name[20]; int risposta; int confronto; struct Dati_alunno {char nome[20]; char cognome[20]; int sistemi; int informatica; } char scelta; FILE *f; int main(int argc, char *argv[]) { struct Dati_alunno alunno do { printf("MENU"); printf("1.inserisci nuovo alunno"); printf("2.visualizza dati alunni"); printf("3.cerca alunno e modifica dati"); printf("4.esci"); scanf("%d",scelta); switch (scelta) { case '1' ![]() gets(alunno.nome); printf("inserisci cognome \n"); gets(alunno.cognome); printf("inserisci voto di sistemi \n"); scanf("%d",&alunno.sistemi); printf("inserisci voto d'informatica \n"); scanf("%d",&alunno.informatica); system("cls"); fwrite(&alunno,sizeof alunno,1,f); fflush(f); break; case '2':rewind(f); system("cls"); fflush(f); do {if (feof(f)) printf("registro vuoto"); else {printf("nome: %s \n",alunno.nome); printf("cognome: %s \n",alunno.cognome); printf("voto sistemi: %d \n",alunno.sistemi); printf("voto informatica: %d \n",alunno.informatica); printf("////////////////////////// \n"); } case '3':remove(*p); break; /* printf("dammi nominativo: "); scanf("%s", nominativoCerca); for (int b=0; b<indice01; b++) { flag=0; if (strcmp(nominativoCerca, Alunno[b].nominativo) == 0){ printf("BRAVO, nominativo trovato !!!\n"); printf("nominativo: %s \n", Alunno[b].nominativo); printf("votoInformatica: %d \n", Alunno[b].votoInformatica); printf("votoSistemi: %d \n", Alunno[b].votoSistemi); printf("*********** \n\n"); flag=1; break; } } if (flag==0) printf("SBAGLIATO, nominativo inesistente !!!\n"); break;*/ case '4':return 0; default:system("cls"); printf("SCELTA ERRATA \n"); }while (scelta='4'); fclose(f); } bhe in pratica il mio grande casino risulta nella ricerca dove io inpratica vorrei dare in input un nome da cercare visualizzare e dare la possibilita di modificare i campi..non so come fare huffi...mi potreste aiutare?o cmq darmi dei consigli... se trovate anche quelche errore ditemelo che ho tutto da imparare grazie della cortese attenzione davvero |
![]() |
![]() |
![]() |
#2 |
Senior Member
Iscritto dal: Aug 2007
Messaggi: 1270
|
Se vuoi risolvere il problema senza usare liste o allocazione dinamica, puoi fare cosi:
scorri il file sorgente finche non trovi il nome cercato, e man mano che lo leggi salvi i dati degli studenti su un altro file. Quando trovi lo studente da modificare, stampi le sue informazioni sullo schermo e chiedi all'utente cosa vuole modificare. Una volta fatte le modifiche salvi i dati appena modificati sul nuovo file, e poi tutti quelli degli studenti che seguono fino alla fine. Quando hai finito sovrascrivi il vecchio file con il nuovo, cosi ti trovi con l'archivio modificato. Ultima modifica di arara : 25-10-2007 alle 15:45. |
![]() |
![]() |
![]() |
#3 |
Junior Member
Iscritto dal: Oct 2007
Messaggi: 3
|
ci avevo pensato il problema sta proprio nel ricreare e poi di andare a sovrascrivere il file...la ricerca poi mi da un macello di errori se uso la strcmp... se usavo le classi o la allocazione dinamica lo so anch'io che è facile ma l'esercizio chiede di non usarle huffi
![]() e diciamo anche che devo consegnarlo per sabato questo..ho chiesto aiuto proprio perchè sono nella M ![]() |
![]() |
![]() |
![]() |
#4 |
Member
Iscritto dal: Oct 2007
Città: Monopoli(BA)
Messaggi: 218
|
Non sò se la mia idea è applicabile in C...ankio uso questo linguaggio ma solo da quest'anno e il mio prof dice ke è simile al linguaggio Java....Io avrei optato x la creazione di un vettore RECORD dove registrare tutti i dati ke vuoi!!!
Ma nn sò se in C si possono creare Record
__________________
NOSTRAVIS PRO CLASSEM - GrupAer - |
![]() |
![]() |
![]() |
#5 |
Senior Member
Iscritto dal: Mar 2006
Città: Bergamo
Messaggi: 2499
|
andrebbe crocefisso in sala mensa per quello che ha detto.
__________________
![]() |
![]() |
![]() |
![]() |
#6 |
Senior Member
Iscritto dal: Jul 2007
Messaggi: 499
|
bè Java ha una sintassi c-like
![]()
__________________
![]() ![]() |
![]() |
![]() |
![]() |
#7 | |
Senior Member
Iscritto dal: Mar 2007
Messaggi: 1792
|
Quote:
![]() |
|
![]() |
![]() |
![]() |
#8 |
Junior Member
Iscritto dal: Oct 2007
Messaggi: 3
|
aiuto :|
|
![]() |
![]() |
![]() |
Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 06:57.