c++, heslo_subory

Programovacie jazyky, rady, poradňa...
johny3212
Star
Star
Používateľov profilový obrázok
Príspevky: 532
Registrovaný: 17 feb 2008, 19:56
Bydlisko: Terchova
Kontaktovať používateľa:

Príspevok od používateľa johny3212 »

potreboval by som poradit v programu, robim program pre registracie a prihlasovanie uzivatelov, mam us celkom vyriesene prihlasovanie aj zmena hesla, ale nemozem poriesit dobre pridavanie novych registracii, ako by by ste to vyriesili logicky, pomoste, skratka potrboval by som pocas behu programu vytvorit novy subor.txt, ale tak ze zadm napr JANO a mi vytvori subor JANO.txt, ked toto pojde budem rad a pojdem daal hehe, diik za radu

zdrojak: pre spravne fungovanie este treba vytvorit subor (meno.txt), alebo dajte ete to do mainu

Kód: Vybrať všetko

               ofstream heslo_suboru; // deklaracia suborovej premennej  
                heslo_suboru.open("meno.txt"); // otvorenie suboru
                heslo_suboru <<"johny";
                heslo_suboru <<" "<<"1234";
                heslo_suboru.close(); 
zdrojak

Kód: Vybrať všetko


//============================================================================
// Name        : heslo.cpp
// Author      : johny
// Version     :
// Copyright   : Your copyright notice
// Description : Heslo C++, Ansi-style
//============================================================================

#include <iostream>
#include <cstdlib>
#include <fstream.h>

using namespace std;

void Hlavna_heslo();
void Editacia_hesla();
int main();
void Uvitacie_menu();
void Nova_registracia();


string Overenie_hesla(string heslo, string meno);
//hukcia pre overenie mena a hesla
string Overenie_hesla(string heslo, string meno)
  {
    string ulozene_meno;
    string ulozene_heslo;
   
   
    //cita zo suborov meno  a heslo
    ifstream meno_suboru2;
    meno_suboru2.open("meno.txt");
    meno_suboru2 >> ulozene_meno;
    meno_suboru2 >> ulozene_heslo;
    meno_suboru2.close();
/*
    ifstream heslo_suboru2;
    heslo_suboru2.open("heslo.txt");
    heslo_suboru2 >> ulozene_heslo;
    heslo_suboru2.close();
*/
    //koniec citania

    if (ulozene_meno==meno)
      {

        if (ulozene_heslo==heslo)
          {
            cout<<"Heslo bolo spravne \n";
            cout <<endl;
            main();

          }
        else
          {
            cout<<"Vami zadane heslo bolo nespravne \n";
            Hlavna_heslo();
          }
      }
    else
      {
        cout<<"Vami zadane heslo alebo meno bolo nespravne \n";
        Hlavna_heslo();
      }

    //============================================================================   //============================================================================
    return heslo;

  }

void Hlavna_heslo() //hunkcia pre zadanie mena a hesla
  {
    string b, d, exit;

    exit="exit";

    cout <<endl;
    cout << "Zadaj Meno:\t";
    cin >>d;

    if (d==exit)
      {
        cout<<"papaaaaa \n";
      }
    else
      {

        cout << endl;
        cout << "Zadaj heslo:\t";
        cin >>b;
        if (b==exit)
          {
            cout<<"papaaaaa \n";
          }
        else
          {
            Overenie_hesla(b, d);
          }
      }
  }

void Editacia_hesla() //zmena hesla
  {
    string ulozene_meno2;
    string ulozene_heslo2;
    string povodne_heslo;
    string zmena_hesla;
    string potvrtdenie_hesla;
    string zadaj_meno, pommeno;
    string doc;
       
       doc="johny.txt";

    //cita zo suborov meno  a heslo
    ifstream meno_suboru2;
    meno_suboru2.open("meno.txt");
    meno_suboru2 >> ulozene_meno2;
    meno_suboru2 >> ulozene_heslo2;
    meno_suboru2.close();
/*
    ifstream heslo_suboru2;
    heslo_suboru2.open("heslo.txt");
    if(heslo_suboru.good())
    heslo_suboru2 >> ulozene_heslo2;
    heslo_suboru2.close();
*/
    //koniec citania
    do
      {

        cout <<endl;
        cout << "Zadaj Meno\t:";
        cin >>zadaj_meno;

        cout<<"Zadaj heslo\t:";
        cin >>povodne_heslo;
        cout <<endl;

        if ((povodne_heslo==ulozene_heslo2) && (zadaj_meno==ulozene_meno2)) //porovnava stare heslo z novym zo suboru

          {
            cout<<"Zadaj nove heslo\t:";
            cin >>zmena_hesla;

            cout<<"Potvrdte nove heslo\t:";
            cin >>potvrtdenie_hesla;
            cout <<endl;
            if (zmena_hesla==potvrtdenie_hesla)
              {
                //zmeni heslo zapisanim do suuboru
                ofstream heslo_suboru; // deklaracia suborovej premennej  - je typu ofstream
                heslo_suboru.open("meno.txt"); // otvorenie suboru
                heslo_suboru <<ulozene_meno2;
                heslo_suboru <<" "<<zmena_hesla;
                heslo_suboru.close();
                cout <<endl;
                cout<<"A teraz sa mozete prihlasit s novym heslom";
                cout <<endl;
                cout <<"Pre ukoncenie napis pocas prihlasovana ""exit""\n";
                cout <<endl;
                Hlavna_heslo();
              }

            else
              {
                cout<<"Nespravne ste potvrdili heslo\n";
              }
          }
        else
          {
            cout<<"Nespravne ste zadali meno alebo heslo heslo\n";
          }
      }while ((povodne_heslo!=ulozene_heslo2)
        or (zmena_hesla!=potvrtdenie_hesla) or (zadaj_meno!=ulozene_meno2));

      }

void Nova_registracia()
  {
   
  }

void Uvitacie_menu()
  {
    char g;
      cout<<"1. Prihlasit sa do systemu\n";
      cout<<"2. Zmenit heslo\n";
      cout<<"3. Nova registracia\t"<<"volba::";
      do
        { //zaciatok cyklu, ochrana pri nespravnom vybere
          cin>>g;
          if ((g!='1') && (g!='2') && (g!='3'))
            { //podmienka if pre nespravny vyber
              cout<<"Zadaj 1 alebo 2:\t"<<"volba::";
            }
        } while ((g!='1') && (g!='2') && (g!='3'));
      cout <<endl;

      switch (g)
        // switch s parametrom r, kt nadobuda hodnoty
        { //zaciatok switchu
        case '1': //prva moznost
          cout <<"Pre ukoncenie napis pocas prihlasovana " "exit" "\n";
          Hlavna_heslo();
          break; //ukoncenie
        case '2':
          Editacia_hesla();
          break; // ukoncenie
        case '3':
          {
            cout<<"Momentalne nedostupne";
            cout<< endl;
            main();
          }
          break; // ukoncenie
        default: //ak sa zada ina hodnota v switchi
          cout << "Zle zadanie!";

        }
     
  }

int main()
  {

    Uvitacie_menu();

    return 0;
  } 
pre windowsakov, tam et dopiiste system pauze dole, nie je nutne asi
poltergeist
Novice
Novice
Príspevky: 8
Registrovaný: 03 júl 2008, 22:13
Bydlisko: root

Príspevok od používateľa poltergeist »

A mozem sa opytat naco v C++?
Radsej uzi PHP + MYSQL ...
chrono
VIP
VIP
Používateľov profilový obrázok
Príspevky: 7127
Registrovaný: 25 dec 2006, 15:17

Príspevok od používateľa chrono »

A keď to bude niekomu dávať, tak k pár kilobajtovému skriptu v Php bude pridávať niekoľko desiatok megabajtový Apache+MySQL+Php. :roll:
x0_0x
Light Star
Light Star
Príspevky: 210
Registrovaný: 05 mar 2008, 21:18
Bydlisko: 127.0.0.1[localhost]
Kontaktovať používateľa:

Príspevok od používateľa x0_0x »

Neviem ci som presne pochopil co chces a ten zdrojak sa mi studovat nechcelo ale toto by ti mohlo pomoct

Kód: Vybrať všetko

#include <iostream>
#include <fstream>
using namespace std;
int main()
{
    
char subor[50];
cout << "Meno suboru(max 50 znakov): ";
cin >> subor;
strcat(subor, ".txt");
ofstream file(subor);


return 0;
    }
johny3212
Star
Star
Používateľov profilový obrázok
Príspevky: 532
Registrovaný: 17 feb 2008, 19:56
Bydlisko: Terchova
Kontaktovať používateľa:

Príspevok od používateľa johny3212 »

Ten program us maam skoro hotovy, som to vyriesil uplne inak vsetko a nacitavanie mena aj helsa mam z jedneho suboru, tym ze subor sa prehladava po paroch slov oddelenych medzerou aj pridavanie noveho mena a hesla pripisuje na koniec suboru, atd., ale ma to nedostatky, takze dal si mi klinec do hlavy, dik za tie riadky, to som hladal a nevedel som to napisat presne ako.

takto neak som vyriesel nacitko:

Kód: Vybrať všetko

   ifstream meno_suboru2;
   meno_suboru2.open("meno.txt");
   
    if (meno_suboru2.is_open())
     {    
       do  {
       
    meno_suboru2 >> ulozene_meno;
    meno_suboru2 >> ulozene_heslo;
    
    if (meno_suboru2.eof())
          {
          cout <<endl;
          cout << "Tento ucet sa nenachadza v nasej databaze \n"; 
          cout <<endl;
          Overenie_hesla();
           } 
             }
       while ((ulozene_meno!=meno) && (ulozene_heslo!=heslo));
   
    meno_suboru2.close();
     }
    else   cout << "Unable to open file"; 
      
a takto vkladanie


Kód: Vybrať všetko

ofstream heslo_suboru; 
                    
     heslo_suboru.open("meno.txt", ios::app); 
        if (heslo_suboru.is_open())
            {
             heslo_suboru <<"\n"<<nove_meno;
             heslo_suboru <<" "<<nove_heslo;
             heslo_suboru.close();
            }
       else 
         {
         cout << "Unable to open file";
         }
        Uvitacie_menu();
ale ako pisem ma to nedostatky, napr if (meno_suboru2.eof()), tam robi sarapatu pri nacitku poslednej reg., takysto ten while ((uloz...., nepusti pri zadani bludu, idem to spravit, ako si mi napiisal, tak diik.
Napísať odpoveď