Консольный мини-калькулятор с паролем - C#
Формулировка задачи:
Создайте консольное приложение. В начале работы производите запрос пароля, если пароль неверный проведите генерацию исключения. Далее в этой программе создайте мини калькулятор, который выполняет следующие операции: умножение, деление, возведение в степень, нахождение корня. (Все ошибки, которые могут возникнуть при выполнении программы, необходимо предусмотреть и исключить). на си шарпе. помогите пожалуйста
Решение задачи: «Консольный мини-калькулятор с паролем»
textual
Листинг программы
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace ProjectCsh
{
class Program
{
static void Main(string[] args)
{
string password = "12"; // здесь вводите пароль, по которому будет осуществляться вход
Console.WriteLine("Input the password :");
M: if (Console.ReadLine() == password) // Проверяем вводимый нами пароль, если совпадает, то пишем ОК, и пускаем с программу
{
Console.Clear();
Console.WriteLine("OK!");
Console.ReadKey();
Console.Clear();
menu();
}
else
{
Console.Clear();
Console.WriteLine("Incorrect!...Try again : ");
goto M; // Если нет - попробуйте ещё раз, господа
}
}
static void menu() // Сама "Менюшка" приложения, ниже то что выведет на экран
{
Console.Clear();
Console.WriteLine("Division - press 1");
Console.WriteLine("Multiplication - press 2");
Console.WriteLine("Involution - press 3");
Console.WriteLine("Radical - press 4");
Console.WriteLine("For exit press 0");
Console.WriteLine("Input: ");
int choose = 0;
try // Здесь читаем с консоли целое число, если же ввели не число ...
{
choose = Convert.ToInt32(Console.ReadLine());
}
catch // Говорим об этом здесь, пусть пробуют ещё раз
{
Console.Clear();
Console.WriteLine("It is not number! Try again...");
Console.ReadKey();
Console.Clear();
menu();
}
switch (choose) // Условный оператор, который и помогает определить, что же выбрал пользователь
{
case 1:
Division();
break;
case 2:
Multiplication();
break;
case 3:
Involution();
break;
case 4:
Radical();
break;
case 0:
return;
default: // Если введено число, которого нет в меню, пишем мол ошибка, пробуйте снова
Console.Clear();
Console.WriteLine("Error! Try again...");
Console.ReadKey();
Console.Clear();
menu();
break;
}
}
static void Division() // Функция "Деление"
{
Console.Clear();
Console.WriteLine("Please, input 2 numbers :");
double first = 0;
double second = 0;
try // Считываем 2 числа
{
Console.WriteLine("First : ");
first = Convert.ToDouble(Console.ReadLine());
Console.WriteLine("Second : ");
second = Convert.ToDouble(Console.ReadLine());
}
catch // Опять же, если это не числа, пытаемся опять, может кто-то упал лицом на клавиатуру?:?:?
{
Console.Clear();
Console.WriteLine("It is not number! Try again...");
Console.ReadKey();
Console.Clear();
Division();
}
try // Выводим результат на экран
{
Console.Clear();
Console.WriteLine($"{first} / {second} = {first/second}");
Console.ReadKey();
menu();
}
catch
{
Console.WriteLine("Invalid division on zero"); // Если делимся на ноль :)
Console.ReadKey();
Console.Clear();
Division();
}
}
static void Multiplication() // Умножение естессно
{
Console.Clear();
Console.WriteLine("Please, input 2 numbers :");
double first = 0;
double second = 0;
try
{
Console.WriteLine("First : ");
first = Convert.ToDouble(Console.ReadLine());
Console.WriteLine("Second : ");
second = Convert.ToDouble(Console.ReadLine());
}
catch
{
Console.Clear();
Console.WriteLine("It is not number! Try again...");
Console.ReadKey();
Console.Clear();
Multiplication();
}
Console.Clear();
Console.WriteLine($"{first} * {second} = {first * second}");
Console.ReadKey();
menu();
}
static void Involution() // Возведение в степень
{
Console.Clear();
Console.WriteLine("Please, input number and number of involution :");
double number = 0; // Число
double result = 0;
int INV = 0; // Степень
try
{
Console.WriteLine("Number : ");
number = Convert.ToDouble(Console.ReadLine());
result = number;
Console.WriteLine("Involution : ");
INV = Convert.ToInt32(Console.ReadLine());
}
catch
{
Console.Clear();
Console.WriteLine("It is not number! Try again...");
Console.ReadKey();
Console.Clear();
Multiplication();
}
for (int i = 0; i < INV; i++) // Функция возведения
{
result *= number;
}
Console.Clear();
Console.WriteLine($"{number} ^ {INV} = {result}");
Console.ReadKey();
menu();
}
static void Radical() // Квадратный корень числа
{
Console.Clear();
Console.WriteLine("Please, input number :");
double number = 0;
try
{
Console.WriteLine("Number : ");
number = Convert.ToDouble(Console.ReadLine());
}
catch
{
Console.Clear();
Console.WriteLine("It is not number! Try again...");
Console.ReadKey();
Console.Clear();
Radical();
}
try
{
Console.WriteLine($"SQRT({number}) = {Math.Sqrt(number)}");
Console.ReadKey();
menu();
}
catch (Exception ex)
{
Console.WriteLine(ex.ToString());
Console.ReadKey();
Console.Clear();
Radical();
}
}
}
}