Как создать консольное приложение с в visual studio

от admin

Как создать консольное приложение с в visual studio

Чтобы облегчить написание, а также тестирование и отладку программного кода нередко используют специальные среды разработки, в частности, Visual Studio. Рассмотрим создание приложений на C# с помощью бесплатной и полнофункциональной среды Visual Studio Community 2022, которую можно загрузить по следующему адресу: Microsoft Visual Studio 2022

После загрузки запустим программу установщика. В открывшемся окне нам будет предложено выбрать те компоненты, которые мы хотим установить вместе Visual Studio. Стоит отметить, что Visual Studio — очень функциональная среда разработки и позволяет разрабатывать приложения с помощью множества языков и платформ. В нашем случае нам будет интересовать прежде всего C# и .NET.

Чтобы добавить в Visual Studio поддержку проектов для C# и .NET 7, в программе установки среди рабочих нагрузок можно выбрать только пункт ASP.NET и разработка веб-приложений . Можно выбрать и больше опций или вообще все опции, однако стоит учитывать свободный размер на жестком диске — чем больше опций будет выбрано, соответственно тем больше места на диске будет занято.

Установка Visual Studio 2022

И при инсталляции Visual Studio на ваш компьютер будут установлены все необходимые инструменты для разработки программ, в том числе фреймворк .NET 7.

После завершения установки создадим первую программу. Она будет простенькой. Вначале откроем Visual Studio. На стартовом экране выберем Create a new project (Создать новый проект)

Создание первого проекта в Visual Studio 2022

На следующем окне в качестве типа проекта выберем Console App , то есть мы будем создавать консольное приложение на языке C#

Проект консольного приложения на C# и .NET 7 в Visual Studio 2022

Чтобы проще было найти нужный тип проекта, в поле языков можно выбрать C# , а в поле типа проектов — Console .

Далее на следующем этапе нам будет предложено указать имя проекта и каталог, где будет располагаться проект.

Создание первого приложения на C#

В поле Project Name дадим проекту какое-либо название. В моем случае это HelloApp .

На следующем окне Visual Studio предложит нам выбрать версию .NET, которая будет использоваться для проекта. Выберем последнюю на данный момент верси. — .NET 7.0:

Установка C# 11 и .NET 7 в Visual Studio

Нажмен на кнопку Create (Создать) для создания проекта, и после этого Visual Studio создаст и откроет нам проект:

Первый проект на C#

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

Справа находится окно Solution Explorer, в котором можно увидеть структуру нашего проекта. В данном случае у нас сгенерированная по умолчанию структура: узел Dependencies — это узел содержит сборки dll, которые добавлены в проект по умолчанию. Эти сборки как раз содержат классы библиотеки .NET, которые будет использовать C#. Однако не всегда все сборки нужны. Ненужные потом можно удалить, в то же время если понадобится добавить какую-нибудь нужную библиотеку, то именно в этот узел она будет добавляться.

Далее идет непосредственно сам файл кода программы Program.cs , который по умолчанию открыт в центральном окне и который имеет всего две строки:

Первая строка предваряется символами // и представляет комментарии — пояснения к коду.

Вторая строка собственно представляет собой код программы: Console.WriteLine(«Hello World!»); . Эта строка выводит на консоль строку «Hello World!».

Несмотря на то, что программа содержит только одну строку кода, это уже некоторая программа, которую мы можем запустить. Запустить проект мы можем с помощью клавиши F5 или с панели инструментов, нажав на зеленую стрелку. И если вы все сделали правильно, то при запуске приложения на консоль будет выведена строка «Hello World!».

Первое приложение на C# и .NET 7

Теперь изменим весь этот код на следующий:

По сравнению с автоматически сгенерированным кодом я внес несколько изменений. Теперь первой строкой выводится приглашение к вводу.

Метод Console.Write() выводит на консоль некоторую строка. В данном случае это строка «Введите свое имя: «.

На второй строке определяется строковая переменная name, в которую пользователь вводит информацию с консоли:

Ключевое слово var указывает на определение переменной. В данном случае переменная называется name . И ей присваивается результат метода Console.ReadLine() , который позволяет считать с консоли введенную строку. То есть мы введем в консоли строку (точнее имя), и эта строка окажется в переменой name .

Затем введенное имя выводится на консоль:

Чтобы ввести значение переменной name внутрь выводимой на консоль строки, применяются фигурные скобки <>. То есть при выводе строки на консоль выражение будет заменяться на значение переменной name — введенное имя.

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

Теперь протестируем проект, запустив его на выполнение, также нажав на F5 или зеленую стрелочку.

Первая программа на C#

Скомпилированное приложение можно найти в папке проекта в каталоге bin\Debug\net7.0 . Оно будет называться по имени проекта и иметь расширение exe. И затем этот файл можно будет запускать без Visual Studio, а также переносить его на другие компьютеры, где установлен .NET 7.

Name already in use

visualstudio-docs / docs / get-started / csharp / tutorial-console.md

  • Go to file T
  • Go to line L
  • Copy path
  • Copy permalink
  • Open with Desktop
  • View raw
  • Copy raw contents Copy raw contents

Copy raw contents

Copy raw contents

Tutorial: Create a simple C# console app in Visual Studio (part 1 of 2)

In this tutorial, you use Visual Studio to create and run a C# console app, and explore some features of the Visual Studio integrated development environment (IDE). This tutorial is part 1 of a two-part tutorial series.

In this tutorial, you:

  • Create a Visual Studio project.
  • Create a C# console app.
  • Debug your app.
  • Close your app.
  • Inspect your complete code.

In part 2, you extend this app to add more projects, learn debugging tricks, and reference third-party packages.

You must have Visual Studio installed.

If you haven’t already installed Visual Studio, go to the Visual Studio downloads page to install it for free.

Create a project

To start, create a C# application project. The project type comes with all the template files you need.

Open Visual Studio, and choose Create a new project in the Start window.

Screenshot that shows the Create a new project window.

In the Create a new project window, choose C# from the Language list. Next, choose Windows from the Platform list and Console from the project types list.

After you apply the language, platform, and project type filters, choose the Console Application template, and then select Next.

[!NOTE] If you don’t see the Console Application template, select Install more tools and features.

Screenshot that shows the Install more tools and features link.

Then, in the Visual Studio Installer, choose the .NET Core cross-platform development workload.

Screenshot showing the .NET Core cross-platform development workload in the Visual Studio Installer.

After that, choose the Modify button in the Visual Studio Installer. You might be prompted to save your work; if so, do so. Next, choose Continue to install the workload. Then, return to step 2 in this «Create a project» procedure.

In the Configure your new project window, type or enter Calculator in the Project name box. Then, choose Next.

. image type=»content» source=»./media/vs-2019/csharp-name-your-calculator-project.png» alt-text=»Screenshot that shows naming your project ‘Calculator’ in the ‘Configure your new project’ window.».

In the Additional information window, .NET Core 3.1 should already be selected for your target framework. If not, select .NET Core 3.1. Then, choose Create.

. image type=»content» source=»./media/vs-2019/csharp-target-framework.png» alt-text=»Screenshot that shows making sure .NET Core 3.1 is selected in the ‘In the ‘Additional information’ window.».

Visual Studio opens your new project, which includes default «Hello World» code. To view it in the editor, select the code file Program.cs in the Solution Explorer window, which is typically on the right-hand side of Visual Studio.

The default «Hello World» code calls the xref:System.Console.WriteLine%2A method to display the literal string «Hello, World!» in the console window. If you press F5, you can run the default program in Debug mode. After the application runs in the debugger, the console window stays open. Press any key to close the console window.

. moniker-end . moniker range=»>=vs-2022″

Open Visual Studio, and choose Create a new project in the Start window.

Screenshot that shows the Create a new project window.

In the Create a new project window, select All languages, and then choose C# from the dropdown list. Choose Windows from the All platforms list, and choose Console from the All project types list.

After you apply the language, platform, and project type filters, choose the Console App template, and then select Next.

[!NOTE] If you don’t see the Console App template, select Install more tools and features.

Screenshot that shows the Install more tools and features link.

In the Visual Studio Installer, choose the .NET desktop development workload, and then select Modify.

Screenshot showing the .NET desktop development workload in the Visual Studio Installer.

In the Configure your new project window, type or enter Calculator in the Project name box, and then select Next.

Screenshot that shows naming the project Calculator in the Configure your new project window.

In the Additional information window, .NET 6.0 should already be selected for your target framework. Select Create.

Screenshot that shows .NET 6.0 selected in the Additional information window.

Visual Studio opens your new project, which includes default «Hello World» code.

To view it in the editor, select the code file Program.cs in the Solution Explorer window, which is typically on the right-hand side of Visual Studio.

The single code statement calls the xref:System.Console.WriteLine%2A method to display the literal string «Hello, World!» in the console window. If you press F5, you can run the default program in Debug mode. After the application runs in the debugger, the console window stays open. Press any key to close the console window.

[!NOTE] Starting with .NET 6, new projects using the console template generate different code than previous versions. To learn more, see the New C# templates generate top-level statements page.

In this section, you:

  • Explore some basic integer math in C#.
  • Add code to create a basic calculator app.
  • Debug the app to find and fix errors.
  • Refine the code to make it more efficient.

Explore integer math

Start with some basic integer math in C#.

In the code editor, delete the default «Hello World» code.

Screenshot that shows deleting the default Hello World code from your new calculator app.

Specifically, delete the line that says, Console.WriteLine(«Hello World!»); .

In its place, type the following code:

Notice that when you do so, the IntelliSense feature in Visual Studio offers you the option to autocomplete the entry.

Choose the green Start button next to Calculator to build and run your program, or press F5.

A console window opens that reveals the sum of 42 + 119, which is 161.

Screenshot that shows a console window with the results of integer math.

(Optional) You can change the operator to change the result. For example, you can change the + operator in the int c = a + b; line of code to — for subtraction, * for multiplication, or / for division. Then, when you run the program, the result changes, too.

Close the console window. . moniker-end

In Solution Explorer, in the right pane, select Program.cs to display the file in the code editor

In the code editor, replace the default «Hello World» code that says Console.WriteLine(«Hello World!»); .

Screenshot that shows the line to replace in the program file.

Replace the line with the following code:

If you type the code, the Visual Studio IntelliSense feature offers you the option to autocomplete the entry.

To build and run your app, press F5, or select the green arrow next to the name Calculator in the top toolbar.

A console window opens that shows the sum of 42 + 119, which is 161.

Screenshot of a Console window showing the results of integer math.

Close the console window.

Optionally, you can change the operator to change the result. For example, you can change the + operator in the int c = a + b; line of code to — for subtraction, * for multiplication, or / for division. When you run the app, the result changes accordingly.

Add code to create a calculator

Continue by adding a more complex set of calculator code to your project.

In the code editor, replace all the code in Program.cs with the following new code:

Select the Calculator button or press F5 to run your app.

A console window opens.

In the console window, follow the prompts to add the numbers 42 and 119 together.

Your app should look similar to the following screenshot:

Screenshot of a Console window showing the Calculator app with prompts.

In the code editor, replace all the code in Program.cs with the following new code:

Select the Calculator button or press F5 to run your app.

A console window opens.

In the console window, follow the prompts to add the numbers 42 and 119 together.

Your app should look similar to the following screenshot:

Screenshot of a Console window showing the Calculator app with prompts.

Add decimal functionality

Now, tweak the code to add more functionality.

The current calculator app only accepts and returns whole numbers. For example, if you run the app and divide the number 42 by the number 119, your result is zero, which isn’t exact.

Screenshot of a Console window that shows the Calculator app returning an inexact whole number as a result.

To fix the code to improve precision by handling decimals:

From Program.cs in the Visual Studio editor, press Ctrl+H to open the Find and Replace control.

Type int in the control, and type float in the Replace field.

Select the icons for Match case and Match whole word in the control, or press Alt+C and Alt+W.

Select the Replace all icon or press Alt+A to run the search and replace.

Run your calculator app again, and divide the number 42 by the number 119.

The app now returns a decimal number instead of zero.

Screenshot of a Console window showing the Calculator app that now returns a decimal numeral as a result.

Now the app can produce decimal results. Make a few more tweaks to the code so the app can calculate decimals too.

Use the Find and Replace control to change each instance of the float variable to double , and to change each instance of the Convert.ToInt32 method to Convert.ToDouble .

Run your calculator app, and divide the number 42.5 by the number 119.75.

The app now accepts decimal values, and returns a longer decimal numeral as its result.

Screenshot of a Console window showing the Calculator app that now accepts decimal numbers and returns a longer decimal result.

In the Revise the code section, you reduce the number of decimal places in the results.

You’ve improved your basic calculator app, but your app doesn’t yet handle exceptions, such as user input errors. For example, if users try to divide by zero, or enter an unexpected character, the app might stop working, return an error, or return an unexpected nonnumeric result.

Let’s walk through a few common user input errors, locate them in the debugger if they appear there, and fix them in the code.

[!TIP] For more information about the debugger and how it works, see First look at the Visual Studio debugger.

Fix the «divide by zero» error

If you try to divide a number by zero, the console app might freeze, and then shows you what’s wrong in the code editor.

Screenshot of the Visual Studio code editor showing a line highlighted in yellow and an Exception Unhandled error for

[!NOTE] Sometimes the app doesn’t freeze, and the debugger doesn’t show a divide-by-zero error. Instead, the app might return an unexpected nonnumeric result, such as an infinity symbol. The following code fix still applies.

To change the code to handle this error:

In Program.cs, replace the code for case «d»: with the following code:

After you replace the code, the section with the switch statement should look similar to the following screenshot:

Screenshot showing the revised switch section in the Visual Studio code editor.

Now, when you divide any number by zero, the app asks for another number, and keeps asking until you provide a nonzero number.

Screenshot of a Console window with a repeated prompt to provide a nonzero number.

Fix the «format» error

If you enter an alphabetic character when the app expects a numeric character, the app freezes. Visual Studio shows you what’s wrong in the code editor.

Screenshot showing an unhandled format error in the Visual Studio code editor.

. moniker range=»<=vs-2019″ . moniker-end . moniker range=»>=vs-2022″ alt=»Screenshot showing an unhandled format error in the Visual Studio code editor.» width=»» /> . moniker-end

To prevent this exception, you can refactor the code you’ve previously entered.

Revise the code

Rather than rely on the program class to handle all the code, you can divide your app into two classes: Calculator and Program .

The Calculator class handles the bulk of the calculation work, and the Program class handles the user interface and error-handling work.

Let’s get started.

In Program.cs, delete everything and add the following new Calculator class:

Also add a new Program class, as follows:

Select the Calculator button or press F5 to run your app.

Follow the prompts and divide the number 42 by the number 119. Your results should look similar to the following screenshot:

Screenshot showing a Console window with the refactored Calculator app.

. moniker range=»<=vs-2019″ . moniker-end . moniker range=»>=vs-2022″ alt=»Screenshot showing a Console window with the refactored Calculator app.» width=»» /> . moniker-end

You can now run more calculations until you choose to close the console app. There are also fewer decimal places in the results. And if you enter an incorrect character, you get an appropriate error response.

If you haven’t already done so, close the Calculator app.

Close the Output pane in Visual Studio.

Screenshot that shows closing the Output pane in Visual Studio.

In Visual Studio, press Ctrl+S to save your app.

Review: Code complete

In this tutorial, you made many changes to the Calculator app. The app now handles computing resources more efficiently, and handles most user input errors.

C# Language учебник
Начало работы с C # Language

Ezoic

report this ad

C # — это мультипарадигма, язык программирования C-потомок от Microsoft. C # — управляемый язык, который компилируется в CIL , промежуточный байт-код, который может быть выполнен в Windows, Mac OS X и Linux.

Версии 1.0, 2.0 и 5.0 были стандартизованы ECMA (как ECMA-334 ), и в настоящее время предпринимаются усилия по стандартизации для современного C #.

Версии

Версия Дата выхода
1,0 2002-01-01
1.2 2003-04-01
2,0 2005-09-01
3.0 2007-08-01
4,0 2010-04-01
5.0 2013-06-01
6,0 2015-07-01
7,0 2017-03-07

Создание нового консольного приложения (Visual Studio)

  1. Открыть Visual Studio
  2. На панели инструментов перейдите в ФайлНовый проект
  3. Выберите тип проекта консоли.
  4. Откройте файл Program.cs в обозревателе решений
  5. Добавьте следующий код в Main() :
  1. На панели инструментов нажмите « Отладка» -> « Начать отладки» или нажмите « F5» или « Ctrl + F5» (работает без отладчика), чтобы запустить программу.

объяснение

class Program — это объявление класса. Класс Program содержит определение данных и методов , которые используются в вашей программе. Классы обычно содержат несколько методов. Методы определяют поведение класса. Однако класс Program имеет только один метод: Main .

static void Main() определяет метод Main , который является точкой входа для всех программ на C #. Main метод определяет, что делает класс при выполнении. Для каждого класса допускается только один Main метод.

System.Console.WriteLine("Hello, world!"); метод выводит данные (в этом примере, Hello, world! ) в качестве вывода в окне консоли.

System.Console.ReadKey() , гарантирует, что программа не будет закрываться сразу после отображения сообщения. Он делает это, ожидая, что пользователь нажмет клавишу на клавиатуре. Любое нажатие клавиши от пользователя прекратит выполнение программы. Программа завершается, когда она закончила последнюю строку кода в методе main() .

Использование командной строки

Для компиляции с помощью командной строки используйте либо MSBuild либо csc.exe (компилятор C #) , как часть пакета средств Microsoft Build Tools .

Чтобы скомпилировать этот пример, запустите следующую команду в том же каталоге, где находится HelloWorld.cs :

Также возможно, что у вас есть два основных метода внутри одного приложения. В этом случае, вы должны сообщить компилятору, основной метод , чтобы выполнить, введя следующую команду в консоли. (Предположит , что класс ClassA также имеет основной метод в том же HelloWorld.cs файл HelloWorld имен)

где HelloWorld — пространство имен

Примечание . Это путь, в котором .NET framework v4.0 находится в целом. Измените путь в соответствии с вашей версией .NET. Кроме того, каталог может быть фреймворком вместо framework64, если вы используете 32-разрядную .NET Framework. В командной строке Windows вы можете перечислить все пути csc.exe Framework, выполнив следующие команды (первая для 32-разрядных фреймворков):

Компиляция файла .cs

В этом же каталоге должен быть исполняемый файл HelloWorld.exe . Чтобы выполнить программу из командной строки, просто введите имя исполняемого файла и нажмите Enter следующим образом:

Выполнение exe-файла в консоли

Вы также можете дважды щелкнуть исполняемый файл и запустить новое окно консоли с сообщением « Привет, мир! ».

Запуск исполняемого файла и использование двойного щелчка

Создание нового проекта в Visual Studio (консольное приложение) и запуск его в режиме отладки

Загрузите и установите Visual Studio . Visual Studio можно загрузить с сайта VisualStudio.com . Издание сообщества предлагается, во-первых, потому что оно бесплатное и второе, потому что оно включает в себя все общие функции и может быть расширено дальше.

Откройте Visual Studio.

Добро пожаловать. Откройте Файл → Новый → Проект . Microsoft Visual Studio - меню файлов

Нажмите ШаблоныVisual C #Консольное приложение

Microsoft Visual Studio - окно нового проекта

Выбрав консольное приложение, введите имя для своего проекта и место для сохранения и нажмите OK . Не беспокойтесь о имени решения.

Создан проект . Созданный проект будет выглядеть примерно так:

Microsoft Visual Studio - проект по умолчанию c #

(Всегда используйте описательные имена для проектов, чтобы их можно было легко отличить от других проектов. Рекомендуется не использовать пробелы в имени проекта или класса).

Напишите код. Теперь вы можете обновить программу Program.cs чтобы представить «Hello world!». для пользователя.

Добавьте следующие две строки в объект public static void Main(string[] args) в Program.cs : (убедитесь, что он находится внутри фигурных скобок)

Почему Console.Read() ? Первая строка выводит текст «Привет мир!». на консоль, а вторая строка ожидает ввода одного символа; по сути, это заставляет программу приостанавливать выполнение, чтобы вы могли видеть вывод во время отладки. Без Console.Read(); , когда вы начнете отлаживать приложение, оно просто напечатает «Hello world!». на консоль, а затем сразу же закрыть. Окно вашего кода теперь должно выглядеть следующим образом:

Отлаживайте свою программу. Нажмите кнопку «Пуск» на панели инструментов в верхней части окна. Кнопка запуска отладки или нажмите F5 на клавиатуре, чтобы запустить приложение. Если кнопки нет, вы можете запустить программу из главного меню: Debug → Start Debugging . Программа скомпилирует и откроет окно консоли. Он должен выглядеть примерно так, как показано на следующем снимке экрана:

Консоль, запускающая приложение Hello World

  1. Остановите программу. Чтобы закрыть программу, просто нажмите любую клавишу на клавиатуре. Добавленный нами Console.Read() был для этой же цели. Другой способ закрыть программу — это перейти в меню, где была кнопка « Пуск» , и нажать кнопку « Стоп» .

Создание новой программы с использованием Mono

Сначала установите Mono , выполнив инструкции по установке для выбранной вами платформы, как описано в разделе их установки .

Моно доступно для Mac OS X, Windows и Linux.

После завершения установки создайте текстовый файл, назовите его HelloWorld.cs и скопируйте в него следующий контент:

Если вы используете Windows, запустите Mono Command Prompt, которая включена в установку Mono, и убедитесь, что установлены необходимые переменные среды. Если на Mac или Linux откройте новый терминал.

Чтобы скомпилировать вновь созданный файл, запустите следующую команду в каталоге, содержащем HelloWorld.cs :

Получаемый HelloWorld.exe можно выполнить с помощью:

который будет производить выход:

Создание новой программы с использованием .NET Core

Сначала установите .NET Core SDK , выполнив инструкции по установке для выбранной вами платформы:

  • Windows
  • OSX
  • Linux
  • докер

По завершении установки откройте командную строку или окно терминала.

Создайте новый каталог с mkdir hello_world и перейдите во вновь созданный каталог cd hello_world .

Создайте новое консольное приложение с dotnet new console .
Это создаст два файла:

hello_world.csproj

Program.cs

Восстановите необходимые пакеты с dotnet restore .

Необязательно Создайте приложение с dotnet build для dotnet build Debug или dotnet build -c Release for Release. dotnet run также запускает компилятор и dotnet run ошибки сборки, если они есть.

Запустите приложение с dotnet run для dotnet run Debug или dotnet run .\bin\Release\netcoreapp1.1\hello_world.dll для выпуска.

Вывод командной строки

введите описание изображения здесь

Создание нового запроса с использованием LinqPad

LinqPad — отличный инструмент, который позволяет вам изучать и тестировать функции .Net-языков (C #, F # и VB.Net.)

Создайте новый запрос ( Ctrl + N ) введите описание изображения здесь

Под языком выберите «Операторы C #», введите описание изображения здесь

Введите следующий код и нажмите пробег ( F5 )

введите описание изображения здесь

  1. На экране результатов вы увидите «Hello World». введите описание изображения здесь
  2. Теперь, когда вы создали свою первую .Net-программу, пойдите и проверьте образцы, включенные в LinqPad, через браузер «Образцы». Есть много замечательных примеров, которые покажут вам много разных особенностей языков .Net. введите описание изображения здесь

Заметки:

  1. Если вы нажмете «IL», вы можете проверить код IL, который генерирует ваш .net-код. Это отличный инструмент обучения. введите описание изображения здесь
  2. При использовании LINQ to SQL или Linq to Entities вы можете проверить создаваемый SQL, что является еще одним отличным способом узнать о LINQ.

Создание консольного приложения "Калькулятор" на C++

Обычной отправной точкой для программиста на C++ является приложение "Hello World", выполняемое в командной строке. Вот что вы создадите в Visual Studio в этой статье, и затем мы перейдем к более сложной задаче: приложению калькулятора.

Предварительные требования

  • Установите и запустите на своем компьютере Visual Studio с рабочей нагрузкой Разработка классических приложений на C++ . Если установка еще не выполнена, см. статью Установка поддержки C++ в Visual Studio.

Создание проекта приложения

Visual Studio использует проекты, чтобы упорядочить код для приложения, и решения, чтобы упорядочить проекты. Проект содержит все параметры, конфигурации и правила, используемые для сборки приложения. Кроме того, он управляет связью между всеми файлами проекта и любыми внешними файлами. Чтобы создать приложение, сначала создайте проект и решение.

Если вы только запустили Visual Studio, вы увидите диалоговое окно Visual Studio 2019. Выберите Создать проект, чтобы приступить к работе.

Снимок экрана: исходное диалоговое окно Visual Studio 2019.

Или в строке меню Visual Studio последовательно выберите Файл > Создать > Проект. Откроется окно Создание проекта.

В списке шаблонов проектов выберите Консольное приложение и нажмите Далее.

Снимок экрана: выбор шаблона консольного приложения.

Убедитесь, что вы выбрали версию C++ для шаблона Консольное приложение. Этот шаблон содержит теги C++ , Windows и Консоль, а в углу значка есть "++".

В диалоговом окне Настроить новый проект выберите поле ввода Имя проекта, назовите новый проект CalculatorTutorial и нажмите Создать.

Присвоение имени проекта в диалоговом окне "Настроить новый проект".

Будет создано пустое консольное приложение Windows на C++. Консольные приложения используют окно консоли Windows для отображения выходных данных и приема данных, вводимых пользователем. В Visual Studio откроется окно редактора с созданным кодом.

Проверка сборки и выполнения нового приложения

Шаблон для нового консольного приложения Windows создает простое приложение Hello World на C++. На этом этапе вы можете видеть, как Visual Studio создает и запускает созданные вами приложения прямо из интегрированной среды разработки.

Для сборки проекта выберите в меню Сборка пункт Собрать решение. Окно Вывод отображает результаты процесса сборки.

Снимок экрана: Visual Studio 2019 с окном выходных данных, в котором отображается результат процесса сборки.

Чтобы запустить этот код, в строке меню выберите Отладка и Запуск без отладки.

Снимок экрана: консоль отладки Microsoft Visual Studio в Visual Studio 2019 с отображением успешного выполнения кода.

Открывается окно консоли, и запускается ваше приложение. При запуске консольного приложения в Visual Studio система выполняет код, а затем выводит сообщение "Нажмите любую клавишу, чтобы закрыть это окно. . ." чтобы вы могли просмотреть выходные данные. Поздравляем! Вы создали свое первое консольное приложение "Hello World" в Visual Studio!

Нажмите любую клавишу, чтобы закрыть окно консоли и вернуться в редактор Visual Studio.

Теперь у вас есть средства для сборки и запуска приложения после каждого изменения, чтобы убедиться, что код по-прежнему работает должным образом. Позже мы покажем, как выполнить его отладку при неправильной работе.

Изменение кода

Теперь давайте превратим код в этом шаблоне в приложение калькулятора.

В файле CalculatorTutorial.cpp измените код таким образом, чтобы он соответствовал этому примеру:

  • Операторы #include позволяют ссылаться на код, расположенный в других файлах. Иногда вы можете увидеть имя файла, заключенное в угловые скобки ( <> ), а в других случаях — в кавычки ( " " ). В общем случае угловые скобки используются при ссылке на стандартную библиотеку C++, а кавычки — для других файлов.
  • Строка using namespace std; сообщает компилятору ожидать данные от стандартной библиотеки C++ для использования в этом файле. Без нее каждое ключевое слово из этой библиотеки пришлось бы предварять элементом std:: , чтобы обозначить его область. Например, без этой строки каждую ссылку на cout потребовалось бы записывать в виде std::cout . Оператор using добавляется, чтобы сделать код более понятным.
  • Ключевое слово cout используется для вывода сведений в стандартный поток вывода в C++. Оператор << указывает компилятору отправить все содержимое справа от него в стандартный поток вывода.
  • Ключевое слово endl аналогично клавише ВВОД — оно завершает строку и переводит курсор на следующую строку. Для выполнения той же задачи рекомендуется помещать \n внутрь строки (заключенной в ""), так как endl всегда освобождает буфер и может негативно повлиять на производительность программы, но из-за того, что это очень небольшое приложение, в нем используется endl для улучшения удобочитаемости.
  • Все операторы C++ должны заканчиваться точкой с запятой, а все приложения C++ — содержать функцию main() . Именно ее программа выполняет при запуске. Для использования весь код должен быть доступен из main() .

Чтобы сохранить файл, нажмите клавиши CTRL+S или выберите элемент Сохранить в верхней части интегрированной среды разработки, выглядящий как значок гибкого диска на панели инструментов в строке меню.

Чтобы запустить приложение, нажмите клавиши CTRL+F5 или перейдите в меню Отладка и выберите Запуск без отладки. Должно отобразится окно консоли с текстом, указанным в коде.

По завершении закройте окно консоли.

Добавление кода для выполнения математических операций

Пора добавить математическую логику.

Добавление класса Calculator

В меню Проект выберите команду Добавить класс. В поле ввода Имя класса введите Calculator. Нажмите кнопку ОК. В проект будут добавлены два новых файла. Чтобы сохранить сразу все измененные файлы, нажмите клавиши CTRL+SHIFT+S. Это сочетание клавиш для команды Файл > Сохранить все. Кроме того, есть кнопка Сохранить все на панели инструментов. Она имеет вид значка с двумя дискетами рядом с кнопкой Сохранить. В общем случае рекомендуется регулярно нажимать кнопку Сохранить все, чтобы не пропустить никакие файлы при сохранении.

Снимок экрана: диалоговое окно "Добавление класса" с введенной надписью "Calculator" в текстовом поле "Имя класса".

Класс подобен схеме для объекта, который выполняет какие-либо действия. В этом случае мы определяем калькулятор и особенности его работы. Использованный ранее мастер Добавить класс создал файлы H и CPP, имя которых совпадает с именем класса. Вы можете просмотреть полный список файлов проекта в окне обозревателя решений, отображаемом в боковой части окна IDE. Если окно не отображается, его можно открыть из строки меню, выбрав Вид > Обозреватель решений.

Снимок экрана: окно обозревателя решений в Visual Studio 2019, в котором отображается проект Calculator Tutorial.

Теперь у вас в редакторе должно быть открыто три вкладки: CalculatorTutorial.cpp, Calculator.h и Calculator.cpp. Если вы случайно закроете одну из них, то можете повторно открыть эту вкладку, дважды щелкнув ее в окне обозревателя решений.

На вкладке Calculator.h удалите созданные строки Calculator(); и

Calculator(); , так как здесь они вам не понадобятся. Затем добавьте следующую строку кода, чтобы файл выглядел следующим образом:

  • Добавленная строка объявляет новую функцию Calculate , которую мы используем для выполнения математических операций, таких как сложение, вычитание, умножение и деление.
  • Код C++ упорядочен по файлам заголовка (H) и исходным файлам (CPP). Различные компиляторы поддерживают несколько других расширений имени файла, но это основные, о которых вам нужно знать. Функции и переменные обычно объявляются, то есть получают имя и тип, в файлах заголовка, и реализуются, то есть получают определение, в исходных файлах. Чтобы обратиться к коду, определенному в другом файле, вы можете использовать #include "filename.h" , где "filename.h" — это имя файла, объявляющего переменные или функции, которые требуется использовать.
  • Две удаленные строки объявляли конструктор и деструктор для класса. Для такого простого класса компилятор создает их автоматически, а их использование выходит за рамки данного руководства.
  • Рекомендуется упорядочивать код по различным файлам в зависимости от его назначения, чтобы позднее было проще найти нужный код. В данном случае мы определяем класс Calculator отдельно от файла, содержащего функцию main() , но планируем ссылаться на класс Calculator в main() .

Под Calculate появится зеленая волнистая линия. Это вызвано тем, что мы еще не определили функцию Calculate в CPP-файле. Наведите указатель на это слово, щелкните по появившейся лампочке (в данном случае отвертке) и выберите Создать определение "Calculate" в Calculator.cpp.

Снимок экрана: Visual Studio 2019 с выделенным параметром "Создать определение Calculate в Calculator.cpp".

Отображается всплывающее окно, сообщающее об изменении кода, внесенном в другом файле. Код был добавлен в Calculator.cpp.

Всплывающее окно с определением Calculate

Сейчас он возвращает просто 0.0. Давайте изменим это. Нажмите клавишу ESC, чтобы закрыть всплывающее окно.

Переключитесь на файл Calculator.cpp в окне редактора. Удалите разделы Calculator() и

Calculator() (как сделали в H-файле) и добавьте в Calculate() следующий код:

  • Функция Calculate использует число, оператор и второе число, а затем выполняет запрошенную операцию над этими числами.
  • Оператор switch проверяет, какой оператор был предоставлен, и выполняет только вариант (case), соответствующий этой операции. Вариант default: является резервным на тот случай, если пользователь вводит неприемлемый оператор, чтобы программа не прервала работу. В общем случае лучше обрабатывать некорректный ввод данных пользователем более элегантным способом, но это выходит за рамки данного руководства.
  • Ключевое слово double обозначает тип числа, который поддерживает десятичные числа. Таким образом, калькулятор может выполнять математические операции с десятичными и целыми числами. Функция Calculate должна всегда возвращать такое число из-за типа double в самом начале кода (обозначает возвращаемый тип функции), поэтому даже в случае по умолчанию возвращается значение 0,0.
  • H-файл объявляет функцию prototype, которая заранее сообщает компилятору, какой параметр требуется и какой тип возвращаемого значения следует ожидать. CPP-файл содержит все сведения о реализации этой функции.

Если построить и запустить код еще раз на этом этапе, он по-прежнему завершит работу после запроса операции для выполнения. Далее вам нужно изменить функцию main для выполнения вычислений.

Вызов функций-членов класса Calculator

Теперь давайте изменим функцию main в CalculatorTutorial.cpp:

  • Так как программы C++ всегда запускаются с функции main() , нам нужно вызвать из нее другой, для чего нужен оператор #include .
  • Объявлены начальные переменные x , y , oper и result для хранения, соответственно, первого числа, второго числа, оператора и окончательного результата. Рекомендуется всегда присваивать им некоторые начальные значения, чтобы избежать неопределенного поведения. Это мы здесь и делаем.
  • Строка Calculator c; объявляет объект "c" в качестве экземпляра класса Calculator . Сам класс является лишь схемой для описания работы калькуляторов, а объект — это конкретный калькулятор, который выполняет вычисления.
  • Оператор while (true) является циклом. Код внутри этого цикла продолжает выполняться снова и снова, пока выполняется условие в () . Так как условие просто указано как true , оно всегда выполняется, поэтому цикл выполняется бесконечно. Чтобы закрыть программу, пользователю нужно вручную закрыть окно консоли. В противном случае программа будет постоянно ожидать новые входные данные.
  • Ключевое слово cin используется для получения входных данных от пользователя. Этот входной поток способен обработать строку текста, введенного в окне консоли, и поместить ее внутрь каждой из перечисленных переменных в указанном порядке, при условии, что введенные пользователем данные соответствуют требуемой спецификации. Вы можете изменить эту строку, чтобы принять другие типы входных данных, например, больше двух чисел, однако для этого также потребуется изменить функцию Calculate() .
  • Выражение c.Calculate(x, oper, y); вызывает определенную ранее функцию Calculate и предоставляет введенные входные значения. Затем она возвращает число, сохраняемое в result .
  • Наконец, в консоль выводится result , благодаря чему пользователь видит результат вычисления.

Повторная сборка и проверка кода

Пришло время снова протестировать программу еще раз, чтобы убедиться в ее правильной работе.

Нажмите клавиши CTRL+F5, чтобы перестроить и запустить приложение.

Введите 5 + 5 и нажмите клавишу ВВОД. Убедитесь, что выводится результат 10.

Снимок экрана: консоль отладки Microsoft Visual Studio в Visual Studio 2019 с отображением правильного результата вычисления "5+5".

Отладка приложения

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

Запуск приложения в отладчике

Установите точку останова на строке result = c.Calculate(x, oper, y); , сразу после запроса входных данных у пользователя. Чтобы задать точку останова, щелкните рядом со строкой серую вертикальную панель, идущую вдоль левой части окна редактора. Появится красная точка.

Снимок экрана: Visual Studio 2019 с отображением красной точки, представляющей точку останова.

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

Щелкните правой кнопкой мыши красную точку, обозначающую точку останова, и выберите команду Условия. В поле ввода для условия введите (y == 0) && (oper == ‘/’) . По завершении операции нажмите кнопку Закрыть. Условия сохранятся автоматически.

Снимок экрана: Visual Studio 2019 с отображением раздела "Параметры точки останова" и условия, добавленного к значению Is true.

Теперь выполнение приостанавливается в точке останова, в частности при попытке деления на 0.

Чтобы отладить программу, нажмите клавишу F5 или выберите Локальный отладчик Windows — кнопку панели инструментов со значком зеленой стрелки. Если ввести в консольном приложении нечто вроде "5 — 0", программа работает как обычно и продолжает выполнение. Но если ввести "10 / 0", она приостанавливает выполнение в точке останова. Вы можете ввести любое число пробелов между оператором и числами; функция cin достаточно интеллектуальна для того, чтобы правильно проанализировать входные данные.

Снимок экрана: Visual Studios 2019 с отображением приостановки программы в условной точке останова.

Полезные окна в отладчике

Каждый раз при отладке кода вы можете заметить, что появляется несколько новых окон. Они могут оказаться полезными в процессе отладки. Давайте рассмотрим окно Видимые. Окно Видимые содержит текущие значения переменных, используемых по меньшей мере за три строки перед текущей строкой. Чтобы просмотреть все переменные из этой функции, переключитесь в окно Локальные. Вы можете изменять значения этих переменных во время отладки, чтобы оценить их влияние на программу. В данном случае мы оставим их без изменений.

Снимок экрана: окно "Локальные" в Visual Studio 2019.

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

Снимок экрана: Visual Studio 2019 с отображением подсказки, включающей значение переменной.

Продолжение отладки

Желтая линия слева показывает текущую точку выполнения. Текущая строка вызывает Calculate , поэтому нажмите клавишу F11, чтобы выполнить Шаг с заходом для этой функции. Вы переходите в тело функции Calculate . Обдуманно применяйте функцию Шаг с заходом, чтобы не терять время из-за чрезмерного ее использования. С помощью функции анализируется любой код, используемый в текущей строке, включая стандартные функции библиотеки.

Теперь, когда точка выполнения находится в начале функции Calculate , нажмите клавишу F10 для перехода на следующую строку в рамках выполнения программы. При нажатии клавиши F10 активируется функция Шаг с обходом. Шаг с обходом можно использовать для перемещения по строкам, не вдаваясь в подробности того, что происходит в каждой части строки. В общем случае следует использовать Шаг с обходом, а не Шаг с заходом, если только вы не хотите подробно изучить код, вызываемый из другого расположения (как в случае с переходом к телу функции Calculate ).

Продолжайте использовать клавишу F10, чтобы выполнять Шаг с обходом для каждой строки, пока не вернетесь к функции main() в другом файле, и остановитесь на строке cout .

Похоже, программа работает правильно — принимает первое число и делит его на второе. В строке cout наведите указатель мыши на переменную result или взгляните на result в окне Видимые. Соответствующее значение отображается как inf. Это неправильное поведение, и нужно его скорректировать. В строке cout просто выводится любое значение, хранящееся в result . Поэтому при продвижении еще на один шаг с помощью клавиши F10 в окне консоли отображается следующее:

Снимок экрана: консоль отладки Microsoft Visual Studio в Visual Studio 2019 с отображением результата деления на ноль.

Причина такого результата в том, что деление на ноль является неопределенным, поэтому у программы нет числового ответа на запрошенную операцию.

Исправление ошибки деления на ноль

Давайте обеспечим корректную обработку деления на ноль, чтобы пользователь мог осознать проблему.

Внесите следующие изменения в CalculatorTutorial.cpp. (Прерывать выполнение программы при редактировании не требуется благодаря функции отладчика Изменить и продолжить):

Теперь нажмите клавишу F5 один раз. При этом выполнение программы продолжается вплоть до приостановки для запроса данных, вводимых пользователем. Снова введите 10 / 0 . Теперь выводится более информативное сообщение. У пользователя запрашиваются дополнительные входные данные, и программа продолжает выполнение в обычном режиме.

Снимок экрана: консоль отладки Microsoft Visual Studio в Visual Studio 2019 с отображением окончательного результата после изменений.

При редактировании кода в режиме отладки существует риск того, что код устареет. Это происходит, когда отладчик продолжает выполнять старый код, не учитывающий внесенные вами изменения. В подобной ситуации отладчик выводит диалоговое окно с соответствующим сообщением. В некоторых случаях может потребоваться нажать клавишу F5, чтобы обновить выполняемый код. В частности, если вы вносите изменения внутри функции, когда точка выполнения находится внутри этой же функции, вам потребуется выполнить шаг с выходом из функции, а затем вернуться в нее, чтобы получить обновленный код. Если по какой-либо причине это не работает и вы видите сообщение об ошибке, можно остановить отладку, щелкнув красный квадрат на панели инструментов под меню в верхней части интегрированной среды разработки, а затем перезапустить отладку, нажав клавишу F5 или выбрав зеленую стрелку "воспроизведения" рядом с кнопкой остановки на панели инструментов.

  • Клавиша F5 (или команда Отладка > Запустить отладку) запускает сеанс отладки, если он еще не активен, и выполняет программу до тех пор, пока не будет встречена точка останова либо программе не потребуются вводимые пользователем данные. Если вводимые пользователем данные не требуются и точка останова отсутствует, программа завершает работу, а окно консоли автоматически закрывается после завершения выполнения программы. Если вы выполняете программу уровня "Hello World", используйте сочетание клавиш CTRL+F5 или задайте точку останова перед нажатием клавиши F5, чтобы окно оставалось открытым.
  • Сочетание клавиш CTRL+F5 (или команда Отладка > Запуск без отладки) запускает приложение без перехода в режим отладки. Это немного быстрее отладки, а окно консоли остается открытым после завершения выполнения программы.
  • Клавиша F10 (соответствующая возможности Шаг с обходом) позволяет выполнять построчную итерацию по коду, а также визуализировать выполнение кода и значения переменных на каждом шаге выполнения.
  • Клавиша F11 (соответствующая возможности Шаг с заходом) работает аналогично возможности Шаг с обходом, за исключением того, что заходит в любые функции, вызываемые в строке выполнения. Например, если в выполняемой строке вызывается функция, при нажатии клавиши F11 указатель перемещается в тело функции, чтобы вы могли проследить выполнение кода функции, прежде чем вернуться на исходную строку. При нажатии клавиши F10 выполняется шаг с обходом по вызову функции и простой переход на следующую строку. Вызов функции все равно выполняется, но программа не приостанавливается, чтобы показать вам, что именно она делает.

Закрытие приложения

  • Если оно все еще выполняется, закройте окно консоли для приложения калькулятора.

Добавление системы управления исходным кодом Git

Теперь, когда вы создали приложение, вы можете добавить его в репозиторий Git. Мы их предоставим. Visual Studio упрощает этот процесс с помощью инструментов Git, которые вы можете использовать непосредственно из IDE.

Git — это наиболее широко используемая современная система контроля версий, поэтому, независимо от того, являетесь ли вы профессиональным разработчиком или учитесь программировать, Git может быть для вас весьма полезным. Если вы новичок в Git, вы можете начать с сайта https://git-scm.com/. Там вы найдете памятки, популярную электронную книгу и видеоматериалы по основам GIT.

Чтобы связать свой код с Git, вы начинаете с создания нового репозитория Git, в котором находится ваш код. Вот как это сделать.

В строке состояния в правом нижнем углу Visual Studio нажмите Добавить в систему управления версиями и выберите Git.

Снимок экрана кнопок управления исходным кодом Git под панелью обозревателя решений с выделенной кнопкой &quot;Добавить в элемент управления версиями&quot;.

В диалоговом окне Создать репозиторий Git войдите в GitHub.

Снимок экрана диалогового окна &quot;Создание репозитория Git&quot;, в котором можно войти в GitHub.

Имя репозитория заполняется автоматически в зависимости от расположения вашей папки. По умолчанию ваш новый репозиторий является частным. Это означает, что только вы можете получить к нему доступ.

Независимо от того, является ли ваш репозиторий общедоступным или частным, лучше всего иметь удаленную резервную копию кода, надежно хранящуюся на GitHub. Даже если вы не работаете с командой, удаленный репозиторий позволит получать доступ к коду с любого компьютера.

Щелкните Создать и отправить.

После того как вы создали свой репозиторий, вы увидите информацию о статусе в строке состояния.

Снимок экрана строки состояния репозитория под панелью обозревателя решений в Visual Studio.

Первый значок со стрелками показывает, сколько исходящих и входящих фиксаций в вашей текущей ветке. Вы можете использовать этот значок, чтобы получать любые входящие или исходящие фиксации. Вы также можете выбрать отображение этих фиксаций в первую очередь. Для этого щелкните значок и выберите Просмотреть исходящие/входящие.

Второй значок с карандашом показывает количество незафиксированных изменений в вашем коде. Щелкните этот значок, чтобы просмотреть эти изменения в окне Git Changes.

Чтобы узнать больше о том, как использовать Git с вашим приложением, см. документацию по управлению версиями Visual Studio.

Готовое приложение

Поздравляем! Вы завершили написание кода для приложения калькулятора, а также выполнили его сборку и отладку и добавили его в репозиторий — и все это в Visual Studio.

Следующие шаги

Обычной отправной точкой для программиста на C++ является приложение "Hello World", выполняемое в командной строке. Вот что вы создадите в Visual Studio в этой статье, и затем мы перейдем к более сложной задаче: приложению калькулятора.

Предварительные требования

  • Установите и запустите на своем компьютере Visual Studio с рабочей нагрузкой Разработка классических приложений на C++ . Если установка еще не выполнена, см. статью Установка поддержки C++ в Visual Studio.

Создание проекта приложения

Visual Studio использует проекты, чтобы упорядочить код для приложения, и решения, чтобы упорядочить проекты. Проект содержит все параметры, конфигурации и правила, используемые для сборки приложения. Кроме того, он управляет связью между всеми файлами проекта и любыми внешними файлами. Чтобы создать приложение, сначала создайте проект и решение.

В строке меню Visual Studio последовательно выберите Файл > Создать > Проект. Открывается окно Новый проект.

На боковой панели слева выберите Visual C++ . В центральной области выберите Консольное приложение Windows.

В поле ввода Имя внизу введите имя нового проекта CalculatorTutorial, а затем нажмите кнопку ОК.

Диалоговое окно "Новый проект".

Будет создано пустое консольное приложение Windows на C++. Консольные приложения используют окно консоли Windows для отображения выходных данных и приема данных, вводимых пользователем. В Visual Studio откроется окно редактора с созданным кодом.

Проверка сборки и выполнения нового приложения

Шаблон для нового консольного приложения Windows создает простое приложение "Hello World" на C++. На этом этапе вы можете видеть, как Visual Studio создает и запускает созданные вами приложения прямо из интегрированной среды разработки.

Для сборки проекта выберите в меню Сборка пункт Собрать решение. Окно Вывод отображает результаты процесса сборки.

Снимок экрана: Visual Studio с окном выходных данных, в котором отображается результат процесса сборки.

Чтобы запустить этот код, в строке меню выберите Отладка и Запуск без отладки.

Снимок экрана: консоль отладки Microsoft Visual Studio с отображением успешного выполнения кода.

Открывается окно консоли, и запускается ваше приложение. При запуске консольного приложения в Visual Studio система выполняет код, а затем выводит сообщение "Нажмите любую клавишу, чтобы продолжить. . ." чтобы вы могли просмотреть выходные данные. Поздравляем! Вы создали свое первое консольное приложение "Hello World" в Visual Studio!

Нажмите любую клавишу, чтобы закрыть окно консоли и вернуться в редактор Visual Studio.

Теперь у вас есть средства для сборки и запуска приложения после каждого изменения, чтобы убедиться, что код по-прежнему работает должным образом. Позже мы покажем, как выполнить его отладку при неправильной работе.

Изменение кода

Теперь давайте превратим код в этом шаблоне в приложение калькулятора.

В файле CalculatorTutorial.cpp измените код таким образом, чтобы он соответствовал этому примеру:

  • Операторы #include позволяют ссылаться на код, расположенный в других файлах. Иногда вы можете увидеть имя файла, заключенное в угловые скобки ( <> ), а в других случаях — в кавычки ( " " ). В общем случае угловые скобки используются при ссылке на стандартную библиотеку C++, а кавычки — для других файлов.
  • Строка #include "pch.h" (или файл #include "stdafx.h" в версиях, предшествующих Visual Studio 2017) ссылается на некий объект, известный как предкомпилированный заголовок. Они части используются профессиональными программистами для улучшения времени компиляции, однако выходят за рамки материала, обсуждаемого в этом руководстве.
  • Строка using namespace std; сообщает компилятору ожидать данные от стандартной библиотеки C++ для использования в этом файле. Без нее каждое ключевое слово из этой библиотеки пришлось бы предварять элементом std:: , чтобы обозначить его область. Например, без этой строки каждую ссылку на cout потребовалось бы записывать в виде std::cout . Оператор using добавляется, чтобы сделать код более понятным.
  • Ключевое слово cout используется для вывода сведений в стандартный поток вывода в C++. Оператор << указывает компилятору отправить все содержимое справа от него в стандартный поток вывода.
  • Ключевое слово endl аналогично клавише ВВОД — оно завершает строку и переводит курсор на следующую строку. Для выполнения той же задачи рекомендуется помещать \n внутрь строки (заключенной в ""), так как endl всегда освобождает буфер и может негативно повлиять на производительность программы, но из-за того, что это очень небольшое приложение, в нем используется endl для улучшения удобочитаемости.
  • Все операторы C++ должны заканчиваться точкой с запятой, а все приложения C++ — содержать функцию main() . Именно ее программа выполняет при запуске. Для использования весь код должен быть доступен из main() .

Чтобы сохранить файл, нажмите клавиши CTRL+S или выберите элемент Сохранить в верхней части интегрированной среды разработки, выглядящий как значок гибкого диска на панели инструментов в строке меню.

Чтобы запустить приложение, нажмите клавиши CTRL+F5 или перейдите в меню Отладка и выберите Запуск без отладки. Если отображается всплывающее окно This project is out of date (Этот проект устарел), можно выбрать Больше не показывать это диалоговое окно, а затем — Да, чтобы создать приложение. Должно отобразится окно консоли с текстом, указанным в коде.

По завершении закройте окно консоли.

Добавление кода для выполнения математических операций

Пора добавить математическую логику.

Добавление класса Calculator

В меню Проект выберите команду Добавить класс. В поле ввода Имя класса введите Calculator. Нажмите кнопку ОК. В проект будут добавлены два новых файла. Чтобы сохранить сразу все измененные файлы, нажмите клавиши CTRL+SHIFT+S. Это сочетание клавиш для команды Файл > Сохранить все. Кроме того, есть кнопка Сохранить все на панели инструментов. Она имеет вид значка с двумя дискетами рядом с кнопкой Сохранить. В общем случае рекомендуется регулярно нажимать кнопку Сохранить все, чтобы не пропустить никакие файлы при сохранении.

Класс подобен схеме для объекта, который выполняет какие-либо действия. В этом случае мы определяем калькулятор и особенности его работы. Использованный ранее мастер Добавить класс создал файлы H и CPP, имя которых совпадает с именем класса. Вы можете просмотреть полный список файлов проекта в окне обозревателя решений, отображаемом в боковой части окна IDE. Если окно не отображается, его можно открыть из строки меню, выбрав Вид > Обозреватель решений.

Снимок экрана: окно обозревателя решений, в котором отображается проект Calculator Tutorial.

Теперь у вас в редакторе должно быть открыто три вкладки: CalculatorTutorial.cpp, Calculator.h и Calculator.cpp. Если вы случайно закроете одну из них, то можете повторно открыть эту вкладку, дважды щелкнув ее в окне обозревателя решений.

На вкладке Calculator.h удалите созданные строки Calculator(); и

Calculator(); , так как здесь они вам не понадобятся. Затем добавьте следующую строку кода, чтобы файл выглядел следующим образом:

  • Добавленная строка объявляет новую функцию Calculate , которую мы используем для выполнения математических операций, таких как сложение, вычитание, умножение и деление.
  • Код C++ упорядочен по файлам заголовка (H) и исходным файлам (CPP). Различные компиляторы поддерживают несколько других расширений имени файла, но это основные, о которых вам нужно знать. Функции и переменные обычно объявляются, то есть получают имя и тип, в файлах заголовка, и реализуются, то есть получают определение, в исходных файлах. Чтобы обратиться к коду, определенному в другом файле, вы можете использовать #include "filename.h" , где "filename.h" — это имя файла, объявляющего переменные или функции, которые требуется использовать.
  • Две удаленные строки объявляли конструктор и деструктор для класса. Для такого простого класса компилятор создает их автоматически, а их использование выходит за рамки данного руководства.
  • Рекомендуется упорядочивать код по различным файлам в зависимости от его назначения, чтобы позднее было проще найти нужный код. В данном случае мы определяем класс Calculator отдельно от файла, содержащего функцию main() , но планируем ссылаться на класс Calculator в main() .

Под Calculate появится зеленая волнистая линия. Это вызвано тем, что мы еще не определили функцию Calculate в CPP-файле. Наведите указатель на это слово, щелкните появившуюся лампочку и выберите Создать определение "Calculate" в Calculator.cpp. Отображается всплывающее окно, сообщающее об изменении кода, внесенном в другом файле. Код был добавлен в Calculator.cpp.

Сейчас он возвращает просто 0.0. Давайте изменим это. Нажмите клавишу ESC, чтобы закрыть всплывающее окно.

Переключитесь на файл Calculator.cpp в окне редактора. Удалите разделы Calculator() и

Calculator() (как сделали в H-файле) и добавьте в Calculate() следующий код:

  • Функция Calculate использует число, оператор и второе число, а затем выполняет запрошенную операцию над этими числами.
  • Оператор switch проверяет, какой оператор был предоставлен, и выполняет только вариант (case), соответствующий этой операции. Вариант default: является резервным на тот случай, если пользователь вводит неприемлемый оператор, чтобы программа не прервала работу. В общем случае лучше обрабатывать некорректный ввод данных пользователем более элегантным способом, но это выходит за рамки данного руководства.
  • Ключевое слово double обозначает тип числа, который поддерживает десятичные числа. Таким образом, калькулятор может выполнять математические операции с десятичными и целыми числами. Функция Calculate должна всегда возвращать такое число из-за типа double в самом начале кода (обозначает возвращаемый тип функции), поэтому даже в случае по умолчанию возвращается значение 0,0.
  • H-файл объявляет функцию prototype, которая заранее сообщает компилятору, какой параметр требуется и какой тип возвращаемого значения следует ожидать. CPP-файл содержит все сведения о реализации этой функции.

Если построить и запустить код еще раз на этом этапе, он по-прежнему завершит работу после запроса операции для выполнения. Далее вам нужно изменить функцию main для выполнения вычислений.

Вызов функций-членов класса Calculator

Теперь давайте изменим функцию main в CalculatorTutorial.cpp:

  • Так как программы C++ всегда запускаются с функции main() , нам нужно вызвать из нее другой, для чего нужен оператор #include .
  • Объявлены начальные переменные x , y , oper и result для хранения, соответственно, первого числа, второго числа, оператора и окончательного результата. Рекомендуется всегда присваивать им некоторые начальные значения, чтобы избежать неопределенного поведения. Это мы здесь и делаем.
  • Строка Calculator c; объявляет объект "c" в качестве экземпляра класса Calculator . Сам класс является лишь схемой для описания работы калькуляторов, а объект — это конкретный калькулятор, который выполняет вычисления.
  • Оператор while (true) является циклом. Код внутри этого цикла продолжает выполняться снова и снова, пока выполняется условие в () . Так как условие просто указано как true , оно всегда выполняется, поэтому цикл выполняется бесконечно. Чтобы закрыть программу, пользователю нужно вручную закрыть окно консоли. В противном случае программа будет постоянно ожидать новые входные данные.
  • Ключевое слово cin используется для получения входных данных от пользователя. Этот входной поток способен обработать строку текста, введенного в окне консоли, и поместить ее внутрь каждой из перечисленных переменных в указанном порядке, при условии, что введенные пользователем данные соответствуют требуемой спецификации. Вы можете изменить эту строку, чтобы принять другие типы входных данных, например, больше двух чисел, однако для этого также потребуется изменить функцию Calculate() .
  • Выражение c.Calculate(x, oper, y); вызывает определенную ранее функцию Calculate и предоставляет введенные входные значения. Затем она возвращает число, сохраняемое в result .
  • Наконец, в консоль выводится result , благодаря чему пользователь видит результат вычисления.

Повторная сборка и проверка кода

Пришло время снова протестировать программу еще раз, чтобы убедиться в ее правильной работе.

Нажмите клавиши CTRL+F5, чтобы перестроить и запустить приложение.

Введите 5 + 5 и нажмите клавишу ВВОД. Убедитесь, что выводится результат 10.

Снимок экрана: консоль отладки Microsoft Visual Studio с отображением правильного результата вычисления "5+5".

Отладка приложения

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

Запуск приложения в отладчике

Установите точку останова на строке result = c.Calculate(x, oper, y); , сразу после запроса входных данных у пользователя. Чтобы задать точку останова, щелкните рядом со строкой серую вертикальную панель, идущую вдоль левой части окна редактора. Появится красная точка.

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

Щелкните правой кнопкой мыши красную точку, обозначающую точку останова, и выберите команду Условия. В поле ввода для условия введите (y == 0) && (oper == ‘/’) . По завершении операции нажмите кнопку Закрыть. Условия сохранятся автоматически.

Теперь выполнение приостанавливается в точке останова, в частности при попытке деления на 0.

Чтобы отладить программу, нажмите клавишу F5 или выберите Локальный отладчик Windows — кнопку панели инструментов со значком зеленой стрелки. Если ввести в консольном приложении нечто вроде "5 — 0", программа работает как обычно и продолжает выполнение. Но если ввести "10 / 0", она приостанавливает выполнение в точке останова. Вы можете ввести любое число пробелов между оператором и числами; функция cin достаточно интеллектуальна для того, чтобы правильно проанализировать входные данные.

Полезные окна в отладчике

Каждый раз при отладке кода вы можете заметить, что появляется несколько новых окон. Они могут оказаться полезными в процессе отладки. Давайте рассмотрим окно Видимые. Окно Видимые содержит текущие значения переменных, используемых по меньшей мере за три строки перед текущей строкой.

Окно "Видимые".

Чтобы просмотреть все переменные из этой функции, переключитесь в окно Локальные. Вы можете изменять значения этих переменных во время отладки, чтобы оценить их влияние на программу. В данном случае мы оставим их без изменений.

Снимок экрана: окно "Локальные".

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

Продолжение отладки

Желтая линия слева показывает текущую точку выполнения. Текущая строка вызывает Calculate , поэтому нажмите клавишу F11, чтобы выполнить Шаг с заходом для этой функции. Вы переходите в тело функции Calculate . Обдуманно применяйте функцию Шаг с заходом, чтобы не терять время из-за чрезмерного ее использования. С помощью функции анализируется любой код, используемый в текущей строке, включая стандартные функции библиотеки.

Теперь, когда точка выполнения находится в начале функции Calculate , нажмите клавишу F10 для перехода на следующую строку в рамках выполнения программы. При нажатии клавиши F10 активируется функция Шаг с обходом. Шаг с обходом можно использовать для перемещения по строкам, не вдаваясь в подробности того, что происходит в каждой части строки. В общем случае следует использовать Шаг с обходом, а не Шаг с заходом, если только вы не хотите подробно изучить код, вызываемый из другого расположения (как в случае с переходом к телу функции Calculate ).

Продолжайте использовать клавишу F10, чтобы выполнять Шаг с обходом для каждой строки, пока не вернетесь к функции main() в другом файле, и остановитесь на строке cout .

Похоже, программа работает правильно — принимает первое число и делит его на второе. В строке cout наведите указатель мыши на переменную result или взгляните на result в окне Видимые. Соответствующее значение отображается как inf. Это неправильное поведение, и нужно его скорректировать. В строке cout просто выводится любое значение, хранящееся в result . Поэтому при продвижении еще на один шаг с помощью клавиши F10 в окне консоли отображается следующее:

Снимок экрана: консоль отладки Microsoft Visual Studio с отображением результата деления на ноль.

Причина такого результата в том, что деление на ноль является неопределенным, поэтому у программы нет числового ответа на запрошенную операцию.

Исправление ошибки деления на ноль

Давайте обеспечим корректную обработку деления на ноль, чтобы пользователь мог осознать проблему.

Внесите следующие изменения в CalculatorTutorial.cpp. (Прерывать выполнение программы при редактировании не требуется благодаря функции отладчика Изменить и продолжить):

Теперь нажмите клавишу F5 один раз. При этом выполнение программы продолжается вплоть до приостановки для запроса данных, вводимых пользователем. Снова введите 10 / 0 . Теперь выводится более информативное сообщение. У пользователя запрашиваются дополнительные входные данные, и программа продолжает выполнение в обычном режиме.

При редактировании кода в режиме отладки существует риск того, что код устареет. Это происходит, когда отладчик продолжает выполнять старый код, не учитывающий внесенные вами изменения. В подобной ситуации отладчик выводит диалоговое окно с соответствующим сообщением. В некоторых случаях может потребоваться нажать клавишу F5, чтобы обновить выполняемый код. В частности, если вы вносите изменения внутри функции, когда точка выполнения находится внутри этой же функции, вам потребуется выполнить шаг с выходом из функции, а затем вернуться в нее, чтобы получить обновленный код. Если по какой-либо причине это не работает и вы видите сообщение об ошибке, можно остановить отладку, щелкнув красный квадрат на панели инструментов под меню в верхней части интегрированной среды разработки, а затем перезапустить отладку, нажав клавишу F5 или выбрав зеленую стрелку "воспроизведения" рядом с кнопкой остановки на панели инструментов.

  • Клавиша F5 (или команда Отладка > Запустить отладку) запускает сеанс отладки, если он еще не активен, и выполняет программу до тех пор, пока не будет встречена точка останова либо программе не потребуются вводимые пользователем данные. Если вводимые пользователем данные не требуются и точка останова отсутствует, программа завершает работу, а окно консоли автоматически закрывается после завершения выполнения программы. Если вы выполняете программу уровня "Hello World", используйте сочетание клавиш CTRL+F5 или задайте точку останова перед нажатием клавиши F5, чтобы окно оставалось открытым.
  • Сочетание клавиш CTRL+F5 (или команда Отладка > Запуск без отладки) запускает приложение без перехода в режим отладки. Это немного быстрее отладки, а окно консоли остается открытым после завершения выполнения программы.
  • Клавиша F10 (соответствующая возможности Шаг с обходом) позволяет выполнять построчную итерацию по коду, а также визуализировать выполнение кода и значения переменных на каждом шаге выполнения.
  • Клавиша F11 (соответствующая возможности Шаг с заходом) работает аналогично возможности Шаг с обходом, за исключением того, что заходит в любые функции, вызываемые в строке выполнения. Например, если в выполняемой строке вызывается функция, при нажатии клавиши F11 указатель перемещается в тело функции, чтобы вы могли проследить выполнение кода функции, прежде чем вернуться на исходную строку. При нажатии клавиши F10 выполняется шаг с обходом по вызову функции и простой переход на следующую строку. Вызов функции все равно выполняется, но программа не приостанавливается, чтобы показать вам, что именно она делает.

Закрытие приложения

  • Если оно все еще выполняется, закройте окно консоли для приложения калькулятора.

Поздравляем! Вы завершили написание кода для приложения калькулятора, а также выполнили его сборку и отладку в Visual Studio.

Читать:
Как сделать хостинг игровых серверов

Похожие статьи