Приветствую всех !
Начал я изучать C# , добрался до цикла do - while , и сделал свое первое творение
И так , представляю вашему вниманию консольный калькулятор :
[Ссылки могут видеть только зарегистрированные пользователи. ]
Делал с помощью урока , коментил от себя , прошу строго не судить Если есть ошибки то говорите
Код:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace doWhile
{
class Program
{
static void Main(string[] args)
{
bool quit = false; // Объявление переменной и присваивание её значение false
bool flag = false;
float first = 0;// Объявление переменной и присваевание ей значения 0
float second = 0;// Объявление переменной и присваевание ей значения 0
char operation = '\0'; // Объявление оператора
Console.WriteLine(); // Отступ
Console.ForegroundColor = ConsoleColor.DarkGreen; // Изменение цвета инструкции
Console.WriteLine("+ : сложение чисел "); // Инструкция
Console.WriteLine("- : разница чисел "); // Инструкция
Console.WriteLine("* : умножение чисел "); // Инструкция
Console.WriteLine("/ : деление чисел "); // Инструкция
Console.WriteLine("q : выход из программы"); // Инструкция
Console.WriteLine();
Console.ForegroundColor = ConsoleColor.Green; // Изменение цвета
do // Действие цикла
{
try // Делаем то что в блоке , если же не получаеться то переходим в catch
{
Console.Write("Введите первое число : "); // Вывод на консоль
first = float.Parse(Console.ReadLine()); // Выбор первого числа
Console.Write("Введите второе число : ");// Вывод на консоль
second = float.Parse(Console.ReadLine());// Выбор второго числа
Console.Write("Укажите операцию : "); // Вывод на консоль
operation = char.Parse(Console.ReadLine()); // Выбор операции
}
catch
{
flag = true;
Console.ForegroundColor = ConsoleColor.Red; // Изменение цвета консоли в данном блоке
Console.WriteLine("\aВнимательно читайте инструкцию");//Вывод на консоль
Console.ForegroundColor = ConsoleColor.Green; // Возвращаем цвет
}
if(!flag) // значение true
switch (operation) // Оператор switch
{
case '+' : Console.WriteLine ("Сумма чисел составляет : "+ (first + second)); break;// Сложение чисел
case '-' : Console.WriteLine ("Разница числе составляет : "+ (first - second)); break;// Разность чисел
case '*' : Console.WriteLine ("Произведение чисел составляет : "+ first * second); break;// Произведение
case '/' : Console.WriteLine ("Деление числе составляет : "+ first / second); break;// Деление
case 'q' : quit = true ; break; // Выход из программы
default:
{
Console.ForegroundColor = ConsoleColor.Red;
Console.WriteLine("\aВнимательно читайте инструкцию");
Console.ForegroundColor = ConsoleColor.Green;
break; // Если не выполняються выше перечисленные операции то выводиться на консоль предупреждение.
}
}
flag = false; // Возвращение значения false
}
while (!quit); // Выход
}
}
}
[Ссылки могут видеть только зарегистрированные пользователи. ]
Последний раз редактировалось Awesome kiss; 25.09.2012 в 19:43.
Re: Консольный калькулятор с помощью цикла do - while
Цитата:
Сообщение от Nickitee
посмотри внимательно зачем нужен флаг "quit".
А он и не надо... просто использовать
do {...}
while(true);
Добавлено через 20 минут
Переделал код, удалены переменные: flag, quit. А также if. Сохранена работоспособность... Написал коменты в измененных частях...
Код:
do
{
try
{
Console.Write("Введите первое число : ");
first = float.Parse(Console.ReadLine());
Console.Write("Введите второе число : ");
second = float.Parse(Console.ReadLine());
Console.Write("Укажите операцию : ");
operation = char.Parse(Console.ReadLine());
}
catch
{
Console.ForegroundColor = ConsoleColor.Red;
Console.WriteLine("\aВнимательно читайте инструкцию");
Console.ForegroundColor = ConsoleColor.Green;
continue; // переходит к while(), пропускает весь код до него.
}
switch (operation)
{
case '+': Console.WriteLine("Сумма чисел составляет : " + (first + second)); break;
case '-': Console.WriteLine("Разница числе составляет : " + (first - second)); break;
case '*': Console.WriteLine("Произведение чисел составляет : " + first * second); break;
case '/': Console.WriteLine("Деление числе составляет : " + first / second); break;
case 'q': return; // Выход из программы
default:
{
Console.ForegroundColor = ConsoleColor.Red;
Console.WriteLine("\aВнимательно читайте инструкцию");
Console.ForegroundColor = ConsoleColor.Green;
break;
}
}
}
while (true); // Выход
Последний раз редактировалось Sinyss; 26.09.2012 в 01:11.
Причина: Добавлено сообщение
Re: Консольный калькулятор с помощью цикла do - while
Sinyss, в вашем коде "калькулятор" закрывается после завершения действия. ( по мойму не удобно). А вот в коде из первого поста он будет закрыт только после нажатия "q".
Re: Консольный калькулятор с помощью цикла do - while
Ну зачем все так усложнять
Можно же написать калкулятор уравнений
[Ссылки могут видеть только зарегистрированные пользователи. ]
Подключаем к проекту библиотеку Microsoft.JScript
[Ссылки могут видеть только зарегистрированные пользователи. ]
А потом пишем 20 строк кода
Код:
using System;
using Microsoft.JScript;
using Microsoft.JScript.Vsa;
class Program
{
static void Main()
{
while (true)
{
Console.Write("Введите уравнение: ");
try
{
var res = Eval.JScriptEvaluate(Console.ReadLine(), VsaEngine.CreateEngine());
Console.WriteLine("Ответ: " + res);
}
catch { Console.WriteLine("Ошибка"); }
}
}
}
________________ TwinkDB - твинки любого игрока, их дата создания, последний онлайн, статус удаления и прочее
Skype - freepvps
ICQ - 412705115
[Ссылки могут видеть только зарегистрированные пользователи. ] - ставкобот [Ссылки могут видеть только зарегистрированные пользователи. ] - общение в КЧ через смартфон
Последний раз редактировалось FreePVP))); 01.10.2012 в 20:19.
Re: Консольный калькулятор с помощью цикла do - while
Цитата:
Сообщение от Skilful
Sinyss, в вашем коде "калькулятор" закрывается после завершения действия. ( по мойму не удобно). А вот в коде из первого поста он будет закрыт только после нажатия "q".
Re: Консольный калькулятор с помощью цикла do - while
Цитата:
Сообщение от Sinyss
Потому что они не для этого предназначены...
А для чего еще нужны калькуляторы, если не для удобных вычислений?
________________ TwinkDB - твинки любого игрока, их дата создания, последний онлайн, статус удаления и прочее
Skype - freepvps
ICQ - 412705115
[Ссылки могут видеть только зарегистрированные пользователи. ] - ставкобот [Ссылки могут видеть только зарегистрированные пользователи. ] - общение в КЧ через смартфон
Re: Консольный калькулятор с помощью цикла do - while
Цитата:
Сообщение от FreePVP)))
Ну зачем все так усложнять
Можно же написать калкулятор уравнений
[Ссылки могут видеть только зарегистрированные пользователи. ]
Подключаем к проекту библиотеку Microsoft.JScript
[Ссылки могут видеть только зарегистрированные пользователи. ]
А потом пишем 20 строк кода
Код:
using System;
using Microsoft.JScript;
using Microsoft.JScript.Vsa;
class Program
{
static void Main()
{
while (true)
{
Console.Write("Введите уравнение: ");
try
{
var res = Eval.JScriptEvaluate(Console.ReadLine(), VsaEngine.CreateEngine());
Console.WriteLine("Ответ: " + res);
}
catch { Console.WriteLine("Ошибка"); }
}
}
}
Для меня это сложно , я делал с помощью того что понимаю
Re: Консольный калькулятор с помощью цикла do - while
Sinyss, ахах, ну в принципе да, только вот такие функции не описываются во всех книгах), их надо знать))) Кстати я где-то видел подобное, только не через JScript, по моему еще даже легче =)
________________
Последний раз редактировалось zheka-zh; 27.12.2012 в 17:20.