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

Calculator

The Windows Calculator app is a modern Windows app written in C++ and C# that ships pre-installed with Windows.
The app provides standard, scientific, and programmer calculator functionality, as well as a set of converters between various units of measurement and currencies.

Calculator ships regularly with new features and bug fixes. You can get the latest version of Calculator in the Microsoft Store.

Calculator Screenshot

Features

  • Standard Calculator functionality which offers basic operations and evaluates commands immediately as they are entered.
  • Scientific Calculator functionality which offers expanded operations and evaluates commands using order of operations.
  • Programmer Calculator functionality which offers common mathematical operations for developers including conversion between common bases.
  • Date Calculation functionality which offers the difference between two dates, as well as the ability to add/subtract years, months and/or days to/from a given input date.
  • Calculation history and memory capabilities.
  • Conversion between many units of measurement.
  • Currency conversion based on data retrieved from Bing.
  • Infinite precision for basic
    arithmetic operations (addition, subtraction, multiplication, division) so that calculations
    never lose precision.

Getting started

Prerequisites:

  • Your computer must be running Windows 11, build 22000 or newer.

  • Install the latest version of Visual Studio (the free community edition is sufficient).

    • Install the «Universal Windows Platform Development» workload.
    • Install the optional «C++ Universal Windows Platform tools» component.
    • Install the latest Windows 11 SDK.

    Visual Studio Installation Screenshot

  • Install the XAML Styler Visual Studio extension.

  • Get the code:

    git clone https://github.com/Microsoft/calculator.git
    
  • Open src\Calculator.sln in Visual Studio to build and run the Calculator app.

  • For a general description of the Calculator project architecture see ApplicationArchitecture.md.

  • To run the UI Tests, you need to make sure that
    Windows Application Driver (WinAppDriver)
    is installed.

Contributing

Want to contribute? The team encourages community feedback and contributions. Please follow our contributing guidelines.

If Calculator is not working properly, please file a report in the Feedback Hub.
We also welcome issues submitted on GitHub.

Roadmap

For information regarding Windows Calculator plans and release schedule, please see the Windows Calculator Roadmap.

Graphing Mode

Adding graphing calculator functionality is on the project roadmap and we hope that this project can create a great end-user experience around graphing. To that end, the UI from the official in-box Windows Calculator is currently part of this repository, although the proprietary Microsoft-built graphing engine, which also drives graphing in Microsoft Mathematics and OneNote, is not. Community members can still be involved in the creation of the UI, however developer builds will not have graphing functionality due to the use of a mock implementation of the engine built on top of a
common graphing API.

Diagnostic Data

This project collects usage data and sends it to Microsoft to help improve our products and services.
Read our privacy statement to learn more.
Diagnostic data is disabled in development builds by default, and can be enabled with the SEND_DIAGNOSTICS
build flag.

Currency Converter

Windows Calculator includes a currency converter feature that uses mock data in developer builds. The data that
Microsoft uses for the currency converter feature (e.g., in the retail version of the application) is not licensed
for your use. The mock data will be clearly identifiable as it references planets instead of countries,
and remains static regardless of selected inputs.

Reporting Security Issues

Please refer to SECURITY.md.

License

Copyright (c) Microsoft Corporation. All rights reserved.

Licensed under the MIT License.

Несколько дней назад корпорация Microsoft приняла решение открыть исходный код известной всем программы — «Калькулятора» из ОС Windows. Это приложение входило во все дистрибутивы ОС от Microsoft начиная с 1985 года, когда свет увидела Windows 1.0.

Microsoft использует лицензию MIT для своего ПО. Это тот же тип лицензии, что используется в .Net Core, Visual Studio Code, и MS-DOS. По словам представителей корпорации, сейчас они открывают процесс разработки для open-source сообщества. Сторонние разработчики могут предлагать новые функции и сотрудничать с инженерами Microsoft для добавления этих фич.

С течением времени Калькулятор Windows совершенствуется. Программа появилась на свет в качестве элементарного помощника для выполнения арифметических действий. Сейчас же это надежный научный калькулятор, который может использоваться широким кругом пользователей для решения весьма серьезных задач.

Программа написана на С++ и содержит более 35000 строк кода. Для компиляции проекта пользователям необходима Windows 10 1803 (или более новая) и последняя версия Visual Studio. Со всеми требованиями можно ознакомиться на GitHub.

Компания открыла код для того, чтобы любой желающий мог ознакомиться с такими технологиями Microsoft как Fluent, Universal Windows Platform, Azure Pipelines и другими. Благодаря этому проекту разработчики могут больше узнать о том, как выполняется работа по созданию тех либо иных проектов в Microsoft.

Тем разработчикам, кто планирует присоединиться к проекту, необходимо ознакомиться с требованиями и нормами, сделать это можно здесь.

Ну а с подробным анализом исходного кода Калькулятора Windows можно ознакомиться здесь, прямо на Хабре.

Если эта публикация вас вдохновила и вы хотите поддержать автора — не стесняйтесь нажать на кнопку

Оглавление:

  1. Исходник калькулятора
  2. Хранение рабочих параметров и компоненты исходника
  3. Реализация кнопок калькулятора
  4. Алгоритм работы
  5. Файл исходника калькулятора

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

Исходник калькулятора с памятью максимально упрощен при довольно красивом графическом интерфейсе и является полностью работоспособным приложением для арифметических вычислений. А также базой для дальнейшего совершенствования приложения. Написан на языке программирования 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 КбайтЗагрузки:20655

Не правда ли, интересно заглянуть во внутренности приложения, которым вы пользовались миллионы раз?

Разве можно вообразить более знаковое, мгновенно узнаваемое программное обеспечение? Калькулятор присутствовал в каждой версии Windows с момента выпуска Windows 1.0 в 1985 году. Если вы когда-либо использовали компьютер, вы почти наверняка использовали и его.

Фото: Windows Central

Фото: Windows Central

Удивительно, но права на одну из самых популярных своих программ Microsoft подарила Массачусетскому технологическому институту. Этим шагом компания планирует стимулировать open source-сообщества. Разработчики могут помочь в разработке новых функций и даже сотрудничать с инженерами Microsoft в их реализации.

Вероятно, это не главная причина, по которой Microsoft пошла на такой шаг. Компания надеется, что калькулятор Windows станет доступным введением в технологии разработки Microsoft, такие как XAML и универсальная платформа Windows (UWP). Если вы заинтересовались, исходный код калькулятора Windows лежит в открытом доступе здесь.

Компания Microsoft открыла исходный код «Калькулятора», который входит в состав стандартных программ операционной системы Windows, и опубликовала его на GitHub. Кстати, если вы не знали (или забыли), GitHub тоже принадлежит софтверному гиганту. Наряду с исходным кодом, Microsoft также выложила данные о тестовых сборках приложения и «дорожную карту» развития своего продукта.

Вы наверняка спросите, зачем Microsoft понадобилось делать исходный код калькулятора открытым? Во-первых, компания не раз заявляла о лояльном отношении к Open Source, периодически публикуя код своих программ. Во-вторых, она заявила о желании создать более удобный пользовательский интерфейс калькулятора, воспользовавшись помощью сообщества. Теперь любой желающий может внести изменения в код программы, чтобы её улучшить. При этом Microsoft будет оценивать новые пользовательские функции и изменения интерфейса прежде, чем внедрить их в калькулятор.

Microsoft выложила исходный код своего калькулятора на GitHub

Кроме того, исходный код калькулятора также упростит разработчикам задачу по созданию собственных приложений, а сообщество может участвовать в обсуждениях будущих версий калькулятора. В прошлом году Microsoft уже открыла исходный код оригинальной версии File Manager, созданного ещё в 90-х годах, чтобы он мог работать в Windows 10, а недавно компания передала 60 тыс. патентов на различные технологии в собственность OIN, которая обеспечивает юридическую защиту Linux.

Понравилась статья? Поделить с друзьями:
0 0 голоса
Рейтинг статьи
Подписаться
Уведомить о
guest

0 комментариев
Старые
Новые Популярные
Межтекстовые Отзывы
Посмотреть все комментарии
  • Ocvita barcode windows 10
  • Как сделать ярлык ворд в windows 10 на рабочий стол
  • Создать локальную сеть дома windows 7
  • Reg add hklm software microsoft windows currentversion policies system
  • Как скинуть ноутбук до заводских настроек acer windows 10