Aiuto. tra un po' avrò l'esame di informatica e no riesco a fare quest programma(struct). Chi può aiutarmi?

di il
4 risposte

Aiuto. tra un po' avrò l'esame di informatica e no riesco a fare quest programma(struct). Chi può aiutarmi?

Cioa ragazzi,
ho un esercizio da fare in c++ e mi serve il vostro aiuto perchè non so cosa devo fare. L'esercizio è il seguente:
Si scriva un programma che utilizzi la struttura dati piu adatta per gestire un elenco di studenti, il cui generico
elemento deve contenere le seguenti informazioni:

nome dello studente
cognome dello studente
corso di studi
matricola (valore intero)
media degli esami sostenuti (valore reale)

Il programma deve prevedere inizialmente la lettura dell'elenco con tutti i dati per un numero N di studenti specicato dall'utente e la lettura di una valore reale S. Il programma deve quindi eliminare dall'elenco gli studenti la cui media sia inferiore alla soglia S ed ordinare l'elenco cosi modificato in ordine alfabetico crescente secondo il cognome dello studente. In ultimo, stampi l'elenco ordinato

4 Risposte

  • Re: Aiuto. tra un po' avrò l'esame di informatica e no riesco a fare quest programma(struct). Chi può aiutarmi?

    Anche no
  • Re: Aiuto. tra un po' avrò l'esame di informatica e no riesco a fare quest programma(struct). Chi può aiutarmi?

    ufoplast46 ha scritto:


    ...non so cosa devo fare.
    Se il problema è il COSA e non il COME, credo sia più indicato un forum di italiano piuttosto che di informatica!
    In ogni caso qualche suggerimento:
    - evita di postare il tuo esercizio in sezioni non adatte (mi riferisco al post nella sezione "Il Bar dei Programmatori");
    - evita titoli da "pronto intervento";
    - se non hai avuto voglia/tempo di studiare per quest'esame nessuno ti obbliga a farlo... prenditi del tempo e prepararti adeguatamente per una data successiva.

    Detto questo, se vuoi aumentare le probabilità di ricevere un qualche tipo di aiuto, ti suggerisco di porre una domanda (specifica) alla volta e di mostrare buona volontà postando del codice contente qualche tentativo di soluzione!
  • Re: Aiuto. tra un po' avrò l'esame di informatica e no riesco a fare quest programma(struct). Chi può aiutarmi?

    Cosa devi fare? Leggi la traccia passo per passo e scomponila in sottoproblemi.

    Comincia dunque col definire una struttura dati "Studente" con le caratteristiche richieste. "Nome dello studente", "Cognome dello studente" e "Corso di studi" saranno tre stringhe, o tre array di caratteri. "Matricola" sarà un int e "media" sarà un float (potrebbe essere anche un double, ma sarebbe un po' come sparare ai passeri col cannone).

    Ci vorrà quindi una funzione "int immetti_studente(Studente *studente)" che si occuperà dell'interazione con il mezzo di input (la console?) per riempire i campi della struttura.

    Un'altra funzione "Studente *crea_registro(unsigned int nStud)" si potrebbe occupare di creare l'array per contenere nStud strutture di tipo "Studente", quindi potrebbe chiamare "immetti_studente()" per nStud volte per popolare l'array. Volendo, questa funzione si potrebbe omettere, integrandone i passaggi direttamente in main(), particolarmente se non si vuole o non si sa gestire la creazione di un array in memoria dinamica.

    Poi ci vorrà una funzione "int elimina_sotto_soglia(Studente *registro, unsigned int *nStud, float soglia)" che elimini le strutture che riguardano studenti con media al di sotto della soglia e reimposti nStud in base alla nuova quantità contenuta nell'array.

    Procedendo nella traccia, l'esercizio richiede una funzione "int ordina_per_cognome(Studente *registro, unsigned int nStud)" che si occupi di ordinare alfabeticamente in senso crescente l'array in base al campo "cognome" di ogni struttura "Studente" (sarebbe più figo ordinare le strutture in base al campo "cognome" E in base al campo "nome", ma non è richiesto).

    Per finire, un'ultima funzione "int mostra_registro(const Studente *registro, unsigned int nStud)" si occuperà di presentare i dati in uscita (sempre in console?).

    La funzione principale main() si avvantaggerà di queste funzioni "accessorie", coordinandole in vista del risultato finale e gestendo la richiesta della quantità di studenti N e del valore di soglia S.

    Tedioso, magari lunghetto, ma non particolarmente difficile. Ovvio che ci sono mille altri modi di risolvere l'esercizio, e che uno sceglie quelli più adatti al proprio modo di ragionare.
  • Re: Aiuto. tra un po' avrò l'esame di informatica e no riesco a fare quest programma(struct). Chi può aiutarmi?

    Ci vuole solo un po' di buona volontà
Devi accedere o registrarti per scrivere nel forum
4 risposte