Jump to content
H3xoR

[Medium]C++ challenge

Recommended Posts

Salut, am o provocare pentru voi.

Cerinte:

-Sa se scrie intr-un fisier numit "database.db" un nickname al unei persoane apoi sa se introduca o virgula dupa nick-ul respectiv si sa se mai scrie "true" fara ghilimele. Tinand cont de faptul ca este o baza de date, toate datele introduse trebuie sa ramana acolo chiar si dupa introducerea unui alt nickname. Daca introducem un alt nickname, se va scrie pe randum urmator.

-Sa se editeze intr-un fisier numit "database.db" acel "true", daca exista, al unui nickname, in "false". Restul datelor sa nu aiba de "suferit".

-Sa se scrie in consola nick-ul celor care au acel "true" in "database.db".

Good luck. :)

Edited by H3xoR
Link to comment
Share on other sites

:)) Dude, cine saracia isi pierde timpul cu asta. Ai scris si 'Medium' in thread. Nu vrei sa vezi nimic, nu cred ca raspunde cineva la un test aberant de clasa a V-a

"Tinand cont de faptul ca este o baza de date" - Din descrierea ta eu vad ca e un fisier amarat. Sau te refereai la BDB ? (berkeley db)

Link to comment
Share on other sites

:)) Dude, cine saracia isi pierde timpul cu asta. Ai scris si 'Medium' in thread. Nu vrei sa vezi nimic, nu cred ca raspunde cineva la un test aberant de clasa a V-a

"Tinand cont de faptul ca este o baza de date" - Din descrierea ta eu vad ca e un fisier amarat. Sau te refereai la BDB ? (berkeley db)

Daca afirmi ca e un "test aberant de clasa a V-a", sa te vad cum il rezolvi. Pana la urma e o provocare, care va simtiti in stare sa rezolvati, good luck, restul, duceti-va in "clasa a V-a".

""Tinand cont de faptul ca este o baza de date" - Din descrierea ta eu vad ca e un fisier amarat."" O baza de date poate fi considerata orice "fisier" care are o utilitate in retinerea datelor.

Link to comment
Share on other sites

hai ca eu tot nu am primit tema de vacanta, am facut-o pe a ta :D Nu stiu daca are bug-uri sau merge ceva prost...am rulat de 5-6 ori doar, m-a plictisit rau, dar este exact ce am facut semestrul asta la info (structuri de date).

Daca am scris prost sunt deschis la critica

#include<iostream>

#include<windows.h>

#include<fstream>

#include<string>

#include<conio.h>

using namespace std;

struct date{

char nick[31],val[6];

}v[200]; int i=0;

void citire()

{

ifstream f("database.db");

while(!f.eof())

{

f>>v.nick; f>>v.val;

i++;

}

f.close();

}

void afisare()

{int j;

for(j=0;j<i;j++)

cout<<v[j].nick<<" "<<v[j].val<<endl;

}

void scriere()

{int j;

ofstream f("database.db");

for(j=0;j<i;j++)

f<<v[j].nick<<" "<<v[j].val<<endl;

f.close();

}

void adaugare_nick()

{char a[31],b[6]; int gasit=0,j;

ofstream f;

f.open("database.db",ios::app);

cout<<"Nickname: "; cin>>a;

cout<<"Acces: "; cin>>b;

for(j=0;j<i && gasit==0;j++)

if(!strcmp(a,v[j].nick))gasit=1;

if(gasit==0)

{

if(!stricmp(b,"TRUE") || !stricmp(b,"FALSE")){strcpy(v.nick,a); strcpy(v.val,B); f<<v.nick<<" "<<v.val<<endl; i++;}

else cout<<"valoare accesului incorecta (TRUE sau FALSE)";

}else cout<<"nickname-ul deja este inregistrat";

f.close();

}

void editare()

{int j,gasit=0; char a[31],b[6];

cout<<"Nickname: "; cin>>a;

for(j=0;j<i && gasit==0;j++)

if(!strcmp(a,v[j].nick))

{gasit=1; cout<<"acces: "; cin>>b;

if(!stricmp(b,"TRUE") || !stricmp(b,"FALSE")){strcpy(v[j].val,B); scriere();}

else cout<<"valoare accesului incorecta (TRUE sau FALSE)";

}

if(gasit==0){cout<<"Nickname-ul nu exista in baza de date!"<<endl; cout<<"reinserati datele"<<endl; editare();}

afisare();

}

int main()

{int n;

citire();

while(1)

{

system("cls");

cout<<"adaugare nickname - [1] "<<endl;

cout<<"editare acces - [2] "<<endl;

cout<<"afisare database.db - [9] "<<endl;

cout<<"inchidere program - [0] "<<endl;

cout<<"tasta: "; cin>>n;

switch(n)

{

case 1:

adaugare_nick();

getch();

break;

case 2:

editare();

getch();

break;

case 0:

return 0;

case 9:

afisare();

getch();

break;

}

}

return 0;

}

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.



×
×
  • Create New...