100 likes | 242 Views
Programování – Dokončení aplikace. Ing . Josef Veselý. Stav aplikace. Je hotové: Máme navržený formulář Funguje číselný výstup na displej Displej se dá vynulovat Zbývá dodělat Zpracování matematických operací Výpis výsledku. 1) Zpracování mat. operací. Postup:
E N D
Programování – Dokončení aplikace Ing. Josef Veselý Označení šablony a vzdělávací sady viz.rozpis
Stav aplikace • Je hotové: • Máme navržený formulář • Funguje číselný výstup na displej • Displej se dá vynulovat • Zbývá dodělat • Zpracování matematických operací • Výpis výsledku Označení šablony a vzdělávací sady viz.rozpis
1) Zpracování mat. operací • Postup: • Po zadání čísla se čeká na volbu matematické operace. Po stisku tlačítka +,-,*,/ : • se zadané číslo uloží do paměti ( do proměnné cislo1) • Vynuluje se displej • Nastaví se proměnná funkce na zvolenou mat. operaci • Počítač čeká na zadání dalšího čísla • Po zadání dalšího čísla následuje: • Rovná se => výsledek je zobrazen na displeji • Celý postup se opakuje Označení šablony a vzdělávací sady viz.rozpis
2) Událost mat. operace • Ošetření všech matematických operací bude vypadat podobně: • Budou se lišit jen hodnotou proměnné funkce (odcitani, nasobeni, deleni) privatevoidplusButton_Click(objectsender, EventArgs e) { cislo1 = int.Parse(zadaniTextBox.Text); zadaniTextBox.Text= "0"; funkce = "scitani"; } Označení šablony a vzdělávací sady viz.rozpis
3) Stisk - rovná se • Po stisku rovná se se provede: • Do proměnné cislo2 se uloží číslo z displeje (v proměnné cislo1 je číslo zadané před volbou mat. operace, v proměnné funkce je název mát. operace) • Vyhodnotí se jaká mat. operace se má provést s proměnnými cislo1 a cislo2 • Do proměnné c je vložen výsledek této operace • Výsledek je zobrazen na displeji Označení šablony a vzdělávací sady viz.rozpis
4) Funkce, která počítá privatevoidrovnaseButton_Click(objectsender, EventArgs e) { cislo2 = int.Parse(zadaniTextBox.Text); if(funkce == "scitani") { c = cislo1 + cislo2; } else if(funkce == "odcitani") { c = cislo1 - cislo2; } else if(funkce == "nasobeni") { c = cislo1 * cislo2; } else if(funkce == "deleni") { c = cislo1 / cislo2; } zadaniTextBox.Text= c.ToString(); funkce = ""; } Označení šablony a vzdělávací sady viz.rozpis
5) Celkový zdrojový kód usingSystem; usingSystem.Collections.Generic; usingSystem.ComponentModel; usingSystem.Data; usingSystem.Drawing; usingSystem.Linq; usingSystem.Text; usingSystem.Windows.Forms; namespace Kalkulačka { public partial class kalkulacka : Form { public kalkulacka() { InitializeComponent(); zadaniTextBox.Text = "0"; } int cislo1; int cislo2; string funkce; int c = 0; private void button0_Click(object sender, EventArgs e) { if (zadaniTextBox.Text != "0") { zadaniTextBox.Text = zadaniTextBox.Text + ((Button)sender).Text; } else { zadaniTextBox.Text = ((Button)sender).Text; } } private void smazVse_Click(object sender, EventArgs e) { cislo1 = 0; cislo2 = 0; zadaniTextBox.Text = "0"; funkce = ""; } privatevoidsmaz_Click(objectsender, EventArgs e) { zadaniTextBox.Text = "0"; } privatevoidscitaniButton_Click(objectsender, EventArgs e) { cislo1 = int.Parse(zadaniTextBox.Text); zadaniTextBox.Text = "0"; funkce = "scitani"; } privatevoidodecitaniButton_Click(objectsender, EventArgs e) { cislo1 = int.Parse(zadaniTextBox.Text); zadaniTextBox.Text = "0"; funkce = "odcitani"; } privatevoidnasobeniButton_Click(objectsender, EventArgs e) { cislo1 = int.Parse(zadaniTextBox.Text); zadaniTextBox.Text = "0"; funkce = "nasobeni"; } privatevoiddeleniButton_Click(objectsender, EventArgs e) { cislo1 = int.Parse(zadaniTextBox.Text); zadaniTextBox.Text = "0"; funkce = "deleni"; } privatevoidrovnaseButton_Click(objectsender, EventArgs e) { cislo2 = int.Parse(zadaniTextBox.Text); if (funkce == "scitani") { c = cislo1 + cislo2; } elseif (funkce == "odcitani") { c = cislo1 - cislo2; } elseif (funkce == "nasobeni") { c = cislo1 * cislo2; } elseif (funkce == "deleni") { c = cislo1 / cislo2; } zadaniTextBox.Text = c.ToString(); funkce = ""; } } } Označení šablony a vzdělávací sady viz.rozpis
6) Spuštění • Po správném návrhu formuláře, volbě atributů a metod máme připravenou aplikaci pro spuštění. • Ve spodním panelu Error List by neměla být žádná chyba ani varování (po cvaknutí na chybu se přenese kurzor na místo chyby v kódu) • Aplikace se spustí zeleným tlačítkem play na ToolBaru nebo klávesou F5 • Ve složce Kalkulačka\bin\Debug naleznete zkompilovanou spustitelnou aplikaci. Označení šablony a vzdělávací sady viz.rozpis
7) Ladění • Po spuštění této aplikace zjistíme několik maličkostí, které by se daly vylepšit • Jsou to: • Při stisknutí rovná se , se dají připisovat čísla k výsledku • Výsledek je omezen velikostí datového typu integer • Počítání jen s celými čísly • Nefunguje opakovaná matematická operace (výsledek se musí zobrazit rovnítkem) • Nejsou dostupné pokročilé mat. funkce • Není chybové hlášení při dělení nulou nebo přeplnění datového typu • Možnost vkládat text přímo na displej (neošetřené chyby nevalidního vstupu) • Zkuste se zamyslet na řešení těchto chyb a navrhnout řešení Označení šablony a vzdělávací sady viz.rozpis
8) Zdrojová aplikace • Kompletní projekt naleznete ZDE Označení šablony a vzdělávací sady viz.rozpis