Template Mappe in c++(stl)

di il
3 risposte

Template Mappe in c++(stl)

Ciao a tutti,mi sono cimentata in questo esercizio,con scarsi risultati(il programma non parte,argh!):
"Creare una classe Studente che ha le seguenti proprietà:
string matricola
string nome_cognome
char sesso (M per uomo e F per donna)
Creare i get e set per le proprietà e un metodo costruttore per inizializzare
ogni oggetto della classe Studente.
Creare poi una classe MappaStudente che ha come proprietà una mappa “m” che ha
come chiave la matricola di uno studente generico (univoco) e come valore lo
studente. Creare un metodo costruttore che crea la mappa.
Creare poi i seguenti metodi:
? il metodo booleano ins che prende come parametro una stringa “matricola” e
un oggetto della classe Studente. Se la mappa “m” non ha come chiave
“matricola” allora inserisce la matricola con lo studente nella mappa e
ritorna il valore booleano true, altrimenti non inserisce nulla e ritorna
false.
? Il metodo controllaSesso prende come parametro un carattere che può essere
‘M’ (uomo) o ‘F’ (donna). In base a questo carattere ritorna un vector con
tutti gli studenti di sesso femminile o di sesso maschile.
Creare poi il main in cui eseguire queste operazioni:
? Creare un oggetto della classe MappaStudente
? inserire da input gli studenti usando il metodo “ins” della classe
? e visualizzare tutti gli studenti donne e gli studenti uomini."

Ora,ho definito le classi e i metodi, ma credo ci siano delle falle nel file della Mappa. vi allego il mio codice, nella speranza che possiate indirizzarmi su quali stupidaggini ho scritto lol


#include "studente1.h"
#include<map>

class MappaStudente(){


map<string,Studente*>*mappa=new map<string,studente*>;
map<string,Studente*>*::iterator it;

bool insStudente(Studente s*){
it=mappa->find(studente->matricola)
if(it==mappa->end()){
mappa->insert(pair,<string,studente*>(studente->matricola,studente->nome_cognome))
return false;
}
else
return true;
}



};

3 Risposte

  • Re: Template Mappe in c++(stl)

    Class Studente{
    string matricola;
    string nome_cognome;
    char sesso;
    public:
    Studente(string matricola,string nome_cognome,char sesso )
    {
    this->matricola=matricola;
    this-> nome_cognome=nome_cognome;
    this->sesso=sesso;
    }
    string getMatricola(){
    return matricola;

    }
    string getNome_Cognome(){
    return nome_cognome;
    }
    char getSesso(){
    return sesso;
    }

    void setMatricola(string matricola){
    matricola=matricola;
    }
    void setNome_Cognome(string nome_cognome){
    nome_cognome=nome_cognome;
    }
    void setSesso(char sesso){
    sesso=sesso;
    }
    };
  • Re: Template Mappe in c++(stl)

    #include <iostream>
    using namespace std;
    #include "mappa_studente.h"
    main(){
    string matricola;
    string nome_cognome;
    char sesso;

    MappaStudente* m=new MappaStudente;
    cout<<"Inserisci il numero di matricola :"<<endl;
    getline(cin,matricola);

    cout<<"Inserisci il nome e il cognome dello studente: "<<endl;
    getline(cin,nome_cognome);

    cout<<"Inserisci il sesso dello studente: "<<endl;
    getline(cin,sesso);

    Studente*s=new Studente(string matricola,string nome_cognome,char sesso);
    ins(s*);
    }
  • Re: Template Mappe in c++(stl)

    Usa il tag code.

    C++ non è Java. Non è un linguaggio fatto per usare “new” senza sapere cosa si stia facendo
Devi accedere o registrarti per scrivere nel forum
3 risposte