Wątek przeniesiony 2014-10-27 00:09 z Kosz przez ŁF.

Parę pytań dotyczących programu-bankomatu

0

Witam, piszę aktualnie bankomat i mam takie pytanie, jego GUI będzie tak wyglądało:
user image

Chciałbym dowiedziec się jak zrobić:

  • aby po 1 razie wciśnięcia przycisku OK sprawdzało zgodność z ID, potem z PIN a jeszcze później akceptowało tranzakcję / wybór
  • jak zrobić wyświetlacz, który w zależnośći w której "fazie" będzie czyli np po zaakceptowaniu ID wyświetlił się napis "podaj pin"
1

Składowa klasy o nazwie np Stan typu całkowitego znakowego lub enum.
Na początku ma wartość A, po poprawnym sprawdzeniu zgodności z ID zmienia wartość na wartość B itd.

0
    enum Stan{
      poprawneID = 0;
      poprawnyPIN = 1;
      operacja = 2;
    };

coś takiego?

0

Częściowo, jak na razie zadeklarowałeś typ enum.

0

a coś takiego?

//pseudokod
void MainWindow::on_Penter_clicked()
{
	switch(akcja){
		case 0:
			if( PIN == wprowadzonyPIN)
				akcja = 1;
				break;
		case 1:
			if(ID == wprowadzoneID)
				akcja = 2;
				break;
		case 2:
			switch(co_dalej)
				{case 3:
					//wyplacanie gotowki
				case 4:
					//wyjscie
				default:
					//wyjscie
					break;
					}
	default:
		//wyjscie
		break;
	}
	end:
}
0
  1. Po kiego deklarowałeś enum skoro używasz zwykłego int'a?
  2. Przecież pole do wprowadzenia masz jedno na wszystko zaś widzę w kodzie cztery niezależne zmienne. WTF?
  3. Dalsze działania nie są na kliknięcie przycisku tylko na timer
0

Enum użyłem jako 1 rozwiązanie a switchem chciałem zaproponować 2.
Ad2. czyli zamiast 0,1,2,.. to np.

switch (akcja)
case poprawneID:
//jakas akcja
case poprawnyPIN:
//jakas akcja

???
Ad3. Czyli jak to zrobić?

podbijam

0

Rozrysuj sobie co chcesz osiągnąć.
Najprościej przedstawić twoje operacje w taki sposób:

GetId() = true ? GetPin() : "Błędny ID"
GetPin() = true ? GetInneAkcje : "Pin jest nieprawidłowy"

W jaki sposób możesz przechowywać informacje czy ID i PIN poprawne?
Ustawiaj flagi dla ID i PIN i na ich podstawie decyduj jakie operacje będziesz wykonywał.

(Za takie podbijanie tematu powinien być WARN.

dodanie znacznika <code class="cpp"> - @furious programming

0

Ad 2. Tak
Ad 3. Przeczytać o timerach i napisać.

1 użytkowników online, w tym zalogowanych: 0, gości: 1