Можете покритиковать мой код?
1) (Вкусовщина) стиль наименования не самый удачный. И переменные и функции называются одинаково - каждое слово с большой буквы без разделителей. Во всех массово применяемых стилях обычно переменные, функции и константы называются по разному. Например, переменные можно называть log_password. Функции и так оставить с большой буквы, а константы - полностью большими буквами.

2) обилие вложенных if. Практикуйте ранний выход. Например в Login() можно сделать так:
if (Data.is_open()) {
  std::cout << "Ошибка. У вас нет аккаунта" << std::endl;
  return;
}

И весь оставшийся код оказывается на 1 уровень выше.

3) Бесконечные рекурсивные вызовы - это плохо. Рано или поздно программа упадет с закончившимся стеком.
У вас Menu вызывает Login, который опять вызывает Menu. Да и сам Menu тоже.

Лучше сделать в Menu бесконечный цикл (while(true)) и или выходить из программы через exit(), или возвращать из Login, что надо завершаться и тогда в Menu делать break.
Мда. Любители крестов - мозохисты. Я-бы так написал.

using namespace std;

cout << "-Меню-\n";
Лаконично? 

И зачем вам такой перевод строки?
Что, хотите под DOS и Mac сразу писать? Готов спорить что не грозит.

А это что?
LogPassword == Password
Пароли так никто не проверяет. Есть функция которая сверяет хеши паролей. Потому что их не хранят никогда.
В базе тоже их не хранят.

А это что?
std::ofstream Data("Data.txt");
Всё пишем в один файл? Всех пользователей? И файл переписывается?