2016-11-29 5 views
0

Мне нужно создать простую программу C# Sharp, которая принимает идентификатор пользователя и пароль в качестве ввода (строка типа). После 3 неправильных попыток пользователь должен быть отклонен.Простой C# логин с 3 попытками

Я начал, но я не уверен, как логика должна быть выполнена правильно.

using System; 
using System.Collections.Generic; 
using System.Linq; 
using System.Text; 
using System.Threading.Tasks; 

namespace UserId 
{ 
    class Program 
    { 
     static void Main(string[] args) 
     { 
      Console.WriteLine("Type username"); 
      String UserId1 = Console.ReadLine(); 
      Console.WriteLine("Type password"); 
      String Pass = Console.ReadLine(); 

      String UserIdCorrect = "test1"; 
      String PassCorrect = "password1"; 
      int MaxAttempts = 3; 



      Console.ReadKey(); 

      if (UserId1 != UserIdCorrect && Pass != PassCorrect) { 
       MaxAttempts++; 

      } 


      Console.ReadKey(); 

     } 
    } 
} 
+0

Добро пожаловать в [so], это звучит как курсовая работа, сначала попробуйте решить проблему самостоятельно. – Prisoner

+0

вы научились структурировать поток программы? –

+2

Пара указателей: то, что вы ищете, представляет собой цикл while. Кроме того, вам необходимо сохранить текущее количество попыток и сравнить его с максимальными попытками. Вы не должны увеличивать «MaxAttempts». – HebeleHododo

ответ

0

Прежде всего, прежде чем писать одну строку кода, попробуйте подумать об условных обозначениях в течение минуты или двух. Это похоже на то, чтобы «нанести пенопласт на лицо перед бритьем». Вы можете получить бритье даже без пены для бритья, но опыт не будет приятным ». Попробуйте эту ссылку для получения дополнительной информации [https://msdn.microsoft.com/en-us/library/ms229045(v=vs.110).aspx].

Теперь, перейдя к вашему вопросу, если мне нужно выполнить только ваше требование, этого кода будет достаточно. Здесь я принимаю «действительный» в качестве идентификатора для правильных учетных данных:

<code> 
    //Login Attempts counter 
    int loginAttempts = 0; 

    //Simple iteration upto three times 
    for (int i = 0; i < 3; i++) 
    { 
     Console.WriteLine("Enter username"); 
     string username = Console.ReadLine(); 
     Console.WriteLine("Enter password"); 
     string password = Console.ReadLine(); 

     if (username != "valid" || password != "valid") 
      loginAttempts++; 
     else 
      break; 
    } 

    //Display the result 
    if (loginAttempts > 2) 
     Console.WriteLine("Login failure"); 
    else 
     Console.WriteLine("Login successful"); 

    Console.ReadKey(); 
</code> 
+0

Спасибо @iSahilSharma, который также отвечает на мой вопрос, и совет действительно полезен :) – sylvann

0

Я думаю, вы новичок. Я прокомментировал код.

int maxAttempts = 3; 

// looping n (maxAttempts) times 
for(int i = 0; i < maxAttempts; i++) 
{ 
    // get input and check it 
} 

// do what ever you want here. 
// at least show up a message 

Многие способы. Как прокомментировал HebeleHododo, вы также можете использовать while-loop и проверить с if-else, если ваши maxAttempts достигнуты.

+3

Петля ничто не слишком жестока. Что делать, если я запускаю процедуру по ошибке? Просто «возвращайся» с соответствующим сообщением. –

+0

Если после 3 попыток логин должен завершиться неудачно, я бы скорее принудил пользователя также закрыть приложение вручную, вместо того, чтобы нажимать enter, и он закрывается. Вопрос вкуса. В любом случае сообщение обязательно должно отображаться. Отредактировано, чтобы удовлетворить вас;) – C4u

+1

Спасибо @ C4u, это сделано сейчас, и да, я только начал работать с C# – sylvann

0

Просто запустите цикл for 3 раза, и если пользователь по-прежнему вводит неправильную запись, а не просто отключает окно.

Смежные вопросы