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

question-closed Bankomat Kod- Błąd

Object Storage Arubacloud
0 głosów
778 wizyt
pytanie zadane 4 listopada 2018 w C i C++ przez Szarp Początkujący (270 p.)
zamknięte 5 listopada 2018 przez Szarp
#include <iostream>
#include <windows.h>
#include <time.h>
#include <stdio.h>
#include <cstdio>
#include <cstdlib>
#include <conio.h>
#include <sstream>
#include <fstream>
#include <stdlib.h>
#include <unistd.h>
#include <string.h>


using namespace std;

string PIN;
int liczba_prob=3, saldo, i,x ;
int main()

{
    fstream plik;
     plik.open("dane.txt", ios::out|ios::app);
     plik.open("dane.txt", ios::in);


     HANDLE hOut;
   hOut = GetStdHandle( STD_OUTPUT_HANDLE );

        SetConsoleTextAttribute( hOut, FOREGROUND_BLUE );

    cout << "Witam w banku";
        SetConsoleTextAttribute( hOut, FOREGROUND_RED );
    cout<<" AmberGold SA."<<endl;
        SetConsoleTextAttribute( hOut, FOREGROUND_BLUE );
    cout << "Prosze wprowadzic PIN: ";
        SetConsoleTextAttribute( hOut, FOREGROUND_GREEN );
    cin >> PIN;
system("cls");

        if ((PIN!="1111"))
    {


     for(PIN=="1111";){
            if(liczba_prob==0){
                cout<<"Karta zostala zablokowana. Zyce milego dnia ;-)"<<endl;
            }

            else{
                SetConsoleTextAttribute( hOut, FOREGROUND_RED );

            liczba_prob--;
             cout<<"Niepoprawne dane"<<endl;
             cout<<"Pozostalo "<<liczba_prob<<" proby.";

             cout << " Prosze wprowadzic PIN: ";
             cin >> PIN;


            }







                }


        else if(PIN=="1111")

            while((PIN=="1111"))
        {

                    SetConsoleTextAttribute( hOut, FOREGROUND_INTENSITY );
                    cout<<"[";
                for(int ladowanie=0; ladowanie<=20; ladowanie++){
                    cout<<"|";
                    Sleep(100);

                }
                cout<<"]"<<endl;
                system("PAUSE");
                system("cls");

                    SetConsoleTextAttribute( hOut, FOREGROUND_GREEN );

             cout<<"Poprawne dane"<<endl;


             for(int i;i=5;) {
                            cout <<endl;
            cout<<"  MENUE GLOWNE" <<endl;
                   SetConsoleTextAttribute( hOut, FOREGROUND_INTENSITY );
            cout<<" ---------------- "<<endl;
            cout<<left<<"|";
                    SetConsoleTextAttribute( hOut, FOREGROUND_RED );
            cout<<"  AmderGold SA.";
                     SetConsoleTextAttribute( hOut, FOREGROUND_INTENSITY );
            cout<<" |"<<endl;

            cout<<" ---------------- "<<endl;
                    SetConsoleTextAttribute( hOut, FOREGROUND_GREEN );
            cout<<" 1. Stan kata" <<endl;
            cout<<" 2. Wplac pieniadze" <<endl;
            cout<<" 3. Wyplac pieniodze" <<endl;
            cout<<" 4. Zmiana PIN'u " <<endl;
            cout<<" 5. KONIEC" <<endl;

            cout<<endl;
            i=getch();

            switch(i)
            {
                case '1':
                        cout<<"Masz aktualnie  "<< saldo-x <<" ziko"<<endl;

               system("PAUSE");
               system("cls");
               break;
                 case '2':
                        cout<<"Ile chcesz wplacic"<<endl;
                        cin>>saldo;
                        system("cls");
                break;
                 case '3':
                        cout<<"Ile chcesz wyplacic"<<endl;
                        cin>>x;
                        system("cls");
                break;
                 case '4':
                        cout<<"Podaj stary PIN: ";
                        cin>>PIN;
                        cout<<"Podaj nowy PIN: ";
                        system("cls");
                break;
                    case '5':
                        exit(0);

                break;




                system("cls");
                }

            }
            system("cls");
            return 0;
        }

}

Cześć mam problem z dwiema rzeczami

1. Pętla for() mi nie działa.

2. Jeśli podam najpierw niepoprawny a później poprawny PIN program się wyłącza.

PS Jeśli dam while() lub do..while() program zachowuje się jak tak ja w punkcie 2

komentarz zamknięcia: Problem został rozwiązany

1 odpowiedź

+1 głos
odpowiedź 5 listopada 2018 przez bilaw Bywalec (2,890 p.)
wybrane 6 listopada 2018 przez Szarp
 
Najlepsza

Cześć, nie przejrzałem dokładnie twojego kodu, ale odpowiem na pierwsze pytanie.
Pętla for nie ma prawa Ci zadziałać, bo nie zachowałeś odpowiedniej składni do tej instrukcji.
 

for(start; warunek; działanie) 
{
  // instrukcje do wykonania
}

start to polecenie, które zostanie wykonane przed rozpoczęciem działania pętli;
warunek to poprostu warunek sprawdzany przed każdym obiegiem. Jeżeli jego wartość jest równa 0 - pętla zostaje przerwana;
działanie (iterator) to polecenie wykonywane po każdym obiegu pętli;

popraw pętle
linia 45 for(PIN=="1111";) brak startu i działania
linia 93 for(int i;i=5;) brak działania 

Jeżeli uczysz się z kursu p. Zelenta to powtórz sobie odcinek o pętlach

Źródło

komentarz 5 listopada 2018 przez Szarp Początkujący (270 p.)
Wielkie dzięki lecz Nie działa nie tylko petla z 45 linijki .
komentarz 5 listopada 2018 przez bilaw Bywalec (2,890 p.)

Nie mam żadnego IDE w robocie więc nie dam rady ogarnąć tego poza wizualną obserwacją kodu. Od linii 41 do 70 w instrukcji wyboru IF zdaje mi się że masz jedną klamrę zamykającą za mało ;) tylko teraz nie ogarniam jak to rozgryźć 

if ((PIN!="1111"))
        {
            for(PIN=="1111";)
                {
                    if(liczba_prob==0)
                        {
                            cout<<"Karta zostala zablokowana. Zyce milego dnia ;-)"<<endl;
                        }
 
                    else
                        {
                            SetConsoleTextAttribute( hOut, FOREGROUND_RED );
                            liczba_prob--;
                            cout<<"Niepoprawne dane"<<endl;
                            cout<<"Pozostalo "<<liczba_prob<< " proby.";
         
                            cout << " Prosze wprowadzic PIN: ";
                            cin >> PIN;
                        }
        }

Pisz proszę czytelniejszy kod, bo odstraszasz chętnych do pomocy. Sam jestem początkujący, ale się staram ;)

1
komentarz 5 listopada 2018 przez Szarp Początkujący (270 p.)

Dzięki wielkie za pomocwink 

komentarz 6 listopada 2018 przez bilaw Bywalec (2,890 p.)

Spoko yes

Podobne pytania

0 głosów
0 odpowiedzi 1,159 wizyt
+1 głos
2 odpowiedzi 842 wizyt
pytanie zadane 16 października 2018 w C i C++ przez Drax Użytkownik (630 p.)
0 głosów
2 odpowiedzi 672 wizyt
pytanie zadane 17 grudnia 2015 w C i C++ przez varazand Początkujący (320 p.)

92,536 zapytań

141,377 odpowiedzi

319,452 komentarzy

61,920 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!

...