Problema con programma che legge file

di il
44 risposte

Problema con programma che legge file

Ciao a tutti!
Ho un problema con un esercizio su un programma in c++, ho fatto qualche ricerca su internet e anche su questo forum, ma non ho trovato nulla che potesse aiutarmi, quindi scrivo qui perché sono davvero disperata
Una delle esercitazioni precedenti era questa:
Scrivere un programma C++ che permetta la gestione informatizzata di un libretto universitario. In particolare, un utente:

deve poter inserire gli esami sostenuti riportanti nome dell'insegnamento, voto e data;
deve potere visualizzare il voto minimo, il voto massimo e la votazione media ottenuti;
deve potere visualizzare gli esami in cui è stato riportato il voto minimo e quello massimo.
Quella con cui ho problemi è una delle successive, in cui ci viene chiesto di riscrivere lo stesso programma, però, invece di far inserire i dati all'utente, il programma deve leggerli da un file di testo.
Su internet ho trovato questo:
	ifstream OpenFile("file.txt");     
  char ch;
  while(!OpenFile.eof())               
  {
    OpenFile.get(ch);                   
    cout << ch;
  }
  OpenFile.close();
il programma legge il file, poi però me lo dà semplicemente in output e non so come "lavorarlo", ecco.
Vorrei mettere almeno un esempio di come l'ho fatto, ma non sono riuscita nemmeno a iniziarlo, guardo la consegna e mi chiedo "da che parte incomincio?"
Ripeto, la traccia in sé non mi dà problemi, soltanto che non so come fare in modo che il programma apporti delle modifiche al file, che lo interpreti, che riesca a dividere il voto dalla materia e dalla data e in seguito associarli... spero di essermi spiegata
Qualcuno sa dirmi come procedere? Non chiedo che qualcuno mi scriva il programma, solo qualche informazione per farlo da sola (poi se volete scriverlo per me sono contenta comunque )

44 Risposte

  • Re: Problema con programma che legge file

    Qui nessuno scrive gli esercizi, perché è vietato e perché non ha senso.

    Tanto per cominciare, devi stabilire quale sarà la struttura dati (o classe, se le usate visto che lavorate con C++) che servirà per memorizzare i dati del libretto. Non l'hai ancora fatto, ma è il primo passo.
  • Re: Problema con programma che legge file

    oregon ha scritto:


    Qui nessuno scrive gli esercizi, perché è vietato e perché non ha senso.

    Tanto per cominciare, devi stabilire quale sarà la struttura dati (o classe, se le usate visto che lavorate con C++) che servirà per memorizzare i dati del libretto. Non l'hai ancora fatto, ma è il primo passo.
    Non volevo vietare il regolamento, è che non avrei saputo come fare la domanda senza far vedere la traccia.. il fatto è che ho sempre fatto esercizi mooolto più semplici e quando ho visto questa traccia sono andata in crisi comunque ora ci provo anche se ho la sensazione che il programma lo finisco domani
  • Re: Problema con programma che legge file

    Non volevo vietare il regolamento
    Intendevi "violare" ...

    Ma non è vietato mostrare la traccia, è vietato chiedere il codice pronto.

    I consigli possono essere dati e sicuramente cominciare a strutturare i dati su cui operare è la prima cosa che devi fare.
  • Re: Problema con programma che legge file

    Se specifichi qual è il formato del file di testo è più semplice seguire la discussione. Diversamente sarà un po' tutto "campato in aria". Immagino che gli esami saranno uno per riga, e che ogni riga conterrà in qualche modo almeno tre campi (nome insegnamento, voto e data) separati in qualche maniera predefinita. Se però il file contiene più libretti universitari, allora la questione cambia e il formato deve essere per forza di cose diverso. Non si può tirare a indovinare... Ci dai un file di esempio o ci spieghi?
  • Re: Problema con programma che legge file

    AldoBaldo ha scritto:


    Se specifichi qual è il formato del file di testo è più semplice seguire la discussione. Diversamente sarà un po' tutto "campato in aria". Immagino che gli esami saranno uno per riga, e che ogni riga conterrà in qualche modo almeno tre campi (nome insegnamento, voto e data) separati in qualche maniera predefinita. Se però il file contiene più libretti universitari, allora la questione cambia e il formato deve essere per forza di cose diverso. Non si può tirare a indovinare... Ci dai un file di esempio o ci spieghi?
    Non ne ho idea, ho messo la traccia perché è tutto quello che il professore ci ha dato: non c'è nessun file di esempio e nessun suggerimento su come scriverlo... so che il file dev'essere .txt e in uno dei programmi che ci ha portato come esempio a lezione ci ha fatto vedere anche un file di testo come esempio che era più o meno questo:
    Milano 14
    Napoli 10
    Roma 7
    .......
    (appariva più volte la stessa città, il numero rappresenta la temperatura), il programma doveva fare la media della temperatura in ogni città e totale tra tutte le temperature, ma non ci ha fatto vedere come crearlo... credo comunque che il file di testo debba essere qualcosa di simile a questo.
  • Re: Problema con programma che legge file

    Non hai seguito il mo consiglio. Il fatto che non provi neanche ad iniziare a fare qualcosa mi fa pensare che tu voglia solo la pappa pronta.

    Altrimenti, perché, come ti ho già detto, non inizi a impostare i dati che dovrai trattare nel codice, ovvero

    nome dell'insegnamento voto data
  • Re: Problema con programma che legge file

    Probabilmente allora ci sarà una "scheda esame" per riga (il che implica che le "schede" siano separate da '\n') e ogni scheda conterrà tre campi (il che implica che ogni campo sia separato dagli altri per mezzo di uno spazio ' ' e che il nome dell'esame sia una sottostringa costituita da una sola parola). I tre campi saranno con ogni probabilità nell'ordine in cui compaiono nella traccia: 1) nome dell'esame, 2) punteggio dell'esame, 3) data dell'esame. Ah, anche la data dovrà comunque contenere al suo interno dei "campi" per identificare giorno, mese e anno... Il contenuto del file potrebbe essere dunque una cosa del genere?
    pippologia_teorica 18 12/12/2014
    astrazioni_metafisiche 22 23/2/2015
    elucubrazioni_sul_nulla 21 18/4/2015
    strabordamenti_concettuali 18 23/07/2015
    incasinamenti_interpersonali_multipli 30 2/11/2015
    sbrodolamenti_lessicali 20 31/12/2015
    Personalmente avrei scelto come separatore dei campi '\t' anziché ' ', così da poter usare lo spazio nei nomi degli esami.

    P.S. Per puro divertimento ho già predisposto una classe che può acquisire i dati anche da una stringa formattata (che si può facilmente ottenere dal file con fgets(), riga per riga), ma aspetto a mandare il codice fino a quando dirai d'aver trovato la tua soluzione. Così poi Oregon potrà farmi notare quanto la mia soluzione sia inefficiente, imprecisa, dilettantesca. E con mille ottime ragioni per farlo!
  • Re: Problema con programma che legge file

    No non sono io, mi confondi con +m+ ... Io ti dico solo di non postare pappa pronta ...
  • Re: Problema con programma che legge file

    Ragazzi non è che voglio la "pappa pronta", è che fino all'altro ieri ci facevano allenare su cose semplici (roba tipo fai una calcolatrice a due cifre e poi quando proprio volevano farci fare una cosa difficile ci chiedevano di modificare quello stesso programma creando le funzioni) e improvvisamente ci danno questi esercizi che quando li leggo non so nemmeno da dove partire, ho chiesto qui per disperazione perché erano giorni che ci provavo.
    Mi sono persa le ultime lezioni per problemi familiari, quindi se ha spiegato in classe non c'ero (è strano perché di solito mette le lezioni su internet e non c'erano questi argomenti, ma credo che abbia in programma di metterli in futuro... il problema è che ho una prova intercorso a breve, appunto di programmazione, e la prossima lezione sarà postata su internet proprio il giorno prima e non posso aspettare quel giorno per iniziare ad allenarmi). Non è che non ho seguito il tuo consiglio, è che ieri quando mi hai detto di creare la classe ho passato la giornata a cercare su google come si fa e ad allenarmi su questo, solo che ho un blocco, cioè dal momento in cui la creo, poi comunque non so come fare per fare in modo che il programma "capisca" cosa c'è scritto sul file di testo.
    Praticamente ho bisogno di sapere cosa devo sapere per poter creare questo programma, quali sono i vari "passaggi" che mi mancano, perché sono sicura che c'è qualcosa che non so...
    ho detto che andava bene anche se mi davate il programma bello e pronto perché tanto non è da "consegnare" al professore né niente del genere, mi serve per allenarmi e se qualcuno lo fa al posto mio posso comunque "studiarlo" per vedere se c'è qualcosa che non ho mai fatto, non so come si fa ecc e approfondire quello per poterlo creare da sola, ma ho precisato che non era quella la mia richiesta, anche perché sarebbe il doppio del lavoro quindi non converrebbe nemmeno a me.
    Comunque ho già creato il file di testo prendendo come esempio quello che vi ho mandato, ho provato a creare la classe, ma mi blocco su numerosi punti e non riesco nemmeno a farlo partire (se non per fargli fare qualche altra operazione più semplice).
  • Re: Problema con programma che legge file

    Prima era tutto quello che ti aveva dato il prof., ora si scopre che eri assente ... Andiamo, ti avevo chiesto di iniziare a scrivere il main con le variabili che ti servono ... non l'hai mai fatto, non hai mai tentato qui sul forum ...

    Se non devi consegnare l'esercizio ma solo studiarlo, fattelo dare da un collega che ha seguito le lezioni ... Gli esercizi qui non si fanno.
  • Re: Problema con programma che legge file

    oregon ha scritto:


    Prima era tutto quello che ti aveva dato il prof., ora si scopre che eri assente ... Andiamo, ti avevo chiesto di iniziare a scrivere il main con le variabili che ti servono ... non l'hai mai fatto, non hai mai tentato qui sul forum ...

    Se non devi consegnare l'esercizio ma solo studiarlo, fattelo dare da un collega che ha seguito le lezioni ... Gli esercizi qui non si fanno.
    Punto 1: non m'interessa se pensi che voglio solo che mi fate il programma o che, e, anche se non devo spiegazioni a nessuno, ho spiegato che le lezioni stanno su internet, e ci sono anche gli esercizi, quindi anche se uno non segue trova tutto il materiale online. Non ho seguito le ultime lezioni quindi non so se l'ha spiegato e non so se qualcuno ha fatto questo particolare esercizio. Ho spiegato che preferisco sapere come si fa più che vederlo già fatto, quindi non mi è passato proprio per la testa di farmelo passare da un collega.
    Punto 2: ho semplicemente chiesto se qualcuno può spiegarmi come si fa. Non puoi? Non ti va? Ti sto antipatica? Pazienza, ma è inutile che continui a rispondere solo per attaccarmi. Se non t'interessa la questione non rispondere e basta.
    Punto 3: è inutile che ti posto quel poco che ho fatto del programma dal momento che non ha un senso compiuto. Non sono sicura nemmeno che quello che ho fatto è giusto, e siccome sono sempre bloccata allo stesso punto probabilmente non lo saprò mai. Non puoi sapere che non ci ho provato semplicemente dal fatto che non ti ho mandato ogni mio tentativo, ci sono dei motivi se non l'ho fatto e non puoi attaccarmi per questo.
  • Re: Problema con programma che legge file

    Il vittimismo non attacca con me. Hai chiesto sul forum e ti ho risposto cosa fare. Ora toccherebbe a te, educatamente, rispondere ai miei gratuiti consigli e iniziare a mostrare quello che ti ho suggerito di scrivere. Sarò poi io a dirti se è valido o no, o come andare avanti con le modifiche. Ma tu devi iniziare a postare del codice tuo, anche sbagliato, per iniziare un ragionamento sul forum.
  • Re: Problema con programma che legge file

    Non faccio la vittima, solo che non mi piace essere aggressiva, soprattutto se non conosco la persona con cui sto parlando.
    Comunque non mi va di postarlo così com'è qui, al massimo potrei mandartelo in privato, ma credo che non sapresti nemmeno da dove iniziare a sgridarmi dal momento che non ha un senso logico... mi sembra semplicemente inutile farlo vedere a qualcuno, tutto qua.
  • Re: Problema con programma che legge file

    Ma tre variabili con i tre dati da leggere dal file saprai scriverle, no? Questo non c'entra niente con le nuove nozioni. Puoi dire qui quali variabili useresti? Se non sai/vuoi fare questa semplice cosa, beh, non so cosa dirti.
Devi accedere o registrarti per scrivere nel forum
44 risposte