gpt4 book ai didi

c++ - 'cont'的多重定义

转载 作者:太空宇宙 更新时间:2023-11-04 14:43:38 33 4
gpt4 key购买 nike

我真的、真的很累,似乎无法应付。我有大约 1 个半小时的截止日期,我遇到了这个错误。问题是,之前,我处理了一些这样的错误。它说多个定义 if cont 并且似乎没有任何作用。如果有人可以帮助我,我将不胜感激。谢谢

主要。 cpp

    #include "banca.h"

using namespace std;


extern TranzactieBancara cont[100];
extern TranzactieBancara h;

int main()
{



char nume[10],prenume[10];

int optiune;
int i;
marcaj:

cout<<"Numele: ";
cin>>nume;
cout<<"Prenumele: ";
cin>>prenume;
i = h.cautare(nume,prenume);// am implementat o functie de cautare pentru a afla ce cont sa caut


cout<<"Apasati tasta 1 pentru creearea unui cont nou"<<endl;
cout<<"Apasati tasta 2 pentru inchiderea contului"<<endl;
cout<<"Apasati tasta 3 pentru depunerea unei sume de bani"<<endl;
cout<<"Apasati tasta 4 pentru extragerea unei sume de bani"<<endl;
cout<<"Apasati tasta 5 pentru transferarea unei sume de bani intr-un alt cont"<<endl;
cout<<"Apasati tasta 6 pentru afisarea conturilor active"<<endl;
cin>>optiune;

switch(optiune)
{
case 1:
h.Initializare(); // functia Initializare implementeaza un cont nou
goto marcaj;


case 2:
if(cont[i].Verificare(i)==1) // functia Verificare(i) verifica daca parola data de utilizator este corespunzatoare contului
{
cont[i].InchidereCont(); //aceasta functie inchide contul
goto marcaj;
}
break;
case 3:
if(cont[i].Verificare(i)==1)
{
cont[i].DepunereBani(i); //aceasta functie depune bani in contul utilizatorului
goto marcaj;
}
break;
case 4:
if(cont[i].Verificare(i)==1)
{
cont[i].RetragereBani(i); // aceasta functie retrage bani din contul utilizatorului
goto marcaj;
}
case 5:
if(cont[i].Verificare(i)==1)
{
cont[i].TransferBani(i); // aceasta functie trasfera bani din contul utilizatorului intr-un alt cont dat de el
goto marcaj;
}
case 6:
cont[i].AfisareCont(i); // afiseaza detaliile contului corespunzator utilizatorului
goto marcaj;
default:
cout<<"Optiune invalida, incercati din nou:"<<endl;
goto marcaj;

}



getch();

return 0;
}

银行卡.cpp

#include "banca.h"

#define n 10

extern TranzactieBancara cont[100];
extern TranzactieBancara h;


TranzactieBancara::TranzactieBancara()
{
ifstream fisier1("fisier1.txt");
if(!fisier1)
cout<<"Eroare la deschiderea fisierului 1 !"<<endl;


int i = 1;

fisier1.seekg(0,ios::beg); // ne pozitionam la inceputul fisierului
while(!fisier1.eof())
{
fisier1>>cont[i].nume;
i++;
}

ifstream fisier2("fisier2.txt");
if(!fisier2)
cout<<"Eroare la deschiderea fisierului 2 !"<<endl;


i=1;
fisier2.seekg(0,ios::beg);
while(!fisier2.eof())
{
fisier2>>cont[i].prenume;
i++;
}

ifstream fisier3("fisier3.txt");
if(!fisier3)
cout<<"Eroare la deschiderea fisierului 3!"<<endl;

i=1;
fisier3.seekg(0,ios::beg);
while(!fisier3.eof())
{
fisier3>>cont[i].parola;
i++;
}

ifstream fisier4("fisier4.txt");
if(!fisier4)
cout<<"Eroare la deschiderea fisierului 4!"<<endl;

i=1;
fisier4.seekg(0,ios::beg);
while(!fisier4.eof())
{
fisier4>>cont[i].sold;
i++;
}


}

int TranzactieBancara::cautare(char nume[10],char prenume[10])
{
ifstream fisier1("fisier1.txt");
ifstream fisier2("fisier2.txt");
int i,k = 1;
for( i = 0;i < n;i++)
{
if(strcmp(cont[i].nume,nume)==0)
k=0;
if(strcmp(cont[i].prenume,nume)==0)
k=0;
if(k==0)
return i;
}
}

int TranzactieBancara::Verificare(int i)
{
char parola[20];
cout<<"Introduceti parola contului aferent";
for(int j=1;j<=6;j++)
cin>>parola[i];

if(strcmp(parola,cont[i].parola)==0)
return 1;
else
return 0;
}

void TranzactieBancara::Initializare()
{
ofstream f("sciere.txt");

char nume[100],parola[20];
cout<<"Introduceti numele dumneavoastra: ";
cin>>nume;
f<<nume;
strcpy(cont[11].nume,nume);

cont[11].sold=0;

cout<<"Stabiliti-va parola: ";
cin>>parola;
f<<parola;

strcpy(cont[11].parola, parola);

}

void TranzactieBancara::InchidereCont()
{
/* delete nume;
delete parola;
delete sold*/
}

void TranzactieBancara::DepunereBani(int i)
{
float suma;
cout<<"Suma pe care doriti s-o depuneti: ";
cin>>suma;

cont[i].sold=cont[i].sold+suma;

cout<<"In acest moment in cont aveti : "<<cont[i].sold<<" lei " ;
}

void TranzactieBancara::RetragereBani(int i)
{
float suma;
cout<<"Suma pe care doriti s-o retrageti: ";
cin>>suma;

if(suma>cont[i].sold)
cout<<"EROARE. Depasire plafon curent";
else
{
cont[i].sold=cont[i].sold-suma;
cout<<"In acest moment in cont aveti: "<<cont[i].sold<<"lei";
}
}

void TranzactieBancara::TransferBani(int i)
{
float suma;
char nume[10],prenume[10];
cout<<"Numele celui caruia vreti sa-i transferati bani: ";
cin>>nume;

cout<<"Prenumele celui carui vreti sa-i transferati bani: ";
cin>>prenume;
cout<<"Introduceti suma pe care vreti s-o transferati";
cin>>suma;

if(suma>cont[i].sold)
cout<<"Eroare, sold insuficient";
else
cont[i].sold = cont[i].sold - suma;

for(int j=1;j<=n;i++)
if(strcmp(cont[j].nume,nume)==0 && strcmp(cont[j].prenume,prenume)==0)
cont[j].sold=cont[j].sold+suma;

}

void TranzactieBancara::AfisareCont(int i)
{
cout<<"Nume: "<<cont[i].nume<<endl;
cout<<"Prenume: "<<cont[i].prenume<<endl;
cout<<"Sold curent"<<cont[i].sold<<endl;

}

银行。

#include<iostream>
#include<string.h>
#include<conio.h>
#include<fstream>

#define n 100

using namespace std;


class TranzactieBancara{

char parola[20];
float sold;

public:
char nume[10],prenume[10];

TranzactieBancara();
int Verificare(int i);
void Initializare();
void DepunereBani(int i);
void RetragereBani(int i);
void TransferBani(int i);
void InchidereCont();
void AfisareCont(int i);
int cautare(char nume[10],char prenume[10]);

} ;
TranzactieBancara cont[100];
TranzactieBancara h;

最佳答案

永远不要在头文件中这样做:

TranzactieBancara cont[100];

将其放入其中一个 .cpp 文件中,然后将其添加到 header 中:

extern TranzactieBancara cont[100];

关于c++ - 'cont'的多重定义,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33744132/

33 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com