Исходные коды программ и игр

Программирование - работа и хобби

Исходный код калькулятора

Язык программирования C#

Исходник калькулятора

Интерфейс   калькулятора на C#Исходник калькулятора с памятью максимально упрощен при довольно красивом графическом интерфейсе и является полностью работоспособным приложением для арифметических вычислений. А также базой для дальнейшего совершенствования приложения. Написан на языке программирования C# на базе перспективной среды .NET. В состоянии простоя окно калькулятора становится прозрачным.

Пользовательские настройки калькулятора хранятся в текстовом файле, напоминающем старенькие ini файлы. Методы ToFileIni() FromFileIni() безопасно записывают и читают параметры из файла setup.txt

Хранение рабочих параметров и компоненты исходника

В диалоговом окне SetDlg setDlg визуализируются и устанавливаются параметры работы калькулятора. Функциональность клавиш определяется в перечислениях


enum CalcMode { P0, P1_1, P1_2, P2_1, P2_2, P2_3, P2_4 }
.......
enum FunctionKey 
    { Emptly, Add, Subtract, Multiply, Divide, Equal, Sqrt, Pow2, Backspace}

Исходный код приложения состоит из двух модулей:

  • Calc2.cs - главная форма приложения. На форме располагается цифровое табло, состоящее из элемента Panel, содержащий на себе две текстовые метки Label. Одна метка высвечивает результаты расчета, другая число находящееся в памяти калькулятора. Далее на форме располагаются 30 кнопок для набора чисел и действиями над ними.
  • SetDlg.cs - диалоговое окно настроек калькулятора. Пользователь может изменить количество знаков после запятой, задать разделитель десятичных по своему усмотрению при копировании в буфер обмена, установить уровень прозрачности окна приложения при длительном простое между вычислениями.

Реализация кнопок калькулятора

Кнопки упорядочены по группам, имеющие каждая свой цвет, свой обработчик события Click на все кнопки группы. Для удобства определения нажатой кнопки используется свойство Tag имеющее тип object, а значит этому свойству можно присвоить любой тип данных .NET. В дальнейшем используя оператор switch определяем рабочую кнопку и связанное с ней действие.

// Функциональные кнопки
 buttonAdd.Tag = FunctionKey.Add;
 buttonSubtract.Tag = FunctionKey.Subtract;
 buttonMultiply.Tag = FunctionKey.Multiply;
 buttonDivide.Tag = FunctionKey.Divide;
 buttonEqual.Tag = FunctionKey.Equal;
 buttonSqrt.Tag = FunctionKey.Sqrt;
 buttonPow2.Tag = FunctionKey.Pow2;
 buttonBackspace.Tag = FunctionKey.Backspace;

Алгоритм работы

Алгоритм работы программы на уровне пользователя:

  1. Сброс всех регистров или включение программы
  2. Нажатие на цифровую клавишу:
    • 1) Набор числа после п.0 - набираем число в верхний регистр, переход к п.2 или п.0;
    • 2) Набор числа после п.2.1 - сброс нижнего регистра в ноль и заново набираем число в нижний регистр, переход к п.2 или п.0;
  3. Нажатие на функциональную клавишу:
    • 1) если нажаты +, -, *, / происходит запоминание последней нажатой операционной клавишы, перевод на возможность набора в нижний регистр, переход к п.2 или п.1.2 или п.0;
    • 2) если нажата клавиша Равно, после п.1.1, продолжаем набор числа;
    • 3) если нажата клавиша Равно после п.2.1:
      • а) первое нажатие - нижнему регистру присваиваем значение верхнего и высчитываем результат согласно нажатой операционной клавише, далее переход к п.2 или п.0;
      • б) последующие нажатия - высчитываем результат согласно нажатой операционной клавише, верхнему регистру присваивается результат, нижний регистр не изменяется, далее переход к п.2 или п.0;
    • 4) если нажата клавиша Равно после п.1.2 - высчитываем результат согласно нажатой операционной клавише, далее верхнему регистру присваиваем результат, нижний регистр не изменяем, переход к п.2 или п.0;

Файл исходника калькулятора

Среда программирования Microsoft Visual Studio.NET 2008, Microsoft Visual Studio.NET 2008 Express Edition и выше, открытая среда программирования для C# SharpDevelop 3.0. и выше. .NET Framework v2.0 и выше. Подробные комментарии важных строк исходного кода

Файл загрузки Размер Кол-во загрузок
calck_vs10.zip 💾 86Кбайт 17984