Sunteți pe pagina 1din 7

#include <iostream>

#include <stdio.h>
#include <fstream>
#include <conio.h>
#include <string>
using namespace std;
class Casier{
private:
string username;
string parola;
string inputUsername;
string inputParola;
public:
//Inregistrare user
void userRegisterDo()
{
ofstream userFile("userData.txt");
if( !userFile.is_open())
{
userFile.open("userData.txt");
}
userFile<< username << "" << parola<<endl;
userFile.close();
}
//Initializare inregistreare user
void userRegistre()
{
cout<<"Bun venit! Va rugam introduceti un nou nume de utilizator
\n";
cin>>username;
cout<<"Va rugam introduceti o parola noua : \n";
cin>> parola;
userRegisterDo();
}
//Functia de login
void login()
{
cout <<" Va rugam introduceti numele de utilizator: \n";
cin >>inputUsername;
cout <<"Va rugam introduceti parola \n";
cin >>inputParola;
string userSiPass=inputUsername+" " +inputParola; //cautare
int off;
string line;
ifstream usersFile;
usersFile.open("userData.txt");
if(usersFile.is_open())
{
while(!usersFile.eof())
{
getline(usersFile,line);

if((off=line.find(userSiPass,0)!= string::npos)){ //dac


a datele de logare sunt gasite
cout <<"Datele dumneavoastra de logare au fost
gasite"<<endl;
}
else // daca datele de logare nu au fost gasite
{
cout <<" Username si/sau parola nu au fost gasi
t/e \n";
login();
}
}
usersFile.close();
}
else
cout<< "Nu se poate deschide userData.txt " <<endl;
}
//constructor fara parametrii
Casier()
{
}
//constructro cu parametrii
Casier(string u,string p,string i,string in)
{
username=u;
parola=p;
inputUsername=i;
inputParola=in;
}
// destructor
~Casier()
{
cout<<"Destructorul a fost apelat"<<endl;
}
//Get-eri si Set-eri
//Setter pentru username
void setUser(string u)
{
username=u;
}
//Setter pentru parola
void setParola(string p)
{
parola=p;
}
//Setter pentru inputUsername
void setInputU(string i)
{
inputUsername=i;

}
//Setter pentru inputParola
void setInputP(string in)
{
inputParola=in;
}
//Getter pentru username
string GetUser()
{
return username;
}
//Getter pentru parola
string GetParola()
{
return parola;
}
//Getter pentru inputUsername
string GetInputUsername()
{
return inputUsername;
}
//Getter pentru InputParola
string GetInputParola()
{
return inputParola;
}
//Constructor de copiere
Casier(Casier & c)
{
this->username=c.username;
this->parola=c.parola;
this->inputUsername=c.inputUsername;
this->inputParola=c.inputParola;
}
//Operatorul =
void Casier::operator =(Casier c)
{
username=c.username;
parola=c.parola;
inputUsername=c.inputUsername;
inputParola=c.inputParola;
}
//Operatorul +
Casier Casier::operator +(Casier c)
{
Casier Cas;
Cas.username=username+c.username;

Cas.parola=parola+c.parola;
Cas.inputUsername=inputUsername+c.inputUsername;
Cas.inputParola=inputParola+c.inputParola;
}
friend ostream & operator <<(ostream & output,Casier & c);
friend istream & operator >>(istream & input,Casier &c );
class Produs
{
private:
char*marca;
const int greutate;
int cod;
float pret;
public:
Produs();
Produs(char* ,int,float,int);
Produs(Produs &a);
~Produs();
void setmar(char*);
void setcod(int);
void setpret(float);
friend istream& operator >> (istream & input,Produs & a);
friend ostream& operator << (ostream & output,Produs &a);
Produs & operator *=(float);
Produs & operator /=(float);
Produs & operator =(Produs &a);
bool operator <=(Produs &a);
bool operator >=(Produs &a);
};
Produs:Produs():greutate(2)
{
this->marca=new char[strlen("A")+1];
strcpy_s(this->marca,strlen("A")+1,"A");
this->cod=0;
this->pret=0;
}
Produs::Produs(char* a,int b,float c,int d):greutate(d)
{
this->marca=new char[strlen(a)+1];
strcpy_s(this->marca,strlen(a)+1,a);
this->cod=b;
this->pret=c;
}
Produs::Produs(Produs &a):greutate(a.greutate)
{
this->marca=new char[strlen(a.marca)+1];
strcpy_s(this->marca,strlen(a.marca)+1,a.marca);
this->cod=a.cod;
this->pret=a.pret;
}
Produs::~Produs()
{
if(this->marca){
delete []this->marca;
}

this->cod=0;
this->pret=0;
}
void Produs::setmar(char* a)
{
if(this->marca){
delete []this->marca;
}
this->marca= new char[strlen(a)+1];
}
void Produs::setcod(int a){
this->cod=a;
}
void Produs::setpret(float a){
this->pret=a;
}
ifstream & operator >>(istream & input,Produs &a){
char marca[50];
int cod;
float pret;
input>>marca>>cod>>pret;
Produs z;
if(z.marca){
delete[]z.marca;
}
z.marca= new char[strlen(marca)+1];
strcpy_s(z.marca,strlen(marca)+1,marca);
z.cod=cod;
z.pret=pret;
a=z;
return input;
}
ostrem & operator <<(ostream & output,Produs & a)
{
output<<a.marca<<a.greutate<<a.cod<<a.pret;
return output;
}
Produs & Produs ::operator = (Produs &a)
{
if(this->marca){
delete[]this->marca;
}
this->marca=new char[strlen(a.marca)+1];
strcpy_s(this->marca,strlen(a.marca)+1,a.marca);
this->cod=a.cod;
this->pret=a.pret;
return *this;
}
Produs & Produs ::operator *=(float a){
this->pret=this->pret *a;
return *this;
}
Produs & Produs :: operator /= (float a){

this->pret=this->pret /a;
return *this;
}
bool Produs:: operator <=(Produs & a){
return(float(this->cod)*float(this->greutate)*float(this->pret))<=(a.cod
*a.greutate*a.pret);
}
bool Produs::operator >=(Produs &a ){
return (this->cod*this->greutate *this->pret) >=(a.cod*a.greutate*a.pret
);
}
};
//Operator <<
ostream & operator <<(ostream & output,Casier & c)
{
output<<"Aceasta clasa contine"<<endl;
output<<"Numele: "<<c.username<<endl;
output<<"Parola: "<<c.parola<<endl;
output<<"inputUsername:" <<c.inputUsername<<endl;
output<<"inputParola: " <<c.inputParola<<endl;
return output;
}
//Operator >>
istream & operator >>(istream & input,Casier &c )
{
cout<<endl<<"Numle este: ";
input>>c.username;
cout<<"Parola este : ";
input>>c.parola;
cout<<"InputUsername este : ";
input>>c.inputUsername;
cout<<"InputParola este : ";
input>>c.inputParola;
return input;
}
void main()
{
//Testarea clasei Casier
/* Casier z;
ifstream usersFile("userData.txt");
long begin, end;
if(usersFile.good())
{
cout <<"Fisierul userData.txt a fost gasit";
}
else{
z.userRegistre();
}
if(usersFile.is_open())
{
begin= usersFile.tellg();
usersFile.seekg(0,ios::end);

end=usersFile.tellg();
usersFile.close();
if(begin == end)
{
z.userRegistre();
}
else
{
z.login();
}
}
getch();
Casier s;
Casier s1("D","A","F","G");
Casier s2;
s2=s1;
Casier Daniela;
cin>>Daniela;
cout<<Daniela;/*
//====================================//
//TESTARE CLASA 2 */
/*Produs a,b,c("C",6,7,8);
cout<<a;
cout<<c;
cin>>b;
cout<<(b);
a=b;
a=a+b;
c=a; /*
//====================================//

S-ar putea să vă placă și