Torna indietro   Hardware Upgrade Forum > Software > Programmazione

Non sai programmare? Ecco cosa si può fare con un LLM e una GeForce RTX 5070 Ti
Non sai programmare? Ecco cosa si può fare con un LLM e una GeForce RTX 5070 Ti
Con un semplice dialogo in linguaggio naturale e la potenza di una scheda video di fascia alta è possibile costruire software funzionante da zero, senza scrivere una riga di codice e senza inviare un solo byte dei propri dati a server esterni
Recensione Samsung Galaxy Z Fold8 Ultra: il pieghevole più famoso diventa quasi perfetto
Recensione Samsung Galaxy Z Fold8 Ultra: il pieghevole più famoso diventa quasi perfetto
Samsung rinnova la serie pieghevole di punta con Galaxy Z Fold8 Ultra: pannello interno da 8 pollici quasi senza piega, cerniera Flex Titanium, Snapdragon 8 Elite Gen 5 for Galaxy e batteria finalmente da 5.000 mAh. Prezzo italiano da 2.299 a 2.899 euro. Tra colorimetro, benchmark reali e giorni di uso quotidiano, ecco dove questo pieghevole convince e dove il nome Ultra fatica ancora a trovare piena giustificazione
Insta360 X6: Dolby Vision, 8K e montaggio "Zero Editing"
Insta360 X6: Dolby Vision, 8K e montaggio "Zero Editing"
La nuova Insta360 X6 introduce sensori Sony da 1/1.1" e un SoC Triple AI a 4nm. Analizziamo le riprese 8K, il primo Dolby Vision nativo a 10-bit nel settore sferico e l'innovativo flusso di lavoro diretto sulla futura versione 22 di DaVinci Resolve.
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 10-01-2014, 22:57   #1
arsenico2009
Member
 
Iscritto dal: Sep 2010
Messaggi: 153
problema compilazione c++

salve,
sto creando un programma che simuli grosso modo il codice fiscale.
tuttavia non funziona come il calcolo del codice fiscale vero e proprio.

ecco il codice:

#include<iostream>
#include<string>
#include<cstdlib>

string calcoloLuogo(string luogo);
string calcoloData(string data);
string calcoloStringa(string stringa);
string calcoloCodiceFiscale(string nome, string cognome, string luogo, string dataNascita);
void acquisDatiAnagrafici(int indice, string &nome, string &cognome, string &luogo, string &dataNascita);
void acquisComponenti(int &nComponenti);
void stampaRisultato(string nome, string cognome, string luogo, string dataNascita, string codice);

using namespace std;

int main(){
int nComponenti;
string nome,cognome,dataNascita,luogo,codice;
acquisComponenti(nComponenti);
for (int i=0;i<nComponenti;i++){
acquisDatiAnagrafici(i, nome, cognome, luogo, dataNascita);
codice=calcoloCodiceFiscale(nome,cognome,luogo,dataNascita);
stampaRisultato(nome,cognome,luogo,dataNascita,codice);
}
return 0;
}

void stampaRisultato(string nome, string cognome, string luogo, string dataNascita, string codice){
cout<<"___________________________________________"<<endl;
cout<<"nome: "<<nome<<endl;
cout<<"cognome: "<<cognome<<endl;
cout<<"data di nascita: "<<dataNascita<<endl;
cout<<"luogo: "<<luogo<<endl;
cout<<"____________________________________________"<<endl<<endl;
cout<<"Il tuo codice fiscale: "<<codice<<endl;
}

void acquisComponenti(int &nComponenti){
cout<<"Si prega di inserire il numero dei componenti della tua famiglia: ";
cin>>nComponenti;
while (nComponenti<1){
cout<<"ERRORE: si prega di reinserire il numero dei componenti della tua famiglia: ";
cin>>nComponenti;
}
system("cls");
}

void acquisDatiAnagrafici(int indice, string &nome, string &cognome, string &luogo, string &dataNascita){
cout<<"inserire il nome del componente "<<indice+1<< " : ";
cin>>nome;
cin.ignore(); // pulisce il flusso in input dopo aver prelevato il nome
cout<<"inserire il cognome del componente "<<indice+1<< " : ";
cin>>cognome;
cin.ignore(); // pulisce il flusso in input dopo aver prelevato il cognome
cout<<"inserire la data nascista del componente (gg/mese/anno) "<<indice+1<< " : ";
cin>>dataNascita;
cin.ignore(); // pulisce il flusso in input dopo aver prelevato la data
cout<<"inserire il luogo di nascita del componente "<<indice+1<<" : ";
cin>>luogo;
cin.ignore(); // pulisce il flusso in input dopo aver prelevato il luogo
system("cls");
}

string calcoloCodiceFiscale(string nome, string cognome, string luogo, string dataNascita){
stringa=calcoloStringa(nome);
return (calcoloStringa(cognome) + calcoloData(dataNascita) + calcoloLuogo(luogo));
}

string calcoloStringa(string stringa){
string valore;
int lunghezza;
lunghezza=stringa.lenght;
if (lunghezza >= 3){
valore=stringa.substr(0,3);
} else {
for(int i=0; i<(3 - lunghezza); i++){
valore=valore+"x";
}
}
return valore;
}

string calcoloData(string data){
string anno,mese,giorno;
anno=data.substr(8,2);
mese=data.substr(0,1);
giorno=data.substr(0,2);
return (anno+mese+giorno);
}

string calcoloLuogo(string luogo){
string valore;
if ((luogo=="Potenza") or (luogo=="potenza") or (luogo=="POTENZA")){
valore="PZ";
} else {
if ((luogo=="Matera") or (luogo=="matera") or (luogo=="MATERA")){
valore="MT";
}
}
return valore;
}


ecco gli errori del compilatore g++ sotto windows:


C:\Users\pc\Downloads>g++ a.cpp
a.cpp:5:1: error: 'string' does not name a type
string calcoloLuogo(string luogo);
^
a.cpp:6:1: error: 'string' does not name a type
string calcoloData(string data);
^
a.cpp:7:1: error: 'string' does not name a type
string calcoloStringa(string stringa);
^
a.cpp:8:1: error: 'string' does not name a type
string calcoloCodiceFiscale(string nome, string cognome, string luogo, string d
ataNascita);
^
a.cpp:9:39: error: 'string' has not been declared
void acquisDatiAnagrafici(int indice, string &nome, string &cognome, string &lu
ogo, string &dataNascita);
^
a.cpp:9:53: error: 'string' has not been declared
void acquisDatiAnagrafici(int indice, string &nome, string &cognome, string &lu
ogo, string &dataNascita);
^
a.cpp:9:70: error: 'string' has not been declared
void acquisDatiAnagrafici(int indice, string &nome, string &cognome, string &lu
ogo, string &dataNascita);
^
a.cpp:9:85: error: 'string' has not been declared
void acquisDatiAnagrafici(int indice, string &nome, string &cognome, string &lu
ogo, string &dataNascita);

^
a.cpp:11:22: error: variable or field 'stampaRisultato' declared void
void stampaRisultato(string nome, string cognome, string luogo, string dataNasc
ita, string codice);
^
a.cpp:11:22: error: 'string' was not declared in this scope
a.cpp:11:22: note: suggested alternative:
In file included from c:\mingw\lib\gcc\mingw32\4.8.1\include\c++\iosfwd:39:0,
from c:\mingw\lib\gcc\mingw32\4.8.1\include\c++\ios:38,
from c:\mingw\lib\gcc\mingw32\4.8.1\include\c++\ostream:38,
from c:\mingw\lib\gcc\mingw32\4.8.1\include\c++\iostream:39,
from a.cpp:1:
c:\mingw\lib\gcc\mingw32\4.8.1\include\c++\bits\stringfwd.h:62:33: note: 'std:
:string'
typedef basic_string<char> string;
^
a.cpp:11:35: error: 'string' was not declared in this scope
void stampaRisultato(string nome, string cognome, string luogo, string dataNasc
ita, string codice);
^
a.cpp:11:35: note: suggested alternative:
In file included from c:\mingw\lib\gcc\mingw32\4.8.1\include\c++\iosfwd:39:0,
from c:\mingw\lib\gcc\mingw32\4.8.1\include\c++\ios:38,
from c:\mingw\lib\gcc\mingw32\4.8.1\include\c++\ostream:38,
from c:\mingw\lib\gcc\mingw32\4.8.1\include\c++\iostream:39,
from a.cpp:1:
c:\mingw\lib\gcc\mingw32\4.8.1\include\c++\bits\stringfwd.h:62:33: note: 'std:
:string'
typedef basic_string<char> string;
^
a.cpp:11:51: error: 'string' was not declared in this scope
void stampaRisultato(string nome, string cognome, string luogo, string dataNasc
ita, string codice);
^
a.cpp:11:51: note: suggested alternative:
In file included from c:\mingw\lib\gcc\mingw32\4.8.1\include\c++\iosfwd:39:0,
from c:\mingw\lib\gcc\mingw32\4.8.1\include\c++\ios:38,
from c:\mingw\lib\gcc\mingw32\4.8.1\include\c++\ostream:38,
from c:\mingw\lib\gcc\mingw32\4.8.1\include\c++\iostream:39,
from a.cpp:1:
c:\mingw\lib\gcc\mingw32\4.8.1\include\c++\bits\stringfwd.h:62:33: note: 'std:
:string'
typedef basic_string<char> string;
^
a.cpp:11:65: error: 'string' was not declared in this scope
void stampaRisultato(string nome, string cognome, string luogo, string dataNasc
ita, string codice);
^
a.cpp:11:65: note: suggested alternative:
In file included from c:\mingw\lib\gcc\mingw32\4.8.1\include\c++\iosfwd:39:0,
from c:\mingw\lib\gcc\mingw32\4.8.1\include\c++\ios:38,
from c:\mingw\lib\gcc\mingw32\4.8.1\include\c++\ostream:38,
from c:\mingw\lib\gcc\mingw32\4.8.1\include\c++\iostream:39,
from a.cpp:1:
c:\mingw\lib\gcc\mingw32\4.8.1\include\c++\bits\stringfwd.h:62:33: note: 'std:
:string'
typedef basic_string<char> string;
^
a.cpp:11:85: error: 'string' was not declared in this scope
void stampaRisultato(string nome, string cognome, string luogo, string dataNasc
ita, string codice);

^
a.cpp:11:85: note: suggested alternative:
In file included from c:\mingw\lib\gcc\mingw32\4.8.1\include\c++\iosfwd:39:0,
from c:\mingw\lib\gcc\mingw32\4.8.1\include\c++\ios:38,
from c:\mingw\lib\gcc\mingw32\4.8.1\include\c++\ostream:38,
from c:\mingw\lib\gcc\mingw32\4.8.1\include\c++\iostream:39,
from a.cpp:1:
c:\mingw\lib\gcc\mingw32\4.8.1\include\c++\bits\stringfwd.h:62:33: note: 'std:
:string'
typedef basic_string<char> string;
^
a.cpp: In function 'int main()':
a.cpp:20:60: error: invalid initialization of reference of type 'int&' from expr
ession of type 'std::string {aka std::basic_string<char>}'
acquisDatiAnagrafici(i, nome, cognome, luogo, dataNascita);
^
a.cpp:9:6: error: in passing argument 2 of 'void acquisDatiAnagrafici(int, int&,
int&, int&, int&)'
void acquisDatiAnagrafici(int indice, string &nome, string &cognome, string &lu
ogo, string &dataNascita);
^
a.cpp:21:61: error: 'calcoloCodiceFiscale' was not declared in this scope
codice=calcoloCodiceFiscale(nome,cognome,luogo,dataNascita);
^
a.cpp:22:56: error: 'stampaRisultato' was not declared in this scope
stampaRisultato(nome,cognome,luogo,dataNascita,codice);
^
a.cpp: In function 'std::string calcoloCodiceFiscale(std::string, std::string, s
td::string, std::string)':
a.cpp:64:2: error: 'stringa' was not declared in this scope
stringa=calcoloStringa(nome);
^
a.cpp:64:29: error: 'calcoloStringa' was not declared in this scope
stringa=calcoloStringa(nome);
^
a.cpp:65:59: error: 'calcoloData' was not declared in this scope
return (calcoloStringa(cognome) + calcoloData(dataNascita) + calcoloLuogo(luog
o));
^
a.cpp:65:81: error: 'calcoloLuogo' was not declared in this scope
return (calcoloStringa(cognome) + calcoloData(dataNascita) + calcoloLuogo(luog
o));

^
a.cpp: In function 'std::string calcoloStringa(std::string)':
a.cpp:71:20: error: 'std::string' has no member named 'lenght'
lunghezza=stringa.lenght;
^

cosa riguardano gli errori
arsenico2009 è offline   Rispondi citando il messaggio o parte di esso
Old 11-01-2014, 18:38   #2
arsenico2009
Member
 
Iscritto dal: Sep 2010
Messaggi: 153
ho aggiornato il codice.

ora il programma riesco a compilarlo correttamente.
il problema è che una volta che sono inseriti i dati, si chiude senza far uscire nessun risultato.

ecco il codice :

#include<iostream>
#include<cstdlib>
#include<string>

using namespace std;

string calcoloLuogo(string luogo);
string calcoloData(string giorno, string mese, string anno);
string calcoloStringa(string stringa);
string calcoloCodiceFiscale(string nome, string cognome, string luogo, string giorno, string mese, string anno);
void acquisDatiAnagrafici(int indice, string &nome, string &cognome, string &luogo, string &giorno, string &mese, string& anno);
void acquisComponenti(int &nComponenti);
void stampaRisultato(string nome, string cognome, string luogo, string giorno, string mese, string anno, string codice);


int main(){
int nComponenti;
string nome, cognome, giorno, mese, anno, luogo, codice;
acquisComponenti(nComponenti);
for (int i=0;i<nComponenti;i++){
acquisDatiAnagrafici(i, nome, cognome, luogo, giorno, mese, anno);
codice=calcoloCodiceFiscale(nome, cognome, luogo, giorno, mese, anno);
stampaRisultato(nome, cognome, luogo, giorno, mese, anno, codice);
}
system("pause");
}

void stampaRisultato(string nome, string cognome, string luogo, string giorno, string mese, string anno, string codice){
cout<<"--------------------------------------------"<<endl;
cout<<"nome: "<<nome<<endl;
cout<<"cognome: "<<cognome<<endl;
cout<<"data di nascita: "<<giorno<<"/"<<mese<<"/"<<anno<<endl;
cout<<"luogo: "<<luogo<<endl;
cout<<"--------------------------------------------"<<endl;
cout<<"Il tuo codice fiscale: "<<codice<<endl;
cout<<"--------------------------------------------"<<endl;
}

void acquisComponenti(int &nComponenti){
cout<<"Benvenuto...Questo programma simula il calcolo del codice fiscale. \n\n";
cout<<"Inserire il numero di componenti della tua famiglia: ";
cin>>nComponenti;
while (nComponenti<1){
cout<<"ERRORE: si prega di reinserire il numero di componenti della tua famiglia: ";
cin>>nComponenti;
}
system("cls");
}

void acquisDatiAnagrafici(int indice, string &nome, string &cognome, string &luogo, string &giorno, string &mese, string &anno){
cout<<"inserire il nome del componente "<<indice+1<< " : ";
cin>>nome;
cin.ignore(); // pulisce il flusso in input dopo aver prelevato il nome
cout<<endl<<"inserire il cognome del componente "<<indice+1<< " : ";
cin>>cognome;
cin.ignore(); // pulisce il flusso in input dopo aver prelevato il cognome
cout<<endl<<"inserire la data nascita del componente "<<indice+1<< " : "<<endl<<endl;
cout<<"giorno (gg): ";
cin>>giorno;
cin.ignore();
cout<<"mese (mese): ";
cin>>mese;
cin.ignore();
cout<<"anno (nnnn): ";
cin>>anno;
cin.ignore(); // pulisce il flusso in input dopo aver prelevato la data
cout<<endl<<"inserire il luogo di nascita del componente "<<indice+1<<" : ";
cin>>luogo;
cin.ignore(); // pulisce il flusso in input dopo aver prelevato il luogo
}

string calcoloCodiceFiscale(string nome, string cognome, string luogo, string giorno, string mese, string anno){
return (calcoloStringa(nome) + calcoloStringa(cognome) + calcoloData(giorno,mese,anno) + calcoloLuogo(luogo));
}

string calcoloStringa(string stringa){
string valore;
int lunghezza;
lunghezza=stringa.length();
if (lunghezza >= 3){
valore=stringa.substr(0,3);
} else {
for(int i=0; i<(3-lunghezza); i++){
valore=valore+"X";
}
}
return valore;
}

string calcoloData(string giorno, string mese, string anno){
return (anno.substr(8,2) + mese.substr(0,1) + giorno.substr(0,2));
}

string calcoloLuogo(string luogo){
string valore;
if ((luogo=="Potenza") or (luogo=="potenza") or (luogo=="POTENZA")){
valore="PZ";
} else {
if ((luogo=="Matera") or (luogo=="matera") or (luogo=="MATERA")){
valore="MT";
}
else {
valore="XX";
}
}
return valore;
}
arsenico2009 è offline   Rispondi citando il messaggio o parte di esso
Old 11-01-2014, 19:23   #3
vendettaaaaa
Senior Member
 
L'Avatar di vendettaaaaa
 
Iscritto dal: Jan 2012
Messaggi: 1267
Porca l'oca, ci vuole tanto ad usare i tag CODE???
Codice:
#include<iostream>
#include<cstdlib>
#include<string>

using namespace std;

string calcoloLuogo(string luogo);
string calcoloData(string giorno, string mese, string anno);
string calcoloStringa(string stringa);
string calcoloCodiceFiscale(string nome, string cognome, string luogo, string giorno, string mese, string anno);
void acquisDatiAnagrafici(int indice, string &nome, string &cognome, string &luogo, string &giorno, string &mese, string& anno);
void acquisComponenti(int &nComponenti);
void stampaRisultato(string nome, string cognome, string luogo, string giorno, string mese, string anno, string codice);


int main(){
	int nComponenti;
	string nome, cognome, giorno, mese, anno, luogo, codice;
	acquisComponenti(nComponenti);
	for (int i=0;i<nComponenti;i++){
		acquisDatiAnagrafici(i, nome, cognome, luogo, giorno, mese, anno);
		codice=calcoloCodiceFiscale(nome, cognome, luogo, giorno, mese, anno);
		stampaRisultato(nome, cognome, luogo, giorno, mese, anno, codice);
	}
	system("pause");
}

void stampaRisultato(string nome, string cognome, string luogo, string giorno, string mese, string anno, string codice){
	cout<<"--------------------------------------------"<<endl;
	cout<<"nome: "<<nome<<endl;
	cout<<"cognome: "<<cognome<<endl;
	cout<<"data di nascita: "<<giorno<<"/"<<mese<<"/"<<anno<<endl;
	cout<<"luogo: "<<luogo<<endl;
	cout<<"--------------------------------------------"<<endl;
	cout<<"Il tuo codice fiscale: "<<codice<<endl;
	cout<<"--------------------------------------------"<<endl;
}

void acquisComponenti(int &nComponenti){
	cout<<"Benvenuto...Questo programma simula il calcolo del codice fiscale. \n\n";
	cout<<"Inserire il numero di componenti della tua famiglia: ";
	cin>>nComponenti;
	while (nComponenti<1){
		cout<<"ERRORE: si prega di reinserire il numero di componenti della tua famiglia: ";
		cin>>nComponenti;
	}
	system("cls");
}

void acquisDatiAnagrafici(int indice, string &nome, string &cognome, string &luogo, string &giorno, string &mese, string &anno){
	cout<<"inserire il nome del componente "<<indice+1<< " : ";
	cin>>nome;
	cin.ignore(); // pulisce il flusso in input dopo aver prelevato il nome
	cout<<endl<<"inserire il cognome del componente "<<indice+1<< " : ";
	cin>>cognome;
	cin.ignore(); // pulisce il flusso in input dopo aver prelevato il cognome
	cout<<endl<<"inserire la data nascita del componente "<<indice+1<< " : "<<endl<<endl;
	cout<<"giorno (gg): ";
	cin>>giorno;
	cin.ignore();
	cout<<"mese (mese): ";
	cin>>mese;
	cin.ignore();
	cout<<"anno (nnnn): ";
	cin>>anno;
	cin.ignore(); // pulisce il flusso in input dopo aver prelevato la data
	cout<<endl<<"inserire il luogo di nascita del componente "<<indice+1<<" : ";
	cin>>luogo;
	cin.ignore(); // pulisce il flusso in input dopo aver prelevato il luogo
}

string calcoloCodiceFiscale(string nome, string cognome, string luogo, string giorno, string mese, string anno){
	return (calcoloStringa(nome) + calcoloStringa(cognome) + calcoloData(giorno,mese,anno) + calcoloLuogo(luogo));
}

string calcoloStringa(string stringa){
	string valore;
	int lunghezza;
	lunghezza=stringa.length();
	if (lunghezza >= 3){
		valore=stringa.substr(0,3);
	} else {
		for(int i=0; i<(3-lunghezza); i++){
			valore=valore+"X";
		}
	}
	return valore;
}

string calcoloData(string giorno, string mese, string anno){
	return (anno.substr(8,2) + mese.substr(0,1) + giorno.substr(0,2));
}

string calcoloLuogo(string luogo){
	string valore;
	if ((luogo=="Potenza") or (luogo=="potenza") or (luogo=="POTENZA")){
		valore="PZ";
	} else {
		if ((luogo=="Matera") or (luogo=="matera") or (luogo=="MATERA")){
			valore="MT";
		}
		else {
			valore="XX";
		}
	}
	return valore;
}
vendettaaaaa è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


Non sai programmare? Ecco cosa si può fare con un LLM e una GeForce RTX 5070 Ti Non sai programmare? Ecco cosa si può far...
Recensione Samsung Galaxy Z Fold8 Ultra: il pieghevole più famoso diventa quasi perfetto Recensione Samsung Galaxy Z Fold8 Ultra: il pieg...
Insta360 X6: Dolby Vision, 8K e montaggio "Zero Editing" Insta360 X6: Dolby Vision, 8K e montaggio "...
Due settimane con Dacia Spring 2026: novità, consumi, autonomia reale e test bagagli Due settimane con Dacia Spring 2026: novit&agrav...
AORUS GeForce RTX 5080 INFINITY WOOD 16G: una scheda video diversa dalle altre AORUS GeForce RTX 5080 INFINITY WOOD 16G: una sc...
Il successo dei Galaxy Z continua: Samsu...
Firefox Smart Window si aggiorna con ric...
GTA 6, nuove immagini di gameplay trapel...
Anthropic li chiama virus mentali: passa...
Claude ora invia email da Gmail senza ch...
Nuova rimodulazione per i clienti TIM: f...
Clausola energetica UE: via libera a pom...
OpenAI, stop all'addestramento più...
La robotica umanoide cinese sbarca in Bo...
I Google Pixel utilizzeranno l'IA per mo...
Sony annuncia la data d'uscita delle Pul...
Nothing Ear (3) a 119€: gli auricolari c...
Roborock Qrevo Curv 2 Flow a 499€ e Saro...
Apple avvisa dello spyware in quattro po...
Xiaomi svela gli interni (assurdi) di Sk...
Chromium
GPU-Z
OCCT
LibreOffice Portable
Opera One Portable
Opera One 106
CCleaner Portable
CCleaner Standard
Cpu-Z
Driver NVIDIA GeForce 546.65 WHQL
SmartFTP
Trillian
Google Chrome Portable
Google Chrome 120
VirtualBox
Tutti gli articoli Tutte le news Tutti i download

Strumenti

Regole
Non Puoi aprire nuove discussioni
Non Puoi rispondere ai messaggi
Non Puoi allegare file
Non Puoi modificare i tuoi messaggi

Il codice vB è On
Le Faccine sono On
Il codice [IMG] è On
Il codice HTML è Off
Vai al Forum


Tutti gli orari sono GMT +1. Ora sono le: 12:45.


Powered by vBulletin® Version 3.6.4
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Served by www3v