My error message: (FAULT LIES IN LINE 314 OF MAIN ARCHIVE)
error C2664:
'Personalia::Personalia(std::string,int,int,std::string,std::string,double,std::string)' : cannot convert parameter 2 from 'std::string' to 'int'
No user-defined-conversion operator available that can perform this conversion, or the operator cannot be called
I hope that the functions not being in english is not a problem.
this is my main archive:
#include<iomanip> #include <iostream> #include <string> #include <vector> #include <fstream> #include <locale.h> #include"header.h" #include"Klasse.cpp" using namespace std; void Intro(); void HovedMeny(); void Opprett(vector<Personalia>& nyarkiv); void Utskrift(vector<Personalia>& nyarkiv); void Endre(vector<Personalia>& nyarkiv); void Skrivtilfil(vector<Personalia>& nyarkiv); void Lesfrafil(vector<Personalia>& nyarkiv); void Slett(vector<Personalia>& nyarkiv); void Info(vector<Personalia>& nyarkiv); void main(void) { system("color 02"); char *locale; locale = setlocale(LC_ALL, ""); Intro(); HovedMeny(); } void Intro() { cout<<"\nVelkommen til klassearkivet. Arkivet er ment som et hjelpemiddel"<<endl; cout<<"for lærere. Her kan du selv opprette klasser, legge til elever"<<endl; cout<<"og holde oversikt over elevens karakterer og snitt i de forskjellige fagene\n"<<endl<<endl; system("pause"); system("cls"); } void HovedMeny(){ vector<Personalia> elever; Lesfrafil(elever); int valg; do{ system("cls"); cout<<"\n\n ************************ HOVEDMENY ************************"<<endl; cout<<" * *"<<endl; cout<<" *"<<setw(15)<<"ADMINISTRASJON"<<setw(35)<<"OVERSIKT"<<" *"<<endl; cout<<" * *"<<endl; cout<<" *"<<setw(15)<<"1. Opprett personalia"<<setw(29)<<"4. Vis personalia"<<" *"<<endl; cout<<" *"<<setw(14)<<"2. Endre personalia"<<setw(21)<<""<<"5. Informasjon"<<" *"<<endl; cout<<" *"<<setw(11)<<"3. Slette personalia"<<setw(36)<<""<<" *"<<endl; cout<<" *"<<" 0. Avslutt"<<" *"<<endl; cout<<" * *"<<endl; cout<<" ***********************************************************"<<endl; cin>>valg; switch(valg){ case 1: Opprett(elever); break; case 2: Endre(elever); break; case 3: Slett(elever); break; case 4: Utskrift(elever); break; case 5: Info(elever); case 0: Skrivtilfil(elever); break; default: if(valg!=0) { system("cls"); cout<<endl<<"Ugyldig valg\n"; system("pause"); system("cls"); } } } while(valg!=0); system("cls"); } void Opprett(vector<Personalia>& nyelever){ system("cls"); string elevnavn; string klasse; string fag; string merknad; int ansattnummer; int fdato; double karakter; cout<<"Skriv inn elevens navn: "; cin>>elevnavn; cout<<"Ansattnummer:"; cin>>ansattnummer; cout<<"Fødselsdato "; cin>>fdato; cout<<"Klasse: "; cin>>klasse; cout<<"Fag: "; cin>>fag; cout<<"Karakter(prosent): "; cin>>karakter; cout<<"Merknad: "; cin>>merknad; Personalia nyPersonalia(elevnavn, ansattnummer, fdato, klasse, fag, karakter, merknad); nyelever.push_back(nyPersonalia); cout << endl; Skrivtilfil(nyelever); system("cls"); cout << "Ny informasjon opprettet:" << endl << endl; cout << "PERSONALIA"<< endl; cout << "Elev: " << elevnavn << endl; cout << "Ansattnummer: " << ansattnummer<<" Fødselsdato: " <<fdato << endl; cout << "Klasse: " << klasse << endl; cout << "Fag: " << fag << " Karakter: "<<karakter << endl; cout << "Merknad" << merknad <<endl<<endl; system("pause"); } void Utskrift(vector<Personalia>& nyelever){ system("cls"); unsigned int antall = nyelever.size(); for(unsigned int i = 0; i < antall; i++){ cout << "----------------------------" << endl; cout << "PERSONALIA : "<<i+1<< endl; cout << "Elev " << nyelever[i].hentelevnavn() << endl; cout << "Ansattnummer: " << nyelever[i].hentansattnummer() << " Fødselsdato: " << nyelever[i].hentfdato()<<endl; cout << "Klasse: " << nyelever[i].hentklasse() << endl; cout << "Fag: " << nyelever[i].hentfag() << " Karakter: " <<endl; cout << "Merknad: " << nyelever[i].hentmerknad() << endl << endl; cout << endl; } system("pause"); } void Endre(vector<Personalia>& nyelever){ system("cls"); int pnummer; int teller = 0; string nyelevnavn; string nyklasse; string nyfag; string nymerknad; int nyansattnummer; int nyfdato; double nykarakter; int antall = nyelever.size(); for(int i = 0; i < antall; i++){ cout << teller << "." << nyelever[i].hentelevnavn() << endl; teller++; } cout << endl; cout << "Skriv inn nummer på loggen du vil endre: " << endl; cin >> pnummer; if(pnummer > antall){ cout << "Denne filen finnes ikke." << endl; system("pause"); return; } else{ system("cls"); char menyvalg='j'; while(menyvalg=='j'){ int endrevalg; cout << "Hva ønsker du å endre?" << endl<<endl; cout << "1. Elev " << nyelever[pnummer].hentelevnavn() << endl; cout << "2. Ansattnummer: " << nyelever[pnummer].hentansattnummer() << endl; cout << "3. Klasse: " << nyelever[pnummer].hentklasse() <<endl; cout << "4. Fødselsdato: " << nyelever[pnummer].hentfdato()<<endl; cout << "5. Fag: " << nyelever[pnummer].hentfag() <<endl; cout << "6. Karakter: " <<endl; cout << "7. Merknad: " << nyelever[pnummer].hentmerknad() << endl << endl; cout << "10. Ingenting."<<endl<<endl; cin >> endrevalg; if(endrevalg==1){ cout<< "Skriv inn nytt navn: " << endl; cin >> nyelevnavn; nyelever[pnummer].settelevnavn(nyelevnavn);} if(endrevalg==2){ cout << "Skriv inn nytt ansattnummer: " <<endl; cin>>nyansattnummer; nyelever[pnummer].settansattnummer(nyansattnummer);} if(endrevalg==3){ cout<<"Skriv inn ny Klasse: " <<endl; cin>>nyklasse; nyelever[pnummer].settklasse(nyklasse);} if(endrevalg==4){ cout<< "Skriv inn ny fødselsdato: " <<endl; cin>>nyfdato; nyelever[pnummer].settfdato(nyfdato);} if(endrevalg==5){ cout<<"Skriv inn nytt fag: "<<endl; cin>>nyfag; nyelever[pnummer].settfag(nyfag);} if(endrevalg==6){ cout<<"Skriv inn ny karakter: " << endl; cin>>nykarakter; nyelever[pnummer].settkarakter(nykarakter);} if(endrevalg==7){ cout<<"Skriv inn ny merknad: " <<endl; cin>>nymerknad; nyelever[pnummer].settmerknad(nymerknad);} if(endrevalg==10){ cout<< "Du gjorde ingen endringer."<<endl<<endl; system("pause");} cout<<"Ønsker du å gjøre flere endringer?(j/n):"; cin>>menyvalg; } system("cls"); cout << "Du har utført følgende endringer:" << endl; cout << "-----------------------------" << endl; cout << "PERSONALIA : "<<endl; cout << "Elev " << nyelever[pnummer].hentelevnavn() << endl; cout << "Ansattnummer: " << nyelever[pnummer].hentansattnummer() <<" Fødselsdato: " << nyelever[pnummer].hentfdato()<<endl; cout << "Klasse: " << nyelever[pnummer].hentklasse() << endl; cout << "Fag: " << nyelever[pnummer].hentfag() << " Karakter: " <<nyelever[pnummer].hentkarakter() <<endl; cout << "Merknad: " << nyelever[pnummer].hentmerknad() << endl << endl; system("pause"); } } void Skrivtilfil(vector<Personalia>& nyelever){ ofstream Utfil; Utfil.open("elever.txt"); unsigned int antall = nyelever.size(); for(unsigned int i = 0; i < antall; i++){ Utfil << nyelever[i].hentelevnavn() << endl; Utfil << nyelever[i].hentklasse() << endl; Utfil << nyelever[i].hentfag() << endl; Utfil << nyelever[i].hentmerknad() << endl; Utfil << nyelever[i].hentansattnummer() << " "; Utfil << nyelever[i].hentfdato() << " "; Utfil << nyelever[i].hentkarakter() << " "; } } void Lesfrafil(vector<Personalia>& nyelever){ string elevnavn; string klasse; string fag; string merknad; int ansattnummer; int fdato; double karakter; int teller=0; ifstream Infil; Infil.open("elever.txt"); if(Infil.fail()) { cerr << "Kan ikke åpne fil." << endl; exit(1); } while(!Infil.eof()){ getline(Infil, elevnavn); getline(Infil, klasse); getline(Infil, fag); getline(Infil, merknad); Infil >> ansattnummer >> fdato >> karakter; Personalia nyPersonalia(elevnavn, klasse, ansattnummer, fdato, fag, karakter, merknad); nyelever.push_back(nyPersonalia); teller++; } nyelever.erase(nyelever.begin()+teller-1); } void Slett(vector<Personalia>& nyelever){ system("cls"); int teller; int pnummer; char valg; unsigned int antall = nyelever.size(); system("cls"); teller=0; for(unsigned int i = 0; i < antall; i++){ cout << teller << "." << nyelever[i].hentelevnavn() << endl; teller++; } cout << endl; Erase: cout << "Skriv inn nummeret informasjonen du vil slette: " << endl; cin >> pnummer; if(pnummer >= teller){ cout << endl << "Ugyldig valg! " << endl << endl; goto Erase; } else if(pnummer < teller){ cout << "Er du sikker på at du vil slette: " << nyelever[pnummer].hentelevnavn() << " (j/n) ? " << endl; cin >> valg; if(valg == 'j' || valg == 'J' ){ nyelever.erase(nyelever.begin() +pnummer); cout << "Informasjonen er slettet!" << endl; } else cout << "Informasjon ikke slettet." << endl; } system("pause"); } void Info(vector<Personalia>& nyelever){ system("cls"); cout << endl; cout << "Informasjon om programmet: " << endl << endl; cout << "Dette programmet er ment som et hjelpemiddel for lærere. " << endl; cout << "Her kan du legge til elever og informasjon om elevene. " << endl; cout << "Informasjonen blir arkivert og kan igjen brukes når du kjører programmet" << endl; cout << "All informasjon kan alterneres og slettes hvis du ønsker. " << endl << endl; system("pause"); }
My class:
#include "header.h" Personalia::Personalia() { string nyelevnavn; string nyklasse; string nyfag; string nymerknad; nyansattnummer=0; nyfdato = 0; nykarakter=0.0; } Personalia::Personalia(string elevnavn, int ansattnummer, int fdato, string klasse ,string fag, double karakter, string merknad) { nyelevnavn = elevnavn; nyansattnummer = ansattnummer; nyfdato = fdato; nyklasse = klasse; nyfag = fag; nykarakter = karakter; nymerknad = merknad; } Personalia::~Personalia() { } string Personalia::hentelevnavn() const { return nyelevnavn; } int Personalia::hentansattnummer() const { return nyansattnummer; } int Personalia::hentfdato() const { return nyfdato; } string Personalia::hentklasse() const { return nyklasse; } string Personalia::hentfag() const { return nyfag; } double Personalia::hentkarakter() const { return nykarakter; } string Personalia::hentmerknad() const { return nymerknad; } void Personalia::settelevnavn(string elevnavn) { nyelevnavn = elevnavn; } void Personalia::settansattnummer(int ansattnummer) { nyansattnummer = ansattnummer; } void Personalia::settfdato(int fdato) { nyfdato = fdato; } void Personalia::settklasse(string klasse) { nyklasse = klasse; } void Personalia::settfag(string fag) { nyfag = fag; } void Personalia::settkarakter(double karakter) { nykarakter = karakter; } void Personalia::settmerknad(string merknad) { nymerknad = merknad; }
My header:
#include <iostream> #include <string> using namespace std; #ifndef Personalia_H #define Personalia_H class Personalia { public: Personalia(); Personalia(string, int, int, string, string, double, string); ~Personalia(); string hentelevnavn() const; int hentansattnummer() const; int hentfdato() const; string hentklasse() const; string hentfag() const; double hentkarakter() const; string hentmerknad() const; void settelevnavn(string); void settansattnummer(int); void settfdato(int); void settklasse(string); void settfag(string); void settkarakter(double); void settmerknad(string); private: string nyelevnavn; int nyansattnummer; int nyfdato; string nyklasse; string nyfag; double nykarakter; string nymerknad; }; #endif