Patrząc po kodzie który podałeś masz jeszcze sporo do nauki, ale jak na początkującego nie jest źle.
Dam ci pewną radę, nie poddawaj się. W karierze programisty zawsze będziesz borykał się błędami, czy jesteś początkującym czy nie. Cały czas będziesz się uczył, nie ważne ile lat spędzisz w branży.
Skończ kurs p. Zelenta, do tego naucz się programowania obiektowego. Ucz się dalej i eksperymentuj. Jeśli poczujesz się komfortowo z C++ zajrzyj na SPOJa
A oto moja wersja programu
#include <iostream>
#include <fstream>
#include <string>
struct User {
std::string helpPIN;
std::string login;
std::string haslo;
std::string nick;
};
static User* user = nullptr;
bool loginUser();
User* registerUser();
void controlPanel();
int main() {
bool programStop = false;
while(!programStop){
char wybor;
std::cout << "Zaloguj sie lub Zarejestruj!" << std::endl;
std::cout << "[a] - Rejestracja" << std::endl;
std::cout << "[b] - Logowanie" << std::endl;
std::cout << "[i] - Info" << std::endl;
std::cout << "[q] - Wyjscie" << std::endl;
std::cout << "=> ";
std::cin >> wybor;
switch (wybor){
case 'a':
user = registerUser();
break;
case 'b':
if(loginUser()){
controlPanel();
} else {
std::cout << "Niepoprawny login lub haslo"<< std::endl;
}
break;
case 'i':
std::cout << "Gdy uruchomisz panel komend i wpiszesz w nim 'admin' uruchomisz panel pomocy." << std::endl;
std::cin.get();
break;
case 'q':
programStop = true;
break;
default:
std::cout << "Nie ma takiej opcji!" << std::endl;
break;
}
}
if(user)
delete user;
return 0;
}
// Loguje użytkownika do systemu.
// Zwraca true jeśli operacja się powiodła. W innych przypadkach false
bool loginUser() {
// Najpierw trzeba uzyskać bazę danych użytkowników
// Nie wiem jak to zostanie wykonane, więc zostawiam jedynie ten warunek
if(!user){
return false;
}
std::string login;
std::string haslo;
std::cout << "==== Logowanie ====" << std::endl;
std::cout << "[Login] > ";
std::cin >> login;
std::cout << "[Haslo] > ";
std::cin >> haslo;
if(login == user->login && haslo == user->haslo){
std::cout << "========Logowanie pomyslne======== \n\n" << std::endl;
return true;
} else {
return false;
}
}
// Rejestruje użytkownika w systemie
User* registerUser() {
User* rUser = new User();
std::cout << "==== Rejestracja ====" << std::endl;
std::cout << "Podaj Nazwe uzytkownika => ";
std::cin >> rUser->nick;
std::cout << "Podaj PIN do panelu pomocy => ";
std::cin >> rUser->helpPIN;
std::cout << "Podaj login => ";
std::cin >> rUser->login;
std::cout << "Podaj haslo => ";
std::cin >> rUser->haslo;
std::cout << "==== Rejestracja pomyslna ====\n\n" << std::endl;
return rUser;
}
// Wyswietla panel pomocy
void helpDesk(){
bool correctPIN = false;
while(true){
if(!correctPIN){
std::string PIN;
std::cout << "==== Panel pomocy ====" << std::endl;
std::cout << "[PIN] > ";
std::cin >> PIN;
if (user->helpPIN == PIN) {
correctPIN = true;
}
} else {
std::string back;
std::cout << "Oto Tajna receptura na paczki" << std::endl;
std::cout << "Wpisz 'back' aby wrucic!" << std::endl;
std::cout << "=> ";
std::cin >> back;
if(back == "back"){
break;
}
}
}
}
// Wyswietla panel komend
void controlPanel(){
while(true){
std::cout << "========" << std::endl;
std::string wybor;
std::cout << "Witaj " << user->nick << '!' << std::endl;
std::cout << "[/help] - Pomoc" << std::endl;
std::cout << "[/los] - Zagraj w los" << std::endl;
std::cout << "[/wyloguj] - Wyloguj" << std::endl;
std::cout << "=> ";
std::cin >> wybor;
if (wybor=="/help") {
helpDesk();
} else if (wybor == "/los"){
// Zagraj w los
} else if (wybor == "/wyloguj"){
break;
}
}
}