• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Pętla c++ - logowanie loginem i haslem

Object Storage Arubacloud
0 głosów
3,406 wizyt
pytanie zadane 4 czerwca 2020 w C i C++ przez vishi7 Początkujący (430 p.)
#include <string>
#include <cstdlib>
#include <ctime>
#include <iostream>
using namespace std;
int oblicz_pole_kwadratu(int bok)
{
 return bok * bok;
}
int oblicz_wartosc_funkcji(int argument)
{
 return 3*argument-1;
}

int main()
{
  string login, haslo; 
  int wybor, pole, x, war_funkcji;
  srand( time( NULL ) );
    int bok_kwadratu = (rand()%20)+1;
    cout << ":::::::LOGOWANIE:::::::::::" << endl;
    cout<<"Podaj login: ";
    cin>>login;
    cout<<"Podaj haslo: ";
    cin>>haslo;
    
  if((login=="log111") && (haslo=="has212")) {
    cout<<"\nJestes zalogowany!"<<endl;
    cout<<"Wybierz jedna z opcji:\n"<<"1. Oblicz pole kwadratu\n"<<"2. Oblicz wartość funkcji f(x) = 3x – 1\n"<<"3. Nie chce nic obliczac"<<endl;
    cin>> wybor;
    switch(wybor)
    {
    case 1:
        cout<<"Wybrales opcje nr 1"<<endl;
        cout << "Wylosowany bok kwadratu ma dlugosc: " << bok_kwadratu <<" cm"<< endl;
        pole = oblicz_pole_kwadratu(bok_kwadratu);
        cout << "Pole kwadratu o wylosowanym boku wynosi: "<< pole<<" cm2"<<endl;
        break;
    case 2:
        cout << "Wybrales opcje nr 2" <<endl;
        cout<<"Podaj wartość argmentu x: ";
        cin>>x;
        war_funkcji=oblicz_wartosc_funkcji(x);
        cout << "Wartosc funkcji f(x) = 3x -1 jest rowna: "<<war_funkcji<<endl;
        break;
    case 3:
         cout<<"Wybrales opcje nr 3"<<endl;
         cout<<"Nic nie chcesz obliczyc"<<endl;
        break;
    default: cout<<"Nie wybrano zadnej z powyzszych opcji"<<endl;
    } 
  } else cout<<"Podano nie poprawna pare danych login i haslo!"<<endl;

    
  system("pause");
  return 0;
}

Co mogłabym zrobić, aby program ponawiał probe podania loginu i hasła gdy podane przez użytkownika dane nie będą prawidłowe, jednak tylko po zalogowaniu ma możliwość wyboru opcji. Próbowałam pętle do while ale z marnym skutkiem ;(

2 odpowiedzi

+2 głosów
odpowiedź 4 czerwca 2020 przez wiktoz Mądrala (7,040 p.)
wybrane 4 czerwca 2020 przez vishi7
 
Najlepsza

Użyj pętli do-while

do
 {
     //pokazujesz ekran logowania
 }
 while ((haslo != podaneHaslo) || (login != podanyLogin));

 

komentarz 4 czerwca 2020 przez vishi7 Początkujący (430 p.)

No własnie w taki sposób nie działa, bo gdy podam prawidlowe dane, nie przechodze do wyboru opcji tylko znowu  pojawia sie ekran logowania

cout << ":::::::LOGOWANIE:::::::::::" << endl;
    do{
    cout<<"Podaj login: ";
    cin>>login;
    cout<<"Podaj haslo: ";
    cin>>haslo;
    } while((login=="log111") && (haslo=="has212"));
    
  if((login=="log111") && (haslo=="has212")) {
    cout<<"\nJestes zalogowany!"<<endl;
    cout<<"Wybierz jedna z opcji:\n"<<"1. Oblicz pole kwadratu\n"<<"2. Oblicz wartość funkcji f(x) = 3x – 1\n"<<"3. Nie chce nic obliczac"<<endl;
    cin>> wybor;
    switch(wybor)

 

komentarz 4 czerwca 2020 przez wiktoz Mądrala (7,040 p.)
Dałeś zły warunek w while.
Zobacz jaki ja mam wyżej.
komentarz 4 czerwca 2020 przez vishi7 Początkujący (430 p.)
A no tak, dziękuję bardzo za pomoc :)
0 głosów
odpowiedź 4 czerwca 2020 przez WiktroH Mądrala (6,550 p.)
Proponuję zrobić to przez użycie własnej funkcji np. logowanie();
1
komentarz 4 czerwca 2020 przez wiktoz Mądrala (7,040 p.)
Proponujesz uporządkowanie kodu, a nie rozwiązanie problemu.

Podobne pytania

0 głosów
0 odpowiedzi 103 wizyt
pytanie zadane 23 listopada 2019 w Visual Basic przez MaxPower Nowicjusz (120 p.)
–1 głos
2 odpowiedzi 150 wizyt
pytanie zadane 30 czerwca 2018 w Systemy operacyjne, programy przez gs30001 Nowicjusz (180 p.)
0 głosów
3 odpowiedzi 6,222 wizyt

92,584 zapytań

141,434 odpowiedzi

319,671 komentarzy

61,968 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...