Реализовать имитацию входа в ОС - C#
Формулировка задачи:
Задача: реализовать имитацию входа в ОС. лог и пасс. пароль показывается звёздочками.
предусмотреть наличие в базе 5 пар логов и паролей. если такой существует и пароль верный показать Велком.
иначе выдать предупреждение и дать ещё 2 попытки. использовать sort arr list.
Вопросы:
1. правильно ли я использую ArrayList ?
2. говнокод или относительно нормально) в каких строках всё очень скверно(( ?
3. в реальном времени, когда вводишь правильный пароль, сразу тебя поздравляют с успешной авторизацией. не нужно подтверждать ввод Enter'ом. Как это исправить ? если вы конечно поняли о чём я)
p.s. Спасибо за внимание
using System; using System.Text; using System.IO; using System.Runtime.InteropServices; using System.Threading; using System.Collections; class Sample { public static void Main() { ArrayList ArrLog = new ArrayList(new string[] { "user", "admin", "moder", "owned767", "alex", "serguk", "monster" }); ArrayList ArrPass = new ArrayList(new string[] { "123456789", "admin", "_moder", "qwerty", "1488", "serj96", "omg123321" }); int TF = 3; bool tf = true; string login, str; Console.Write("Введите логин: "); login = Console.ReadLine(); ConsoleKeyInfo key; while (tf) { str = string.Empty; if (TF == 2) Console.WriteLine("\n\nНеправильный логин или пароль. Осталось 2 попытки"); else if (TF == 1) Console.WriteLine("\n\nНеправильный логин или пароль. Осталась 1 попытка"); else if (TF == 0) { Console.WriteLine("\n\nПока-пока"); tf = false; break; } Console.Write("Введите пароль: "); do { key = Console.ReadKey(true); if (key.Key == ConsoleKey.Enter) { break; } else if (key.Key == ConsoleKey.Backspace) { if (str.Length != 0) { str = str.Remove(str.Length - 1); Console.Write("\b \b"); } } else { str += key.KeyChar; Console.Write("*"); } for (int i = 0; i < ArrPass.Capacity; i++) { if ((ArrLog.LastIndexOf(login) == i) && (string)ArrPass[i] == str) { Console.WriteLine("\n\nСпасибо, что зашли, {0} !", ArrLog[ArrLog.LastIndexOf(login)]); tf = false; break; } } } while (true); TF--; } } }
Решение задачи: «Реализовать имитацию входа в ОС»
textual
Листинг программы
using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace AutorisationTest { class Program { static Dictionary<string, string> UserBase = new Dictionary<string, string>(); static void Main(string[] args) { UserBase.Add("user", "1234"); UserBase.Add("Admin", "0987"); UserBase.Add("Mary", "mary"); UserBase.Add("Nick", "nick"); UserBase.Add("Lisa", "lisa"); int counter = 0; while (true) { Console.Write("Enter user name: "); string name = Console.ReadLine(); Console.Write("Enter password: "); string pass = Console.ReadLine(); if (counter == 2) { Console.WriteLine("Your time is ends! Good luck!"); break; } if (UserBase.ContainsKey(name) && UserBase[name] == pass) { Console.WriteLine("Data is correct! You just entered the system!"); break; } else { counter++; Console.WriteLine("Wrong data! Try again."); } } Console.ReadLine(); } } }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д