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

Ocena systemu do rejestracji i logowania

Fiszki IT
Fiszki IT
0 głosów
147 wizyt
pytanie zadane 18 września 2018 w C i C++ przez Zimny. Nowicjusz (140 p.)

Witam, swoją przygode z c++ rozpocząłem jakies 5 dni temu, w tym czasie napisałem "program" do logowania oraz rejestracji. Prosiłbym o ocene kodu i o jakąś rade, co dalej. 

*kalkulator jest w innym pliku podpiętym wiec go tutaj nie ma.


#include "pch.h"
#include <iostream>
#include <string>
#include <fstream>
#include <windows.h>
using namespace std;


bool IsLoggedIn()
{
	string UserLogin, UserPassword, login, password;

	cout << "Podaj Login: "; cin >> UserLogin;
	cout << "Podaj Haslo: "; cin >> UserPassword;
	ifstream read("C:\\Users\\user\\PROGRAMY\\C++Program\\baza\\" + UserLogin + ".txt");
	getline(read, login);
	getline(read, password);

	if (login == UserLogin && password == UserPassword)
	{
		return true;
	}
	else
	{
		return false;
	}



}
int menu()
{
	int choice2;
	{
		Sleep(1000);
		system("cls");
		cout << "_______MENU GLOWNE_______" << endl;
		cout << "1. Kalkulator" << endl;
		cout << "2. xxxx" << endl;
		cout << "3. xxxxx" << endl;
		cout << "4. xxxxxx" << endl;
		cout << "5. Wyjscie" << endl;
		cout << "WYBOR: ";
		cin >> choice2;
		switch (choice2)
		{
		case 1:
		{
			cout << "Wybrales kalkulator" << endl;
			kalkulator();
		}
		break;

		case 2:
		{
			cout << "FUNKCJA W BUDOWIE." << endl;
			menu();
		}
		break;

		case 3:
		{
			cout << "FUNKCJA W BUDOWIE." << endl;
			menu();
		}
		break;

		case 4:
		{
			cout << "FUNKCJA W BUDOWIE." << endl;
			menu();
		}
		break;
		case 5:
		{
			exit(0);
		}

		default: cout << "Nie ma takiej opcji." << endl;
		}

	}
	exit(0);
}
int main()
{
	int choice;

	cout << "___________START_____________\n";
	cout << "1. Rejestracja\n2. Login\nTwoj Wybor: "; cin >> choice;


	if (choice == 1)
	{
		string login, password, repassword, UserLogin;


		cout << "Wybierz login: "; cin >> login;
		cout << "Wpisz haslo: "; cin >> password;
		cout << "Wpisz ponownie haslo: "; cin >> repassword;
		
		ifstream read("C:\\Users\\user\\PROGRAMY\\C++Program\\baza\\" + login + ".txt");
		getline(read, UserLogin);
		while (login == UserLogin)
		{
			cout << "\nUzytkownik o tej nazwie juz istnieje" << endl;
			cout << "Sprobuj ponownie." << endl;
			cout << "Wybierz login: "; cin >> login;
			cout << endl;		
						
		}
		while (repassword != password)
		{
			cout << endl << "Hasla nie zgadzaja sie!\nSprobuj ponownie." << endl << endl;
			cout << "Wpisz haslo: "; cin >> password;
			cout << "Potworz haslo: "; cin >> repassword;

		}
		while (repassword == password)
		{
			Sleep(1000);
			system("cls");
			cout << "Rejestracja zostala zakonczona!\n Nastepuje przeniesienie do  menu glownego!";
			Sleep(1000);
			system("cls");
			ofstream file;
			file.open("C:\\Users\\user\\PROGRAMY\\C++Program\\baza\\" + login + ".txt");
			file << login << endl;
			file << password;
			file.close();
			main();
				
		}

	}
	else if (choice == 2)
	{
		bool status = IsLoggedIn();

		if (!status)
		{
			cout << "Zly login" << endl;
			main();

		}
		else
		{
			cout << "Pomyslne logowanie" << endl;
			menu();
		}
	
	

	

	}
	else 
	{
		cout << "Nie ma takiego wyboru." << endl;
		system("PAUSE");
		return 0;
	}


	return 0;

}

 

1 odpowiedź

0 głosów
odpowiedź 19 września 2018 przez j23 Mędrzec (164,200 p.)
  • nie używaj std::endl, jak chcesz zakończyć linię, daj po prostu '\n'.
  • w C++ zamykanie programu funkcją exit nie jest poprawne. Wyjdź normalnie z funkcji main. A do awaryjnego wyskoku z funkcji/programu masz wyjątki (throw/try/catch).
  • wkompilowywanie na sztytwo ścieżek do katalogu użytkownika jest kiepskim pomysłem. Użyj getenv i zmiennej systemowej APPDATA.
  • nie powinieneś trzymać haseł w pliku w formie jawnej. Trzymaj ich hashe (link).

 

komentarz 19 września 2018 przez monika90 Pasjonat (22,940 p.)
Wywoływanie funkcji main to błąd.

Podobne pytania

0 głosów
3 odpowiedzi 454 wizyt
pytanie zadane 23 czerwca 2015 w PHP przez Krzysiek_34 Mądrala (5,470 p.)
–1 głos
1 odpowiedź 158 wizyt
pytanie zadane 18 lutego 2018 w PHP przez Polski Bonnie Nowicjusz (120 p.)
Porady nie od parady
Zadając pytanie postaraj się o poprawną pisownię i czytelne formatowanie tekstu.Kompozycja

84,757 zapytań

133,559 odpowiedzi

295,985 komentarzy

56,012 pasjonatów

Motyw:

Akcja Pajacyk

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

Oto dwie polecane książki warte uwagi. Pełną listę znajdziesz tutaj.

...