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

Nie mogę zrobić programu

Object Storage Arubacloud
0 głosów
450 wizyt
pytanie zadane 29 czerwca 2019 w C i C++ przez KosaTV Obywatel (1,260 p.)
edycja 29 czerwca 2019 przez ScriptyChris

Witam od pewnego czasu zastanawiam się czy nie jestem za słaby aby zostać programistą bo mając wiedzę na temat pentli switch'y po odc. 6 pana Mirosława nie potrafię zrobić programu a raczej potrafię ale ma on dużo błędów

i moje pytanie nie dotyczy tego co poprawić aby program nie miał błędów, chociaż był bym wdzięczny gdy by ktoś pomógł mi usunąć te błędy. Wracając do rzeczy, chodzi mi o to czy to normalne że nie potrafię zrobić takiego programu mając wiedzę tylko z 6 odc. Pana Mirosława czy po prostu jestem za słaby i  nie powinienem być programistą. Dodam tylko że program jest nie skończony gdyż prubuję rozwiązać problemy ale nie potrafię.
 

#include <iostream>
#include <fstream>
#include <windows.h>
#include <cstdlib>
#include <string>
using namespace std;
string wruc;
string passwordPIN;
string PIN;
string login;
string haslo;
string x;
string y;
string wybor2;
string nick;
string ok;
char wybor;
int main()
{
    cout << "Zaloguj siê lub Zarejestruj!" << endl;
    cout << "Rejestracja - a" << endl;
    cout << "Logowanie - b" << endl;
    cout << "INFO - i" << endl;
    cin >> wybor;

    switch (wybor)
    {

case 'a':

    system("cls");
    cout << "Podaj Nazwe uzytkownika: ";
    cin >> nick;
    cout << "Podaj PIN do panelu pomocy: ";
    cin >> PIN;
    cout << "Podaj login: ";
    cin >> login;
    cout << "Podaj haslo: ";
    cin >> haslo;
    system ("cls");
    cout << "Teraz sie zaloguj!" << endl;
    cout << "Podaj login: ";
    cin >> x;
    cout << "Podaj haslo: ";
    cin >> y;
    break;

case 'b':

    cout << "Podaj login: ";
    cin >> x;
    cout << "Podaj haslo: ";
    cin >> y;
    break;

case 'i':

    cout << "Gdy uruchomisz panel komend i wpiszesz w nim 'admin' uruchomisz panel pomocy." << endl;
    cin >> ok;
    break;

default:

    cout << "Nie ma takiej opcji!" << endl;
    cin >> wybor;
    break;

    }

        while ((login!=x)||(haslo!=y))
    {
        cout << "Nieudalo sie zalogowac, sprubuj jeszcze raz" << endl;
        cout << "Podaj login: ";
        cin >> x;
        cout << "Podaj haslo: ";
        cin >> y;

 if ((login==x)&&(haslo==y))
    {
        cout << "Logowanie";
        Sleep(750);
        system("cls");
        cout << "Logowanie.";
        Sleep(750);
        system("cls");
        cout << "Logowanie..";
        Sleep(750);
        system("cls");
        cout << "Logowanie...";
        Sleep(750);
        system("cls");
        cout << "Zalogowano pomyslnie!";
        Sleep(750);
        cout << "Witaj! " << nick << endl;
        cout << "Co chcesz zrobic!" << endl;
        cout << "Uruchom panel komend - /help" << endl;
        cout << "Zagraj w los - /los" << endl;
        cin >> wybor2;
    }
    }

     while (wybor2=="/help")
    {
        cout << "Wlaczono panel pomocy." << endl;
        cout << "wpisz haslo: ";
        cin >> passwordPIN;

    if (PIN==passwordPIN)
    {
        cout << "Oto Tajna receptura na paczki" << endl;
        cout << "Wpisz 'back' aby wrucic!" << endl;
        cin >> wruc;
    }
        else if (passwordPIN=="admin")
    {

        cout << "Twoj kod to: " << PIN << endl;
        cout << "Wpisz 'back' aby wrucic!" << endl;
        cin >> wruc;

    }

while (wruc == "back")
    if ((login== x) && (haslo == y))
    {
        cout << "Co chcesz zrobic!" << endl;
        cout << "Uruchom panel komend - /help" << endl;
        cout << "Zagraj w los - /los" << endl;
        cin >> wybor2;
    }
    }
while (ok == "ok")
    if (wybor == 'i')
{
    cout << "Zaloguj siê lub Zarejestruj!" << endl;
    cout << "Rejestracja - a" << endl;
    cout << "Logowanie - b" << endl;
    cout << "INFO - i" << endl;
    cin >> wybor;
}

    return 0;
}

 

komentarz 29 czerwca 2019 przez wiktoz Mądrala (7,040 p.)
Kod wstawiamy w bloczek "code".

Pokaż jaki błąd się wyświetla...
komentarz 29 czerwca 2019 przez j23 Mędrzec (194,920 p.)

cout << "Nieudalo sie zalogowac, sprubuj jeszcze raz" << endl;

Pr0tip: spróbuj.

komentarz 29 czerwca 2019 przez KosaTV Obywatel (1,260 p.)
Tak wiem że są błędy ale ciężko mi jest pisać bez polskich znaków
komentarz 29 czerwca 2019 przez KosaTV Obywatel (1,260 p.)
Jest wiele błędów ale najbardziej interesuje mnie dlaczego po zakończeniu pentli program się wyłącza i czy można temu zapobiec
komentarz 29 czerwca 2019 przez Dawid Markiewicz Obywatel (1,590 p.)
pętli*

2 odpowiedzi

0 głosów
odpowiedź 29 czerwca 2019 przez Marcin Siniarski Gaduła (4,420 p.)

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;
		}
	}
}

 

komentarz 29 czerwca 2019 przez KosaTV Obywatel (1,260 p.)
Dzięki za miłe słowa i rady, napewno z nich skorzystam. Pozdrawiam i jeszcze raz wielkie dzięki.
0 głosów
odpowiedź 29 czerwca 2019 przez Dawid Markiewicz Obywatel (1,590 p.)
Też na początku mialem problem z podstawowymi rzeczami, nie wiedzialem dlaczego w jednym miejscu sa klamry a w innym nie ale po zakonczeniu kursu u pana Zelenta kupilem sobie ksiązke szkola programowania Stephena Praty w ktorej dokladnie bylo opisane dzialanie kazdej rzeczy w jezyku c++ co pomoglo mi je zrozumiec i czuc sie w pisaniu programow duzo swobodniej zamiast zwyczajnie znac z pamieci konstrukcje tych rzeczy

Podobne pytania

0 głosów
0 odpowiedzi 96 wizyt
0 głosów
2 odpowiedzi 2,320 wizyt

92,576 zapytań

141,426 odpowiedzi

319,652 komentarzy

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

...