Problema C++

di il
16 risposte

Problema C++

Sto iniziano ad imparare C++ da solo e avevo trovato questo esercizio su un libro di testo:
Definisci una classe Studente per rappresentare oggetti studente con il cognome, il nome, il codice fiscale, il numero di matricola e con opportuni metodi d'instanza tra cui un metodo del tipo String toString() per la sua descrizione.
Avevo pensato alla soluzione sotto elencata, ma ho provato in tutti i modi e non sembra funzionare.
Se qualcuno mi puo' dare una mano a risolverlo mi farebbe un grosso piacere.

#include <iostream>
#include <string>

using namespace std;

class Studente{
	private:
		string cognome, nome;
		int matricola, codideFiscale;
	public:
		Studente(string nome1, string cognome1, int matricola1, int codiceFiscale1){
			nome = nome1;
			cognome = cognome1;
			matricola = matricola1;
			codiceFiscale = codiceFiscale1;
		}
		string getNome(){
			return nome;
		}
		string getCognome(){
			return cognome;
		}
		int getMatricola(){
			return matricola;
		}
		int getCodiceFiscale(){
			return codiceFiscale;
		}
		void setNome(string n){
			nome = n;
		}
		void setCognome(string n){
			cognome = n;
		}
		void setMatricola(int v){
			matricola = v;
		}
		void setCognome(int v){
			codiceFiscale = v;
		}
		string to_string(){
			string s = "Nome = " + getNome() + ", cognome = " + getCognome() + ", matricola = " + getMatricola()+ ", codice fiscale = " + getCodiceFiscale();
			return s;	
		}	
};

int main(){
	Studente stud;
	int string, int;
	cout << "Inserisci il nome " << endl;
	cin >> string;
	stud.setNome(string);
	cout << "Inserisci il cognome " << endl;
	cin >> string;
	stud.setCognome(string);
	cout << "Inserisci la matricola " << endl;
	cin >> int;
	stud.setMatricola(int);
	cout << "Inserisci il codice fiscale " << endl;
	cin >> int;
	stud.setCodiceFiscale(int);
	
	system("pause");
		
}	

16 Risposte

  • Re: Problema C++

    Perché due setcognome?

    Perché usi un variabile string che si chiama string?

    Il codice fiscale non è un numero
  • Re: Problema C++

    oregon ha scritto:


    Perché due setcognome?

    Perché usi un variabile string che si chiama string?
    Ho risolto quel problema ma il codice continua a non fare quello che voglio che faccia, anzi non parte proprio.
    Riguardo al codice fiscale non so come inserire numeri e lettere nella stessa variabile, credo debba usare il metodo string tostring ma non ho bene capito come.
  • Re: Problema C++

    Come compili? Cosa usi? Che fai? Che messaggi hai dal compilatore?
    Se presenti codice sbagliato e poi lo correggi lo devi dire.


    Non abbiamo la sfera di cristallo
  • Re: Problema C++

    oregon ha scritto:


    Come compili? Cosa usi? Che fai?

    Non abbiamo la sfera di cristallo
    Compilo usando il compilatore che viene con DevC++ (credo mingw), come detto uso DevC++.
    Il compilatore mi da errore a riga 15 =
    In constructor 'Studente::Studente(std::string, std::string, int, int)':
    [Error] 'codiceFiscale' was not declared in this scope
  • Re: Problema C++

    Hai creato un progetto?
  • Re: Problema C++

    oregon ha scritto:


    Hai creato un progetto?
    Ovviamente e ho messo console application.
  • Re: Problema C++

    Dato che stai imparando da solo usa un altro compilatore
  • Re: Problema C++

    oregon ha scritto:


    Dato che stai imparando da solo usa un altro compilatore
    Che compilatore dovrei usare?
  • Re: Problema C++

    Ad esempio l'IDE CODE Blocks con relativo compilatore.

    Puoi anche provare il codice con un compilatore online

    https://www.onlinegdb.com/online_c_compile#
  • Re: Problema C++

    Il codice fiscale puoi metterlo come string e i numeri che lo compongono verranno visti come caratteri.
  • Re: Problema C++

    Il problema è che hai scritto codideFiscale con la d
  • Re: Problema C++

    Il codice che hai inserito nel primo post contiene parecchi errori.
    Oltre a quello che ti hanno già segnalato relativo a "codideFiscale", ho individuato i seguenti:
    1. non puoi usare una variabile chiamandola int (lo fai nel main).
    2. sempre nel main devi distinguere i vari tipi di input (string, int, ecc.)
    3. l'operatore di concatenazione tra stringhe + di solito richiede che gli elementi da concatenare siano tutti stringhe (almeno fino al C++11, per gli standard più recenti non saprei, mi devo ancora aggiornare )
    4. sicuramente ce ne sono degli altri

    P.S. ti conviene chiamare la tua funzione toString() come suggerito dal testo del libro dato che esiste già una funzione to_string() nella classe string del C++.

    P.S.2 Io uso Dev-C++ e mi trovo molto bene.
  • Re: Problema C++

    @euscar ... in molte università/scuole è stata usata per molto tempo la versione 4.9.9.2 che era molto bacata, quasi inutilizzabile. Per molto tempo, prima che tu iniziassi a programmare forse, DevCpp veniva sconsigliato da tutti e non sapendo quale versione viene utilizzata si sconsiglia ancora adesso. A meno che non si precisi che si utilizza una versione recente.
  • Re: Problema C++

    @oregon
    In effetti hai ragione.
    Comunque mi riferivo alla versione 5.11, quella curata da Orwell: , con cui mi trovo bene. Inoltre so che Embarcadero ha portato avanti il progetto facendo uscire una nuova versione, Dev-C++ 6.3, ma ancora non l'ho provata.

    Dev-C++ potrà sembrare spartano in confronto ad altri ambienti di sviluppo, ma ha tutto il necessario per programmare, inoltre ti obbliga a pensare a quello che fai. Forse è un po' criptico sui messaggi di errore, ma dopo un po' si capisce anche quello.

    P.S. quando ho iniziato a programmare all'università ancora si usava Turbo C++ della Borland
    Ho ripreso a fare un po' di programmazione (per ora solo a scopo personale) solo negli ultimi cinque anni e mi trovo molto bene con Dev-C++ 5.11
Devi accedere o registrarti per scrivere nel forum
16 risposte