Visualizzazione dei risultati da 1 a 2 su 2
  1. #1

    [c++] Problema con le strutture

    codice:
    #include <cstdlib>
    #include <iostream>
    using namespace std;
    
    void informazioni(int n,alunno*studente); //funzione per l'inserimento di nome, cognome e materia
    float *creavett(int n,alunno*studente); //funzione per creare un array dinamico che conterrà tutti i voti di una materia
    void *media(int n,float mid[],int k,alunno*studente); //funzione per inserire la media dei voti dall'array alla struttura
    void show(int n, alunno*studente); //funzione per scansionare la struttura
    
    typedef struct studente{ //struttura
       string nome; 
       string cognome;
       string materia;
       float media;
    }dati,*alunno;
    
    int main(int argc, char *argv[]){
        int n=0; //variabile per la dimensione degli array
        float *voti; //array che conterrà i voti
        float *mid; //array che conterrà la somma dei voti, per fare poi la media
        int k=0; //variabile contatore
        cout<<"Inserire il numero di alunni: "; //inserimento dimensione array
        cin>>n;
        alunno alunno=new dati[n]; //creazione dinamica dell'array di strutture
        mid=new float[n]; //creazione dinamica dell'array delle medie
        informazioni(n,studente); 
        voti=creavett(n,studente);
        for(int i=0;i<n;i++){
           mid[i]+=voti[i];  //somma dei voti e aumento della variabile contatore
           k++;
        }
        media(n,mid,k,studente);
        show(n,studente);
        system("PAUSE");
        return EXIT_SUCCESS;
    }
    
    
    void informazioni(int n,alunno*studente){
         for(int i=0;i<n;i++){
            cout<<"Inserire il cognome del "<<i+1<<"o alunno: ";
            cin>>alunno[i].cognome;
            cout<<"Inserire il suo nome: "; //caricamento struttura
            cin>>alunno[i].nome;
            cout<<"Inserire la materia: ";
            cin>>alunno[i].materia;
         }
    }
    
    float *creavett(int n,alunno*studente){
         float *voti;
         voti=new float[n];
         for(int i=0;i<n;i++){ //creazione dimanica dell'array e suo caricamento
            cout<<"Inserire il "<<i+1<<"o voto: ";
            cin>>voti[i];
         }
         return voti;
    }    
    
    void *media(int n,float mid[],int k,alunno*studente){
         for(int i=0;i<n;i++)
            alunno[i].media=mid[i]/k;
    } 
    
    void show(int n, alunno*studente){
         for(int i=0;i<n;i++){
            cout<<"Alunno: "<<alunno[i].cognome<<" "<<alunno[i].nome<<endl;
            for(int j=0;j<n;j++){
            cout<<"Materia: "<<alunno[i].materia<<" Media: "<<alunno[i].media[j]<<endl;
            }
         }
    }
    Sono uno studente di informatica [scuola superiore] e qualche giorno fa il professore ci ha accennato le strutture. Ho provato ad applicarle a programmi semplici, con successo. In questo programma ho provato a inserirlo in diverse funzioni, fallendo. Il programma dovrebbe farmi inserire il numero di alunni [definendo la dimensione dell'array di strutture], i dati degli alunni e fare le medie dei voti di questi. Il programma mi da errore su 'alunno' definendolo undeclared. Ho studiato le strutture per conto mio, quindi potrebbero esserci errori di sintassi, più che di codice. Spero qualcuno possa darmi una mano, grazie.

  2. #2
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,466
    Ovviamente queste

    codice:
    void informazioni(int n,alunno*studente); //funzione per l'inserimento di nome, cognome e materia
    float *creavett(int n,alunno*studente); //funzione per creare un array dinamico che conterrà tutti i voti di una materia
    void *media(int n,float mid[],int k,alunno*studente); //funzione per inserire la media dei voti dall'array alla struttura
    void show(int n, alunno*studente); //funzione per scansionare la struttura
    vanno scritte dopo la typedef ... altrimenti il compilatore non sa cosa sia "alunno" ...
    No MP tecnici (non rispondo nemmeno!), usa il forum.

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.