Vytvoření kalkulačky konzoly v C++
Obvyklým výchozím bodem programátora jazyka C++ je aplikace "Hello, world!", která běží na příkazovém řádku. Začnete s tím v tomto článku a pak přejdeme k něčemu náročnějšímu: aplikaci kalkulačky.
Požadavky
- Visual Studio s vývojem desktopových aplikací s nainstalovanou a spuštěnou úlohou jazyka C++ na vašem počítači Pokud ho chcete nainstalovat, přečtěte si téma Instalace podpory jazyka C++ v sadě Visual Studio.
- Tento kurz ukazuje funkci nazvanou úpravy a pokračování, která umožňuje provádět změny kódu, když je aplikace spuštěná. Pokud chcete povolit úpravy a pokračovat, v hlavní nabídce vyberte Možnosti>nástroje>Ladění>Obecné a ujistěte se, že je zaškrtnuté políčko Vyžadovat zdrojové soubory přesně podle původní verze.
Vytvoření projektu aplikace
Visual Studio používá projekty k uspořádání kódu pro aplikaci a řešení k uspořádání jednoho nebo více projektů. Projekt obsahuje všechny možnosti, konfigurace a pravidla použitá k sestavení aplikace. Spravuje také vztah mezi všemi soubory projektu a všemi externími soubory. Pokud chcete vytvořit aplikaci, nejprve vytvořte nový projekt a řešení.
Spusťte Visual Studio – zobrazí se dialogové okno Start sady Visual Studio. Začněte výběrem možnosti Vytvořit nový projekt .
Dialogové okno obsahuje možnosti klonování úložiště, otevření projektu nebo řešení, otevření místní složky a vytvoření nového projektu.
V seznamu šablon projektů vyberte Konzolová aplikace a pak vyberte Další.
Důležité
Ujistěte se, že jste vybrali verzi C++ šablony konzolové aplikace . Má značky C++, Windows a Konzoly a v rohu má ikonu "++".
V dialogovém okně Konfigurovat nový projekt vyberte textové pole Název projektu, pojmenujte nový projekt CalculatorTutorial a pak vyberte Vytvořit.
Vytvoří se prázdná konzolová aplikace C++ pro Windows Hello World. Konzolové aplikace používají okno konzoly systému Windows k zobrazení výstupu a přijetí uživatelského vstupu. V sadě Visual Studio se otevře okno editoru a zobrazí vygenerovaný kód:
// CalculatorTutorial.cpp : This file contains the 'main' function. Program execution begins and ends there. // #include <iostream> int main() { std::cout << "Hello World!\n"; } // Run program: Ctrl + F5 or Debug > Start Without Debugging menu // Debug program: F5 or Debug > Start Debugging menu // Tips for Getting Started: // 1. Use the Solution Explorer window to add/manage files // 2. Use the Team Explorer window to connect to source control // 3. Use the Output window to see build output and other messages // 4. Use the Error List window to view errors // 5. Go to Project > Add New Item to create new code files, or Project > Add Existing Item to add existing code files to the project // 6. In the future, to open this project again, go to File > Open > Project and select the .sln file
Ověřte, že se vaše nová aplikace sestaví a spustí.
Šablona pro novou konzolovou aplikaci pro Windows vytvoří jednoduchou aplikaci "Hello World" V jazyce C++. V tomto okamžiku si můžete prohlédnout, jak Visual Studio sestaví a spustí aplikace, které vytvoříte přímo z integrovaného vývojového prostředí (IDE).
Projekt sestavíte tak, že v nabídce Sestavení vyberete Sestavit řešení. V okně Výstup se zobrazí výsledky procesu sestavení.
Pokud chcete kód spustit, na řádku nabídek vyberte Ladit, Spustit bez ladění (Ctrl+F5).
Otevře se okno konzoly a pak spustí vaši aplikaci.
Když spustíte konzolovou aplikaci v sadě Visual Studio, spustí se váš kód a vytiskne se "Stisknutím libovolné klávesy zavřete toto okno . . ", abyste získali šanci zobrazit výstup.
Gratulujeme! V sadě Visual Studio jste vytvořili svou první konzolovou aplikaci Hello, world!.
Stisknutím klávesy zavřete okno konzoly a vraťte se do sady Visual Studio.
Teď máte nástroje pro sestavení a spuštění aplikace po každé změně, abyste ověřili, že kód stále funguje podle očekávání. Později vám ukážeme, jak ho ladit, pokud ne.
Úprava kódu
Teď upravíme kód v této šabloně tak, aby byl aplikací kalkulačky.
CalculatorTutorial.cpp
Obsah souboru nahraďte následujícím kódem, aby odpovídal tomuto příkladu:// CalculatorTutorial.cpp : This file contains the 'main' function. Program execution begins and ends there. // #include <iostream> using namespace std; int main() { cout << "Calculator Console Application" << endl << endl; cout << "Please enter the operation to perform. Format: a+b | a-b | a*b | a/b" << endl; return 0; } // Run program: Ctrl + F5 or Debug > Start Without Debugging menu // Debug program: F5 or Debug > Start Debugging menu // Tips for Getting Started: // 1. Use the Solution Explorer window to add/manage files // 2. Use the Team Explorer window to connect to source control // 3. Use the Output window to see build output and other messages // 4. Use the Error List window to view errors // 5. Go to Project > Add New Item to create new code files, or Project > Add Existing Item to add existing code files to the project // 6. In the future, to open this project again, go to File > Open > Project and select the .sln file
Principy kódu:
- Příkazy
#include
umožňují odkazovat na kód umístěný v jiných souborech. Někdy se může zobrazit název souboru obklopený úhlovými závorkami (<>); jindy je obklopen uvozovkami (" "). Obecně platí, že při odkazování na standardní knihovnu C++ se používají úhlové závorky, zatímco uvozovky se používají pro jiné soubory. - Řádek
using namespace std;
říká kompilátoru, aby očekával, že se budou v tomto souboru používat věci ze standardní knihovny jazyka C++. Bez tohoto řádku by každé klíčové slovo z knihovny muselo předcházetstd::
, aby bylo možné označit jeho rozsah. Například bez toho řádku by každý odkazcout
musel být zapsán jakostd::cout
. Příkazusing
se přidá, aby kód vypadal čistěji. - Klíčové
cout
slovo slouží k tisku do standardního výstupu v jazyce C++. Operátor << říká kompilátoru, aby do standardního výstupu odeslal cokoli, co je napravo od něj. - Klíčové
endl
slovo je jako klávesa Enter; končí řádek a přesune kurzor na další řádek. Je lepší dát\n
do řetězce (obsaženého""
) stejný postup, protožeendl
vždy vyprázdní vyrovnávací paměť, která může poškodit výkon programu. Vzhledem k tomu, že se jedná o velmi malou aplikaci,endl
používá se místo toho pro lepší čitelnost. - Všechny příkazy jazyka C++ musí končit středníky a všechny aplikace jazyka
main()
C++ musí obsahovat funkci. Tato funkce je to, co program spouští na začátku. Aby bylo možné použít veškerý kód, musí být přístupný.main()
- Příkazy
Pokud chcete soubor uložit, stiskněte Ctrl+S nebo vyberte ikonu Uložit v horní části integrovaného vývojového prostředí (IDE), ikonu diskety na panelu nástrojů pod řádkem nabídek.
Pokud chcete aplikaci spustit, stiskněte Ctrl+F5 nebo přejděte do nabídky Ladění a vyberte Spustit bez ladění. Mělo by se zobrazit okno konzoly, které zobrazuje text zadaný v kódu.
Až budete hotovi, zavřete okno konzoly.
Přidání kódu pro určitou matematiku
Třída je jako podrobný plán objektu, který něco dělá. V tomto případě definujeme třídu kalkulačky, která bude obsahovat matematickou logiku.
Přidání třídy Kalkulačka
Přejděte do nabídky Projekt a vyberte Přidat třídu. Do textového pole Název třídy zadejte Kalkulačku. Vyberte OK.
Pole název třídy je nastaveno na kalkulačku. Pole souboru .h obsahuje Calculator.h. Pole souboru .cpp obsahuje Calculator.cpp. Pole základní třídy je prázdné. Další možnosti pro virtuální destruktor, vložený a nespravovaný není zaškrtnuto.
Do projektu se přidají dva nové soubory. Pokud chcete uložit všechny změněné soubory najednou, stiskněte Kombinaci kláves Ctrl+Shift+S. Jedná se o klávesovou zkratku pro ukládání souborů>. Vedle tlačítka Uložit je také tlačítko panelu nástrojů pro uložit vše, ikona dvou disket. Obecně platí, že je vhodné provést možnost Uložit vše často, takže při ukládání nezmeškáte žádné soubory.
Průvodce přidáním třídy vytvoří
.h
a.cpp
soubory, které mají stejný název jako třída. Úplný seznam souborů projektu můžete zobrazit v okně Průzkumník řešení, který je viditelný na straně integrovaného vývojového prostředí (IDE). Pokud okno není viditelné, můžete ho otevřít z řádku nabídek: vyberte Zobrazit> Průzkumník řešení.Projekt kurzu kalkulačky obsahuje uzel souborů hlaviček obsahující Calculator.h. Uzel Zdrojové soubory obsahuje Calculator.cpp a CalculatorTutorial.cpp. Uzly pro odkazy, externí závislosti a soubory prostředků jsou viditelné, ale zavřené.
Soubor můžete otevřít poklikáním v okně Průzkumník řešení. Poklikáním
Calculator.h
ho otevřete.Nahraďte obsah
Calculator.h
následujícím kódem, aby soubor teď vypadal takto:#pragma once class Calculator { public: double Calculate(double x, char oper, double y); };
Vysvětlení kódu
- Tento kód deklaruje novou funkci s názvem
Calculate
, kterou používáme ke spouštění matematických operací pro sčítání, odčítání, násobení a dělení. - Kód C++ je uspořádaný do souborů hlaviček (
.h
) a zdrojových (.cpp
) souborů. Různé kompilátory podporují několik dalších přípon souborů, ale jsou to hlavní, o kterých je potřeba vědět. Funkce a proměnné jsou obvykle deklarovány, to znamená, že mají název a typ, v souborech hlaviček a implementují se nebo mají definici ve zdrojových souborech. Pro přístup k kódu definovanému v jiném souboru můžete použít#include "filename.h"
, kdefilename.h
je název souboru, který deklaruje proměnné nebo funkce, které chcete použít. - Je vhodné kód uspořádat do různých souborů na základě toho, co dělá, takže kód, který budete potřebovat, snadno najdete později. V našem případě definujeme
Calculator
třídu odděleně od souboru obsahujícíhomain()
funkci, ale plánujeme odkazovat naCalculator
třídu vmain()
.
- Tento kód deklaruje novou funkci s názvem
Pod zelenou vlnovkou se zobrazí
Calculate
zelená vlnovka, protože i kdyžCalculate
je funkce deklarována, není definována. NajeďteCalculate
myší , klikněte na šipku dolů na šroubováku, který se zobrazí, a vyberte Vytvořit definici "Calculate" inCalculator.cpp
.Tento kód se přidá do
Calculator.cpp
:Definice konstruktoru je: double Calculator::Calculate( double x; char oper; double y) { return 0,0; }
V současné době vrátí pouze hodnotu 0,0. Pojďme to změnit.
Přepněte do
Calculator.cpp
souboru v okně editoru. Nahraďte obsahCalculator::Calculate(double x, char oper, double y)
tímto obsahem:double Calculator::Calculate(double x, char oper, double y) { switch(oper) { case '+': return x + y; case '-': return x - y; case '*': return x * y; case '/': return x / y; default: return 0.0; } }
Vysvětlení kódu
- Funkce
Calculate
využívá číslo, operátor a druhé číslo a potom provede požadovanou operaci s čísly. - Příkaz switch zkontroluje, který operátor byl poskytnut, a provede pouze případ odpovídající dané operaci. Výchozí hodnota: Případ je náhradní v případě, že uživatel zadá operátor, který není přijat, takže program se neruší. Obecně je nejlepší zpracovat neplatný uživatelský vstup elegantnějším způsobem, ale to je nad rámec tohoto kurzu.
- Klíčové
double
slovo označuje typ čísla, který podporuje desetinná místa. Kalkulačka tak dokáže zpracovat desetinnou matematiku i celočíselnou matematiku. FunkceCalculate
je povinná vždy vrátit takové číslo, protožedouble
na začátku kódu (označuje návratový typ funkce), což je důvod, proč vrátíme hodnotu 0,0 i ve výchozím případě. - Soubor
.h
deklaruje prototyp funkce, který kompilátoru předem řekne, jaké parametry vyžaduje, a jaký návratový typ má od něj očekávat. Soubor.cpp
obsahuje všechny podrobnosti implementace funkce.
- Funkce
Pokud kód sestavíte a spustíte znovu v tomto okamžiku, okamžitě se ukončí po zadání operace, která se má provést. Proto upravte main
funkci tak, aby dělala více výpočtů.
Calculator
Volání členských funkcí třídy
Aktualizujte
main
funkciCalculatorTutorial.cpp
následujícím způsobem:// CalculatorTutorial.cpp : This file contains the 'main' function. Program execution begins and ends there. // #include <iostream> #include "Calculator.h" using namespace std; int main() { double x = 0.0; double y = 0.0; double result = 0.0; char oper = '+'; cout << "Calculator Console Application" << endl << endl; cout << "Please enter the operation to perform. Format: a+b | a-b | a*b | a/b" << endl; Calculator c; while (true) { cin >> x >> oper >> y; result = c.Calculate(x, oper, y); cout << "Result " << "of " << x << oper << y << " is: " << result << endl; } return 0; }
Vysvětlení kódu
- Vzhledem k tomu, že programy C++ vždy začínají na
main()
funkci, musíme odtamtud volat náš další kód, takže je potřeba příkaz#include
. - Některé počáteční proměnné
x
, ,y
oper
aresult
jsou deklarovány pro uložení prvního čísla, druhého čísla, operátoru a konečného výsledku. Vždy je vhodné jim dát nějaké počáteční hodnoty, aby se zabránilo nedefinované chování, což se tady dělá. - Řádek
Calculator c;
deklaruje objekt s názvem c jako instanciCalculator
třídy. Samotná třída je pouze podrobný plán, jak kalkulačky fungují; objekt je konkrétní kalkulačka, která provádí matematiku. - Příkaz
while (true)
je smyčka. Kód uvnitř smyčky se bude i nadále spouštět znovu, dokud podmínka uvnitř blokování()
true. Vzhledem k tomu, že podmínka je jednoduše uvedena jakotrue
, je vždy true, takže smyčka běží navždy. Chcete-li program zavřít, musí uživatel ručně zavřít okno konzoly. Jinak program vždy čeká na nový vstup. - Klíčové
cin
slovo se používá k přijetí vstupu od uživatele. Tento vstupní datový proud je dostatečně inteligentní pro zpracování řádku textu zadaného v okně konzoly a jeho umístění do každé z uvedených proměnných v uvedeném pořadí za předpokladu, že vstup uživatele odpovídá požadované specifikaci. Tento řádek můžete upravit tak, aby přijímal různé typy vstupu, například více než dvě čísla, i kdyžCalculate()
by funkce také potřebovala aktualizovat, aby to zvládla. - Výraz
c.Calculate(x, oper, y);
volá funkci definovanouCalculate
dříve a poskytuje zadané vstupní hodnoty. Funkce pak vrátí číslo, které se uloží doresult
. - Nakonec se vytiskne do konzoly,
result
takže uživatel uvidí výsledek výpočtu.
- Vzhledem k tomu, že programy C++ vždy začínají na
Opětovné sestavení a otestování kódu
Teď program znovu otestujte, abyste měli jistotu, že všechno funguje správně.
Stisknutím kombinace kláves Ctrl+F5 aplikaci znovu sestavíte a spustíte.
Zadejte
5+5
a stiskněte Enter. Ověřte, že výsledek je 10.Výstupem aplikace je zpráva: Zadejte operaci, kterou chcete provést. Formát: a+b | a-b | a*b | a/b. Uživatel zadal 5+5. Výstup aplikace: Výsledek 5+5 je: 10
Ladění aplikace
Vzhledem k tomu, že uživatel může do okna konzoly zadat cokoli, pojďme se ujistit, že kalkulačka zpracovává neočekávaný vstup. Místo spuštění programu ho pojďme ladit, abychom mohli zkontrolovat, co dělá krok za krokem.
Spuštění aplikace v ladicím programu
Nastavte
CalcuatorTutorial.cpp
zarážku na řádku:result = c.Calculate(x, oper, y);
. Pokud chcete nastavit zarážku, klikněte vedle čáry na šedém svislém pruhu podél levého okraje okna editoru. Zobrazí se červená tečka.Když teď program ladíme, provádění se na daném řádku pozastaví. Už máme hrubý nápad, že program funguje pro jednoduché případy. Vzhledem k tomu, že nechceme pozastavit provádění při každém volání
Calculate()
, nastavíme podmíněný zarážku.Klikněte pravým tlačítkem myši na červenou tečku, která představuje zarážku, a vyberte Podmínky. Do textového pole podmínky zadejte
(y == 0) && (oper == '/')
. Vyberte tlačítko Zavřít a uložte podmínku zarážky.Podmínka zarážky je: y===0 && oper == '/' Je true.
Spuštění se teď pozastaví na zarážce, když se aplikace pokusí vydělit 0.
Pokud chcete program ladit, stiskněte klávesu F5 nebo vyberte tlačítko panelu nástrojů Místní ladicí program systému Windows s ikonou zelené šipky. Pokud do konzolové aplikace zadáte něco jako "5 –0", program se chová normálně a pořád běží. Pokud ale zadáte "10 / 0", pozastaví se na zarážce. Můžete zadat libovolný počet mezer mezi operátorem a čísly:
cin
je dostatečně inteligentní, abyste mohli správně analyzovat vstup.
Užitečná okna v ladicím programu
Při ladění kódu si můžete všimnout, že se zobrazí některá nová okna. Tato okna vám můžou pomoct s laděním. Podívejte se do okna Automatické položky . V okně Automatické položky se zobrazí aktuální hodnoty proměnných, které se používají alespoň tři řádky před a až do aktuálního řádku.
Hodnota opery je 47 '/', výsledek je 5, x je 10 a y je 0.
Pokud chcete zobrazit všechny proměnné z této funkce, přepněte do okna Místní hodnoty. Hodnoty těchto proměnných můžete upravit při ladění, abyste viděli, jaký vliv mají na program. V tomto případě je necháme samotné.
Hodnota operu je 47 '/', výsledek je 0, x je 10 a y je 0.
Můžete také najet myší na proměnné v kódu a zobrazit jejich aktuální hodnoty v okamžiku, kdy je právě pozastaveno provádění. Kliknutím na okno editoru se nejprve ujistěte, že je na něm fokus.
Pokračovat v ladění
Žlutá šipka vlevo zobrazuje aktuální bod provádění. Volání aktuálního řádku
Calculate
, takže stisknutím klávesy F11 přejděte do funkce. Teď spouštíte kód v těleCalculate
funkce. Krok do buďte opatrní, protože postupují do všech funkcí na řádku, ve kterém jste, včetně standardních funkcí knihovny. Je v pořádku přejít ke standardní knihovně, ale možná vás bude zajímat, že se místo kódu knihovny zaměříte na svůj kód.Teď, když je bod provádění na začátku
Calculate
funkce, stisknutím klávesy F10 přejděte na další řádek provádění programu. F10 se také označuje jako Step Over. Krok přes můžete použít k přechodu z řádku na čáru, aniž byste se museli zabývat podrobnostmi o tom, co se v každé části řádku vyskytuje. Obecně platí, že místo kroku Do byste měli použít krok přes, pokud se nechcete hlouběji ponořit do kódu, který je volána odjinud (stejně jako jste dosáhli tělaCalculate
).Pokračujte v používání klávesy F10 k kroku přes každý řádek, dokud se nedostanete zpět na
main()
funkci v druhém souboru, a zastavte nacout
řádku.Program dělá to, co se očekává: vezme první číslo a vydělí ho druhým číslem.
cout
Na řádku najeďte myší naresult
proměnnou nebo se podívejteresult
do okna Automatické. Jeho hodnotainf
, která nevypadá správně, takže ji opravíme. Řádekcout
jenom vypíše libovolnou hodnotu uloženouresult
, takže když krokujete jeden řádek vpřed pomocí klávesy F10, zobrazí se okno konzoly:Výstup aplikace: Zadejte operaci, kterou chcete provést. Formát: a+b | a-b | a*b | a/b. Uživatel zadal 5-0. Výstup aplikace: Výsledek je: 5. Uživatel THe zadal 10/0. Výstup aplikace: Výsledek je: inf
Výsledkem je, že dělení nulou není definováno, takže program nemá číselnou odpověď na požadovanou operaci.
Oprava chyby "dělit nulou"
Pracujme s dělením nulou elegantněji, aby uživatel snadněji pochopil problém.
Proveďte následující změny v souboru
CalculatorTutorial.cpp
. (Program můžete nechat spuštěný při úpravách, a to díky funkci ladicího programu, která se nazývá Upravit a pokračovat).if
Přidejte následujícícin >> x >> oper >> y;
příkaz, který zkontroluje dělení nulou a vypíše zprávu uživateli, pokud k tomu dojde. V opačném případě se výsledek vytiskne.// CalculatorTutorial.cpp : This file contains the 'main' function. Program execution begins and ends there. // #include <iostream> #include "Calculator.h" using namespace std; int main() { double x = 0.0; double y = 0.0; double result = 0.0; char oper = '+'; cout << "Calculator Console Application" << endl << endl; cout << "Please enter the operation to perform. Format: a+b | a-b | a*b | a/b" << endl; Calculator c; while (true) { cin >> x >> oper >> y; if (oper == '/' && y == 0) { cout << "Attempted to divide by zero!" << endl; continue; } else { result = c.Calculate(x, oper, y); } cout << "Result " << "of " << x << oper << y << " is: " << result << endl; } return 0; }
Stiskněte jednou klávesu F5 . Provádění programu pokračuje celou dobu, dokud se nebude muset pozastavit a požádat o uživatelský vstup. Znovu zadejte
10 / 0
. Teď se vytiskne užitečnější zpráva. Uživateli se zobrazí výzva k zadání dalšího vstupu a program se bude normálně spouštějí.V okně konzoly se zobrazí dva řádky: 10 / 0 Výsledek je: inf, následovaný, 10 / 0 Matematická chyba: Pokus o dělení nulou.
Poznámka:
Když upravujete kód v režimu ladění, hrozí, že kód přestane být zastaralý. K tomu dochází, když ladicí program stále spouští váš starý kód a ještě ho neaktualizoval o provedené změny. Ladicí program zobrazí dialogové okno, které vás informuje o tom, kdy k tomu dojde. Někdy možná budete muset stisknout klávesu F5 , abyste aktualizovali spuštěný kód. Zejména pokud provedete změnu uvnitř funkce, zatímco bod provádění je uvnitř této funkce, musíte přejít z funkce, pak se k ní znovu vrátit, aby se aktualizovaný kód získal. Pokud to nepomůže a zobrazí se chybová zpráva, můžete ladění zastavit kliknutím na červený čtverec na panelu nástrojů pod nabídkami v horní části integrovaného vývojového prostředí a opětovným spuštěním ladění zadáním klávesy F5 nebo výběrem zelené šipky "přehrát" vedle tlačítka zarážky na panelu nástrojů.
Dalším důvodem, proč upravit a pokračovat, může selhat, pokud se zobrazí zpráva "Vyžadovat zdrojové soubory, aby přesně odpovídaly původnímu nastavení verze v části Možnosti ladění> –> Obecné je potřeba povolit..." Pokud chcete tento problém vyřešit, v hlavní nabídce vyberte Nástroje>Možnosti>ladění>Obecné a ujistěte se, že je zaškrtnuté políčko Vyžadovat zdrojové soubory, aby přesně odpovídaly původní verzi.
Vysvětlení klávesových zkratek Spustit a Ladění
- F5 (nebo Spustit ladění spustit ladění) spustí ladicí>relaci, pokud ještě není aktivní, a spustí program, dokud se nenarazí zarážka nebo program potřebuje uživatelský vstup. Pokud není potřeba žádný uživatelský vstup a není k dispozici žádná zarážka, program se ukončí a okno konzoly se zavře, jakmile program dokončí spuštění. Pokud chcete spustit něco jako "Hello World", použijte Ctrl+F5 nebo nastavte zarážku, než stisknete klávesu F5 , aby bylo okno otevřené.
- Ctrl+F5 (nebo >Spustit bez ladění) spustí aplikaci bez přechodu do režimu ladění. Je to o něco rychlejší než ladění a okno konzoly zůstane otevřené po dokončení provádění programu.
- F10 (označovaný jako Krok přes) umožňuje iterovat kód, řádek po řádku a vizualizovat, jak se kód spouští a jaké hodnoty proměnných jsou v každém kroku provádění.
- F11 (označované jako Krok do) funguje podobně jako Step Over, s výjimkou kroků do všech funkcí volaných na řádku provádění. Pokud například řádek spuštěný volá funkci, stisknutím klávesy F11 přesunete ukazatel do těla funkce, abyste mohli sledovat spuštění kódu funkce, než se vrátíte na řádek, na který jste začali. Stisknutím klávesy F10 přes volání funkce se přesunete na další řádek. Volání funkce se pořád děje, ale program se nepřestaví, aby vám ukázal, co dělá.
Uzavření aplikace
- Pokud je aplikace kalkulačky pořád spuštěná, zavřete okno konzoly.
Přidání správy zdrojového kódu Gitu
Teď, když jste vytvořili aplikaci, můžete ji přidat do úložiště Git. Máme pro vás řešení. Visual Studio usnadňuje tento proces pomocí nástrojů Gitu, které můžete použít přímo z integrovaného vývojového prostředí (IDE).
Tip
Git je nejčastěji používaný moderní systém správy verzí, takže ať už jste profesionální vývojář nebo se učíte kódovat, Git může být velmi užitečný. Pokud s Gitem začínáte, https://git-scm.com/ je web dobrým místem, kde začít. Tam můžete najít taháky, oblíbenou online knihu a videa základy Gitu.
Pokud chcete kód přidružit k Gitu, začněte vytvořením nového úložiště Git, ve kterém se váš kód nachází. Postupujte následovně:
Na stavovém řádku v pravém dolním rohu sady Visual Studio vyberte Přidat do správy zdrojového kódu a pak vyberte Git.
V dialogovém okně Vytvořit úložiště Git se přihlaste k GitHubu.
Název úložiště se automaticky naplní na základě umístění vaší složky. Ve výchozím nastavení je vaše nové úložiště soukromé, což znamená, že jste jediný, kdo k němu má přístup.
Tip
Bez ohledu na to, jestli je vaše úložiště veřejné nebo soukromé, je nejlepší mít bezpečně uložené vzdálené zálohování kódu na GitHubu. I když nepracujete s týmem, vzdálené úložiště vám zpřístupní váš kód z libovolného počítače.
Vyberte Vytvořit a nasdílení změn.
Po vytvoření úložiště se na stavovém řádku zobrazí podrobnosti o stavu.
První ikona se šipkami ukazuje, kolik odchozích a příchozích potvrzení je ve vaší aktuální větvi. Pomocí této ikony můžete vyžádat příchozí potvrzení nebo odeslat odchozí potvrzení. Můžete se také rozhodnout, že se budou tyto potvrzení zobrazovat jako první. Uděláte to tak, že vyberete ikonu a pak vyberete Zobrazit odchozí/příchozí poštu.
Druhá ikona s tužkou zobrazuje počet nepotvrzených změn kódu. Tuto ikonu můžete vybrat, pokud chcete tyto změny zobrazit v okně Změny Gitu.
Další informace o používání Gitu s vaší aplikací najdete v dokumentaci ke správě verzí sady Visual Studio.
Dokončená aplikace
Gratulujeme! Dokončili jste kód aplikace kalkulačky, vytvořili a ladili ho a přidali jste ho do úložiště, a to vše v sadě Visual Studio.
Další kroky
Obvyklým výchozím bodem programátora jazyka C++ je aplikace "Hello, world!", která běží na příkazovém řádku. Začnete s tím v tomto článku a pak přejdeme k něčemu náročnějšímu: aplikaci kalkulačky.
Požadavky
- Visual Studio s vývojem desktopových aplikací s nainstalovanou a spuštěnou úlohou jazyka C++ na vašem počítači Pokud ho chcete nainstalovat, přečtěte si téma Instalace podpory jazyka C++ v sadě Visual Studio.
Vytvoření projektu aplikace
Visual Studio používá projekty k uspořádání kódu pro aplikaci a řešení k uspořádání jednoho nebo více projektů. Projekt obsahuje všechny možnosti, konfigurace a pravidla použitá k sestavení aplikace. Spravuje také vztah mezi všemi soubory projektu a všemi externími soubory. Pokud chcete vytvořit aplikaci, nejprve vytvořte nový projekt a řešení.
Na řádku nabídek v sadě Visual Studio vyberte Soubor>nový>projekt. Otevře se okno Nový projekt .
Na levém bočním panelu se ujistěte, že je vybrán Visual C++ . V centru vyberte konzolovou aplikaci systému Windows.
Do textového pole Název v dolní části pojmenujte nový projekt CalculatorTutorial a pak vyberte OK.
Vytvoří se prázdná konzolová aplikace C++ pro Windows Hello World. Konzolové aplikace používají okno konzoly systému Windows k zobrazení výstupu a přijetí uživatelského vstupu. V sadě Visual Studio se otevře okno editoru a zobrazí vygenerovaný kód:
// CalculatorTutorial.cpp : This file contains the 'main' function. Program execution begins and ends there. // #include <iostream> int main() { std::cout << "Hello World!\n"; } // Run program: Ctrl + F5 or Debug > Start Without Debugging menu // Debug program: F5 or Debug > Start Debugging menu // Tips for Getting Started: // 1. Use the Solution Explorer window to add/manage files // 2. Use the Team Explorer window to connect to source control // 3. Use the Output window to see build output and other messages // 4. Use the Error List window to view errors // 5. Go to Project > Add New Item to create new code files, or Project > Add Existing Item to add existing code files to the project // 6. In the future, to open this project again, go to File > Open > Project and select the .sln file
Ověřte, že se vaše nová aplikace sestaví a spustí.
Šablona pro novou konzolovou aplikaci windows vytvoří jednoduchou aplikaci "Hello World" V jazyce C++. V tomto okamžiku si můžete prohlédnout, jak Visual Studio sestaví a spustí aplikace, které vytvoříte přímo z integrovaného vývojového prostředí (IDE).
Projekt sestavíte tak, že v nabídce Sestavení vyberete Sestavit řešení. V okně Výstup se zobrazí výsledky procesu sestavení.
Pokud chcete kód spustit, na řádku nabídek vyberte Ladit, Spustit bez ladění (Ctrl+F5).
Otevře se okno konzoly a pak spustí vaši aplikaci.
Když spustíte konzolovou aplikaci v sadě Visual Studio, spustí se váš kód a vytiskne se "Stisknutím libovolné klávesy zavřete toto okno . . ", abyste získali šanci zobrazit výstup.
Gratulujeme! V sadě Visual Studio jste vytvořili svou první konzolovou aplikaci Hello, world!.
Stisknutím klávesy zavřete okno konzoly a vraťte se do sady Visual Studio.
Teď máte nástroje pro sestavení a spuštění aplikace po každé změně, abyste ověřili, že kód stále funguje podle očekávání. Později vám ukážeme, jak ho ladit, pokud ne.
Úprava kódu
Teď kód v této šabloně změníme na aplikaci kalkulačky.
CalculatorTutorial.cpp
Obsah souboru nahraďte následujícím kódem, aby odpovídal tomuto příkladu:// CalculatorTutorial.cpp : This file contains the 'main' function. Program execution begins and ends there. // #include <iostream> using namespace std; int main() { cout << "Calculator Console Application" << endl << endl; cout << "Please enter the operation to perform. Format: a+b | a-b | a*b | a/b" << endl; return 0; } // Run program: Ctrl + F5 or Debug > Start Without Debugging menu // Debug program: F5 or Debug > Start Debugging menu // Tips for Getting Started: // 1. Use the Solution Explorer window to add/manage files // 2. Use the Team Explorer window to connect to source control // 3. Use the Output window to see build output and other messages // 4. Use the Error List window to view errors // 5. Go to Project > Add New Item to create new code files, or Project > Add Existing Item to add existing code files to the project // 6. In the future, to open this project again, go to File > Open > Project and select the .sln file
Principy kódu:
- Příkazy
#include
umožňují odkazovat na kód umístěný v jiných souborech. Někdy se může zobrazit název souboru obklopený úhlovými závorkami (<>); jindy je obklopen uvozovkami (" "). Obecně platí, že při odkazování na standardní knihovnu C++ se používají úhlové závorky, zatímco uvozovky se používají pro jiné soubory. - Řádek
using namespace std;
říká kompilátoru, aby očekával, že se budou v tomto souboru používat věci ze standardní knihovny jazyka C++. Bez tohoto řádku by každé klíčové slovo z knihovny muselo předcházetstd::
, aby bylo možné označit jeho rozsah. Například bez toho řádku by každý odkazcout
musel být zapsán jakostd::cout
. Příkazusing
se přidá, aby kód vypadal čistěji. - Klíčové
cout
slovo slouží k tisku do standardního výstupu v jazyce C++. Operátor *<<
říká kompilátoru, aby odeslal cokoli, co je napravo od něj, do standardního výstupu. - Klíčové
endl
slovo je jako klávesa Enter; končí řádek a přesune kurzor na další řádek. Je lepší dát\n
do řetězce (obsaženého""
) stejný postup, protožeendl
vždy vyprázdní vyrovnávací paměť a může poškodit výkon programu. Vzhledem k tomu, že se jedná o velmi malou aplikaci,endl
používá se místo toho pro lepší čitelnost. - Všechny příkazy jazyka C++ musí končit středníky a všechny aplikace jazyka
main()
C++ musí obsahovat funkci. Tato funkce je to, co program spouští na začátku. Aby bylo možné použít veškerý kód, musí být přístupný.main()
- Příkazy
Pokud chcete soubor uložit, stiskněte Ctrl+S nebo vyberte ikonu Uložit v horní části integrovaného vývojového prostředí (IDE), ikonu diskety na panelu nástrojů pod řádkem nabídek.
Pokud chcete aplikaci spustit, stiskněte Ctrl+F5 nebo přejděte do nabídky Ladění a vyberte Spustit bez ladění. Pokud se zobrazí automaticky otevírané okno s informací, že tento projekt je zastaralý, můžete znovu vybrat Možnost Nezobrazovat toto dialogové okno a pak výběrem možnosti Ano sestavte aplikaci. Mělo by se zobrazit okno konzoly, které zobrazuje text zadaný v kódu.
Nejprve se zobrazí dialogové okno s dotazem, jestli se má sestavit, protože projekt je zastaralý. Je zaškrtnuto políčko "Nezobrazovat toto dialogové okno znovu". Pro sestavení projektu je vybrána možnost Ano, sestaví se projekt kalkulačky a pak se spustí v okně konzoly Windows.
Až budete hotovi, zavřete okno konzoly.
Přidání kódu pro určitou matematiku
Třída je jako podrobný plán objektu, který něco dělá. V tomto případě definujeme třídu kalkulačky, která bude obsahovat matematickou logiku.
Přidání třídy Kalkulačka
Přejděte do nabídky Projekt a vyberte Přidat třídu. Do textového pole Název třídy zadejte Kalkulačku. Vyberte OK.
Třída je jako podrobný plán objektu, který něco dělá. V tomto případě definujeme kalkulačku a způsob, jak by měla fungovat.
Do projektu se přidají dva nové soubory. Pokud chcete uložit všechny změněné soubory najednou, stiskněte Kombinaci kláves Ctrl+Shift+S. Jedná se o klávesovou zkratku pro ukládání souborů>. Vedle tlačítka Uložit je také tlačítko panelu nástrojů pro uložit vše, ikona dvou disket. Obecně platí, že je vhodné provést možnost Uložit vše často, takže při ukládání nezmeškáte žádné soubory.
Průvodce přidáním třídy vytvoří
.h
a.cpp
soubory, které mají stejný název jako třída. Úplný seznam souborů projektu můžete zobrazit v okně Průzkumník řešení, který je viditelný na straně integrovaného vývojového prostředí (IDE). Pokud okno není viditelné, můžete ho otevřít z řádku nabídek: vyberte Zobrazit> Průzkumník řešení.Projekt kurzu kalkulačky obsahuje uzel souborů hlaviček obsahující Calculator.h, stdafx.h a targetver.h. Uzel Zdrojové soubory obsahuje Calculator.cpp, CalculatorTutorial.cpp a stdafx.cpp. Uzly pro odkazy, externí závislosti a soubory prostředků jsou viditelné, ale zavřené.
Soubor můžete otevřít poklikáním v okně Průzkumník řešení. Poklikáním
Calculator.h
ho otevřete.Nahraďte obsah
Calculator.h
následujícím kódem, aby soubor teď vypadal takto:#pragma once class Calculator { public: double Calculate(double x, char oper, double y); };
Vysvětlení kódu
- Tento kód deklaruje novou funkci s názvem
Calculate
, kterou používáme ke spouštění matematických operací pro sčítání, odčítání, násobení a dělení. - Kód C++ je uspořádaný do souborů hlaviček (
.h
) a zdrojových (.cpp
) souborů. Různé kompilátory podporují několik dalších přípon souborů, ale jsou to hlavní, o kterých je potřeba vědět. Funkce a proměnné jsou obvykle deklarovány, to znamená, že mají název a typ, v souborech hlaviček a implementují se nebo mají definici ve zdrojových souborech. Pro přístup k kódu definovanému v jiném souboru můžete použít#include "filename.h"
, kdefilename.h
je název souboru, který deklaruje proměnné nebo funkce, které chcete použít. - Je vhodné kód uspořádat do různých souborů na základě toho, co dělá, takže kód, který budete potřebovat, snadno najdete později. V našem případě definujeme
Calculator
třídu odděleně od souboru obsahujícíhomain()
funkci, ale plánujeme odkazovat naCalculator
třídu vmain()
.
- Tento kód deklaruje novou funkci s názvem
Pod zelenou vlnovkou se zobrazí
Calculate
zelená vlnovka, protože i kdyžCalculate
je funkce deklarována, není definována. NajeďteCalculate
myší , klikněte na šipku dolů na šroubováku, který se zobrazí, a vyberte Vytvořit definici "Calculate" inCalculator.cpp
. Zobrazí se automaticky otevírané okno s náhledem změny kódu provedené v jiném souboru. Kód byl přidán doCalculator.cpp
souboru .V současné době vrátí pouze hodnotu 0,0. Pojďme to změnit. Stisknutím klávesy Esc zavřete automaticky otevírané okno.
Přepněte do
Calculator.cpp
souboru v okně editoru. Obsah souboru nahraďte tímto kódem:#include "Calculator.h" double Calculator::Calculate(double x, char oper, double y) { switch(oper) { case '+': return x + y; case '-': return x - y; case '*': return x * y; case '/': return x / y; default: return 0.0; } }
Vysvětlení kódu
- Funkce
Calculate
využívá číslo, operátor a druhé číslo a potom provede požadovanou operaci s čísly. - Příkaz switch zkontroluje, který operátor byl poskytnut, a provede pouze případ odpovídající dané operaci. Výchozí hodnota: Případ je náhradní v případě, že uživatel zadá operátor, který není přijat, takže program se neruší. Obecně je nejlepší zpracovat neplatný uživatelský vstup elegantnějším způsobem, ale to je nad rámec tohoto kurzu.
- Klíčové
double
slovo označuje typ čísla, který podporuje desetinná místa. Kalkulačka tak dokáže zpracovat desetinnou matematiku i celočíselnou matematiku. FunkceCalculate
je povinná vždy vrátit takové číslo, protožedouble
na začátku kódu (označuje návratový typ funkce), což je důvod, proč vrátíme hodnotu 0,0 i ve výchozím případě. - Soubor
.h
deklaruje prototyp funkce, který kompilátoru předem řekne, jaké parametry vyžaduje, a jaký návratový typ má od něj očekávat. Soubor.cpp
obsahuje všechny podrobnosti implementace funkce.
- Funkce
Pokud kód sestavíte a spustíte znovu v tomto okamžiku, zůstane po dotazu, která operace se má provést, ukončit. V dalším kroku upravte main
funkci tak, aby dělala nějaké výpočty.
Volání členské funkce třídy Kalkulačka
Teď funkci aktualizujeme v
main
CalculatorTutorial.cpp
:// CalculatorTutorial.cpp : This file contains the 'main' function. Program execution begins and ends there. // #include <iostream> #include "Calculator.h" using namespace std; int main() { double x = 0.0; double y = 0.0; double result = 0.0; char oper = '+'; cout << "Calculator Console Application" << endl << endl; cout << "Please enter the operation to perform. Format: a+b | a-b | a*b | a/b" << endl; Calculator c; while (true) { cin >> x >> oper >> y; result = c.Calculate(x, oper, y); cout << "Result is: " << result << endl; } return 0; }
Vysvětlení kódu
- Vzhledem k tomu, že programy C++ vždy začínají na
main()
funkci, musíme odtamtud volat náš další kód, takže je potřeba příkaz#include
. - Některé počáteční proměnné
x
, ,y
oper
aresult
jsou deklarovány pro uložení prvního čísla, druhého čísla, operátoru a konečného výsledku. Vždy je vhodné jim dát nějaké počáteční hodnoty, aby se zabránilo nedefinované chování, což se tady dělá. - Řádek
Calculator c;
deklaruje objekt s názvem c jako instanciCalculator
třídy. Samotná třída je pouze podrobný plán, jak kalkulačky fungují; objekt je konkrétní kalkulačka, která provádí matematiku. - Příkaz
while (true)
je smyčka. Kód uvnitř smyčky se bude i nadále spouštět znovu, dokud podmínka uvnitř blokování()
true. Vzhledem k tomu, že podmínka je jednoduše uvedena jakotrue
, je vždy true, takže smyčka běží navždy. Chcete-li program zavřít, musí uživatel ručně zavřít okno konzoly. Jinak program vždy čeká na nový vstup. - Klíčové
cin
slovo se používá k přijetí vstupu od uživatele. Tento vstupní datový proud je dostatečně inteligentní pro zpracování řádku textu zadaného v okně konzoly a jeho umístění do každé z uvedených proměnných v uvedeném pořadí za předpokladu, že vstup uživatele odpovídá požadované specifikaci. Tento řádek můžete upravit tak, aby přijímal různé typy vstupu, například více než dvě čísla, i kdyžCalculate()
by funkce také potřebovala aktualizovat, aby to zvládla. - Výraz
c.Calculate(x, oper, y);
volá funkci definovanouCalculate
dříve a poskytuje zadané vstupní hodnoty. Funkce pak vrátí číslo, které se uloží doresult
. - Nakonec se vytiskne do konzoly,
result
takže uživatel uvidí výsledek výpočtu.
- Vzhledem k tomu, že programy C++ vždy začínají na
Opětovné sestavení a otestování kódu
Otestujte program znovu, abyste měli jistotu, že všechno funguje správně.
Stisknutím kombinace kláves Ctrl+F5 aplikaci znovu sestavíte a spustíte.
Zadejte
5+5
a stiskněte Enter. Ověřte, že výsledek je 10.
Ladění aplikace
Vzhledem k tomu, že uživatel může do okna konzoly zadat cokoli, pojďme se ujistit, že kalkulačka zpracovává neočekávaný vstup. Místo spuštění programu ji pojďme ladit, abychom mohli zkontrolovat, co dělá krok za krokem.
Spuštění aplikace v ladicím programu
Nastavte
CalcuatorTutorial.cpp
zarážku naresult = c.Calculate(x, oper, y);
řádku. Pokud chcete nastavit zarážku, klikněte vedle čáry na šedém svislém pruhu podél levého okraje okna editoru. Zobrazí se červená tečka.Když teď program ladíme, vždy pozastaví provádění na daném řádku. Už máme hrubý nápad, že program funguje pro jednoduché případy. Vzhledem k tomu, že nechceme pozastavit provádění pokaždé, pojďme nastavit podmíněnou zarážku.
Klikněte pravým tlačítkem myši na červenou tečku, která představuje zarážku, a vyberte Podmínky. Do textového pole podmínky zadejte
(y == 0) && (oper == '/')
. Až budete hotovi, vyberte tlačítko Zavřít a uložte podmínku zarážky.Zarážka je na řádku: výsledek = c tečka Calculate ( x, oper, y). Podmínky... je vybrána v rozevíracím seznamu zarážky, která otevře okno nastavení zarážky. Je zaškrtnutá možnost Podmínka, pod kterou jsou rozevírací seznamy nastaveny jako: Podmíněný výraz a Je true. Uživatel zadá do textového pole podmínky y == 0 &&& oper == '/' a pak vybere blízko k nastavení podmíněné zarážky.
Teď pozastavíme provádění na zarážce konkrétně v případě, že dojde k pokusu o dělení o 0.
Pokud chcete program ladit, stiskněte klávesu F5 nebo vyberte tlačítko panelu nástrojů Místní ladicí program systému Windows s ikonou zelené šipky. Pokud do konzolové aplikace zadáte něco jako "5 –0", program se chová normálně a pořád běží. Pokud ale zadáte "10 / 0", pozastaví se na zarážce. Můžete dokonce vložit libovolný počet mezer mezi operátorem a čísly;
cin
je dostatečně inteligentní, aby správně parsovat vstup.Uživatel zadá 5 až 0. Výstup aplikace: Výsledek je 5. Uživatel pak zadá hodnotu 10/0 a protože je splněna podmínka podmíněné zarážky, zastaví se provádění na řádku: výsledek = c.Calculate(x, oper, y);
Užitečná okna v ladicím programu
Při ladění kódu si můžete všimnout, že se zobrazí některá nová okna. Tato okna vám můžou pomoct s laděním. Podívejte se do okna Automatické položky . V okně Automatické položky se zobrazí aktuální hodnoty proměnných, které se používají alespoň tři řádky před a až do aktuálního řádku.
Hodnota opery je 47 '/', výsledek je 5, x je 10 a y je 0.
Pokud chcete zobrazit všechny proměnné z této funkce, přepněte do okna Místní hodnoty. Hodnoty těchto proměnných můžete upravit při ladění, abyste viděli, jaký vliv mají na program. V tomto případě je necháme samotné.
Hodnota operu je 47 '/', výsledek je 0, x je 10 a y je 0.
Můžete také najet myší na proměnné v samotném kódu, abyste viděli jejich aktuální hodnoty, kde je provádění aktuálně pozastaveno. Kliknutím na okno editoru se nejprve ujistěte, že je na něm fokus.
Pokračovat v ladění
Žlutá šipka vlevo zobrazuje aktuální bod provádění. Aktuální řádek volá
Calculate
, takže stisknutím klávesy F11 přejděte do funkce, která vás přenese do tělaCalculate
funkce. Krok do buďte opatrní, protože postupují do všech funkcí na řádku, ve kterém jste, včetně standardních funkcí knihovny. Je v pořádku přejít ke standardní knihovně, ale možná vás bude zajímat, že se místo kódu knihovny zaměříte na svůj kód.Teď, když je bod provádění na začátku
Calculate
funkce, stisknutím klávesy F10 přejděte na další řádek provádění programu. F10 se také označuje jako Step Over. Krok přes můžete použít k přechodu z řádku na čáru, aniž byste se museli zabývat podrobnostmi o tom, co se v každé části řádku vyskytuje. Obecně byste měli použít krok přes místo kroku do, pokud se nechcete hlouběji ponořit do kódu, který je volána odjinud (stejně jako jste dosáhliCalculate
těla ).Pokračujte v používání klávesy F10 k kroku přes každý řádek, dokud se nedostanete zpět na
main()
funkci v druhém souboru, a zastavte nacout
řádku.Každý řádek kódu ve funkci Calculate je stupňovaný, dokud se ovládací prvek nevrátí do hlavní funkce. Uživatel pak najede myší na pojmenovaný výsledek proměnné a zobrazí jeho hodnotu, což je: inf."
Program dělá to, co se očekává: vezme první číslo a vydělí ho druhým číslem.
cout
Na řádku najeďte myší naresult
proměnnou nebo se podívejteresult
do okna Automatické. Její hodnota jeinf
, která nevypadá správně, takže ji opravíme. Řádekcout
jenom vypíše libovolnou hodnotu uloženouresult
, takže když krokujete jeden řádek vpřed pomocí klávesy F10, zobrazí se okno konzoly:Výstup aplikace: Zadejte operaci, kterou chcete provést. Formát: a+b | a-b | a*b | a/b. Uživatel zadal 5-0. Výstup aplikace: Výsledek je: 5. Uživatel THe zadal 10/0. Výstup aplikace: Výsledek je: inf
Výsledkem je, že dělení nulou není definováno, takže program nemá číselnou odpověď na požadovanou operaci.
Oprava chyby "dělit nulou"
Pracujme s dělením nulou elegantněji, aby uživatel snadněji pochopil problém.
Proveďte následující změny v souboru
CalculatorTutorial.cpp
. (Program můžete nechat spuštěný při úpravách, a to díky funkci ladicího programu, která se nazývá Upravit a pokračovat). Změnou je přidatif
následujícícin >> x >> oper >> y;
příkaz, který zkontroluje dělení nulou a vypíše uživateli zprávu, pokud k tomu dojde. V opačném případě se výsledek vytiskne:// CalculatorTutorial.cpp : This file contains the 'main' function. Program execution begins and ends there. // #include <iostream> #include "Calculator.h" using namespace std; int main() { double x = 0.0; double y = 0.0; double result = 0.0; char oper = '+'; cout << "Calculator Console Application" << endl << endl; cout << "Please enter the operation to perform. Format: a+b | a-b | a*b | a/b" << endl; Calculator c; while (true) { cin >> x >> oper >> y; if (oper == '/' && y == 0) { cout << "Division by 0 exception" << endl; continue; } else { result = c.Calculate(x, oper, y); } cout << "Result is: " << result << endl; } return 0; }
Stiskněte jednou klávesu F5 . Provádění programu pokračuje celou dobu, dokud se nebude muset pozastavit a požádat o uživatelský vstup. Znovu zadejte
10 / 0
. Teď se vytiskne užitečnější zpráva. Uživateli se zobrazí výzva k zadání dalšího vstupu a program se bude normálně spouštějí.Poznámka:
Když upravujete kód v režimu ladění, hrozí, že kód přestane být zastaralý. K tomu dochází, když ladicí program stále spouští váš starý kód a ještě ho neaktualizoval o provedené změny. Ladicí program zobrazí dialogové okno s informacemi o tom, kdy k tomu dojde. Někdy možná budete muset stisknout klávesu F5 , abyste aktualizovali spuštěný kód. Konkrétně pokud provedete změnu uvnitř funkce, zatímco bod provádění je uvnitř této funkce, odkročte z funkce, vraťte se k ní znovu, abyste získali aktualizovaný kód. Pokud to z nějakého důvodu nefunguje a zobrazí se chybová zpráva, můžete ladění zastavit kliknutím na červený čtverec na panelu nástrojů pod nabídkami v horní části integrovaného vývojového prostředí a pak znovu spustit ladění zadáním klávesy F5 nebo výběrem zelené šipky "přehrát" vedle tlačítka stop na panelu nástrojů.
Dalším důvodem, proč upravit a pokračovat, může selhat, je, že musíte přejít do hlavní nabídky a vybrat Možnosti>>nástroje>Ladění Obecné a zajistit, aby se zdrojové soubory přesně shodovaly s původní verzí.
Vysvětlení klávesových zkratek Spustit a Ladění
- F5 (nebo Spustit ladění spustit ladění) spustí ladicí>relaci, pokud ještě není aktivní, a spustí program, dokud se nenarazí zarážka nebo program potřebuje uživatelský vstup. Pokud není potřeba žádný uživatelský vstup a není k dispozici žádná zarážka, program se ukončí a okno konzoly se zavře, jakmile program dokončí spuštění. Pokud chcete spustit něco jako "Hello World", použijte Ctrl+F5 nebo nastavte zarážku, než stisknete klávesu F5 , aby bylo okno otevřené.
- Ctrl+F5 (nebo >Spustit bez ladění) spustí aplikaci bez přechodu do režimu ladění. Je to o něco rychlejší než ladění a okno konzoly zůstane otevřené po dokončení provádění programu.
- F10 (označovaný jako Krok přes) umožňuje iterovat kód, řádek po řádku a vizualizovat, jak se kód spouští a jaké hodnoty proměnných jsou v každém kroku provádění.
- F11 (označované jako Krok do) funguje podobně jako Step Over, s výjimkou kroků do všech funkcí volaných na řádku provádění. Pokud například řádek spuštěný volá funkci, stisknutím klávesy F11 přesunete ukazatel do těla funkce, abyste mohli sledovat spuštění kódu funkce, než se vrátíte na řádek, na který jste začali. Stisknutím klávesy F10 přes volání funkce se přesunete na další řádek. Volání funkce se pořád děje, ale program se nepřestaví, aby vám ukázal, co dělá.
Uzavření aplikace
- Pokud je aplikace kalkulačky pořád spuštěná, zavřete okno konzoly.
Gratulujeme! Dokončili jste kód pro aplikaci kalkulačky a vytvořili a ladili ho v sadě Visual Studio.