欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

利用WPF窗口程序設(shè)計簡單計算器

 更新時間:2020年11月08日 17:04:57   作者:Venistarc  
這篇文章主要為大家詳細介紹了利用WPF窗口程序設(shè)計簡單計算器,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下

本文中設(shè)計的計算器僅支持單次雙目運算,可連續(xù)計算。

實驗要求:

1、在wpf項目中編程實現(xiàn)一個簡單計算器,具體要求如下:
1)實現(xiàn)+,-,*,/運算
2)可以連續(xù)進行計算。

效果如圖:

*該程序中數(shù)字通過點擊對應(yīng)按鈕輸入,運算符包含四種常用運算,除此之外還有退格以及清空操作,輸入以及運算結(jié)果在上方文本框內(nèi)顯示

1.首先,該程序中只涉及單次運算,所以我們可以在隱藏文件里聲明兩個全局變量來相應(yīng)的保存operation前后兩個數(shù)(字符串)。

string num1 = null; //運算符之前的數(shù)
string num2 = null; //運算符之后的數(shù)
string ope = null; //運算符

2.每次鍵入一個位數(shù)要判斷放在num1里還是num2里。

private void button1_Click(object sender, RoutedEventArgs e)
 {
 if (ope == null)
 {
 num1 += button1.Content;
 textBox.Text = num1;
 }
 else
 {
 num2 += button1.Content;
 textBox.Text = num2;
 }
}

3.鍵入運算符是對變量ope賦值(因為是單次計算,所以運算符沒必要在文本框里顯示)

private void buttonADD_Click(object sender, RoutedEventArgs e)
 {
 ope = "+";
 }

4.CE清空操作,將textbox中的內(nèi)容以及所有變量清空

private void buttonCE_Click(object sender, RoutedEventArgs e)
 {
 //if (ope == null)
 //{
 // num1 = textBox.Text;
 //}
 //else
 //{
 // num2 = textBox.Text;
 //}
 this.textBox.Text = "";
 num1 = null;
 num2 = null;
 ope = null;
 }

5.退格操作

private void buttonBK_Click(object sender, RoutedEventArgs e)
 {
 string s = textBox.Text;
 int len = s.Length;
 if (textBox.Text != null && len >= 1)
 textBox.Text = s.Remove(len - 1);
 if (ope == null)
 {
 num1 = textBox.Text;
 }
 else
 {
 num2 = textBox.Text;
 }
}

6.計算結(jié)果(利用switch case )

private void buttonEQ_Click(object sender, RoutedEventArgs e)
 {
 switch (ope)
 {
 case "+":
 textBox.Text = Convert.ToString(Convert.ToDouble(num1) + Convert.ToDouble(num2));
 break;
 case "-":
 textBox.Text = Convert.ToString(Convert.ToDouble(num1) - Convert.ToDouble(num2));
 break;
 case "*":
 textBox.Text = Convert.ToString(Convert.ToDouble(num1) * Convert.ToDouble(num2));
 break;
 case "/":
 textBox.Text = Convert.ToString(Convert.ToDouble(num1) / Convert.ToDouble(num2));
 break;
 }
 num1 = textBox.Text; 
 num2 = null;
 ope = null;
}

將結(jié)果值賦給num1來實現(xiàn)連續(xù)計算.

效果如如下:

完整代碼如下:

*xaml

Window x:Class="小小計算器.MainWindow"
 xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
 xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
 Title="計算器" Height="382" Width="362">
 <Grid Height="335">
 <Grid.ColumnDefinitions>
 <ColumnDefinition Width="48*" />
 <ColumnDefinition Width="23*" />
 </Grid.ColumnDefinitions>
 <Button Content="CE" Height="30" HorizontalAlignment="Left" Margin="62,87,0,0" Name="buttonCE" VerticalAlignment="Top" Width="41" Click="buttonCE_Click" />
 <Button Content="<-" Height="29" HorizontalAlignment="Left" Margin="118,87,0,0" Name="buttonBK" VerticalAlignment="Top" Width="45" Click="buttonBK_Click" />
 <Button Content="." Height="29" HorizontalAlignment="Left" Margin="185,87,0,0" Name="buttonDOT" VerticalAlignment="Top" Width="46" Click="buttonDOT_Click" />
 <Button Content="+" Height="28" HorizontalAlignment="Left" Margin="7,87,0,0" Name="buttonADD" VerticalAlignment="Top" Width="47" Click="buttonADD_Click" Grid.Column="1" />
 <Button Content="1" Height="30" HorizontalAlignment="Left" Margin="62,136,0,0" Name="button1" VerticalAlignment="Top" Width="41" Click="button1_Click" />
 <Button Content="2" Height="30" HorizontalAlignment="Left" Margin="118,136,0,0" Name="button2" VerticalAlignment="Top" Width="45" Click="button2_Click" />
 <Button Content="3" Height="30" HorizontalAlignment="Left" Margin="185,136,0,0" Name="button3" VerticalAlignment="Top" Width="46" Click="button3_Click" RenderTransformOrigin="1.217,0.437" />
 <Button Content="-" Height="30" HorizontalAlignment="Left" Margin="7,136,0,0" Name="buttonSUB" VerticalAlignment="Top" Width="47" Click="buttonSUB_Click" Grid.Column="1" />
 <Button Content="4" Height="30" HorizontalAlignment="Left" Margin="62,186,0,0" Name="button4" VerticalAlignment="Top" Width="41" Click="button4_Click" />
 <Button Content="5" Height="30" HorizontalAlignment="Left" Margin="118,186,0,0" Name="button5" VerticalAlignment="Top" Width="45" Click="button5_Click" />
 <Button Content="6" Height="30" HorizontalAlignment="Left" Margin="185,186,0,0" Name="button6" VerticalAlignment="Top" Width="46" Click="button6_Click" />
 <Button Content="*" Height="30" HorizontalAlignment="Left" Margin="7,186,0,0" Name="buttonMUP" VerticalAlignment="Top" Width="47" Click="buttonMUP_Click" Grid.Column="1" />
 <Button Content="7" Height="30" HorizontalAlignment="Left" Margin="62,231,0,0" Name="button7" VerticalAlignment="Top" Width="40" Click="button7_Click" />
 <Button Content="8" Height="30" HorizontalAlignment="Left" Margin="118,231,0,0" Name="button8" VerticalAlignment="Top" Width="45" Click="button8_Click" />
 <Button Content="9" Height="30" HorizontalAlignment="Left" Margin="185,231,0,0" Name="button9" VerticalAlignment="Top" Width="46" Click="button9_Click" />
 <Button Content="/" Height="30" HorizontalAlignment="Left" Margin="7,231,0,0" Name="buttonDIV" VerticalAlignment="Top" Width="47" Click="buttonDIV_Click" Grid.Column="1" />
 <Button Content="0" Height="25" HorizontalAlignment="Left" Margin="62,281,0,0" Name="button0" VerticalAlignment="Top" Width="101" Click="button0_Click" />
 <Button Content="=" Height="25" HorizontalAlignment="Right" Margin="0,281,59.2,0" Name="buttonEQ" VerticalAlignment="Top" Width="111" Grid.ColumnSpan="2" Click="buttonEQ_Click" RenderTransformOrigin="-0.085,0.493" />
 <TextBox Grid.ColumnSpan="2" Height="32" HorizontalAlignment="Left" Margin="88,30,0,0" Name="textBox" VerticalAlignment="Top" Width="173" />
 </Grid>
</Window>

.cs文件

namespace 小小計算器
{
 /// <summary>
 /// MainWindow.xaml 的交互邏輯
 /// </summary>
 public partial class MainWindow : Window
 {
 string num1 = null; //運算符之前的數(shù)
 string num2 = null; //運算符之后的數(shù)
 string ope = null; //運算符
 public MainWindow()
 {
 InitializeComponent();
 }

 private void button1_Click(object sender, RoutedEventArgs e)
 {
 if (ope == null)
 {
 num1 += button1.Content;
 textBox.Text = num1;
 }
 else
 {
 num2 += button1.Content;
 textBox.Text = num2;
 }
 }

 private void button2_Click(object sender, RoutedEventArgs e)
 {
 if (ope == null)
 {
 num1 += button2.Content;
 textBox.Text = num1;
 }
 else
 {
 num2 += button2.Content;
 textBox.Text = num2;
 }
 }

 private void button3_Click(object sender, RoutedEventArgs e)
 {
 if (ope == null)
 {
 num1 += button3.Content;
 textBox.Text = num1;
 }
 else
 {
 num2 += button3.Content;
 textBox.Text = num2;
 }
 }

 private void button4_Click(object sender, RoutedEventArgs e)
 {
 if (ope == null)
 {
 num1 += button4.Content;
 textBox.Text = num1;
 }
 else
 {
 num2 += button4.Content;
 textBox.Text = num2;
 }
 }

 private void button5_Click(object sender, RoutedEventArgs e)
 {
 if (ope == null)
 {
 num1 += button5.Content;
 textBox.Text = num1;
 }
 else
 {
 num2 += button5.Content;
 textBox.Text = num2;
 }
 }

 private void button6_Click(object sender, RoutedEventArgs e)
 {
 if (ope == null)
 {
 num1 += button6.Content;
 textBox.Text = num1;
 }
 else
 {
 num2 += button6.Content;
 textBox.Text = num2;
 }
 }

 private void button7_Click(object sender, RoutedEventArgs e)
 {
 if (ope == null)
 {
 num1 += button7.Content;
 textBox.Text = num1;
 }
 else
 {
 num2 += button7.Content;
 textBox.Text = num2;
 }
 }

 private void button8_Click(object sender, RoutedEventArgs e)
 {
 if (ope == null)
 {
 num1 += button8.Content;
 textBox.Text = num1;
 }
 else
 {
 num2 += button8.Content;
 textBox.Text = num2;
 }
 }

 private void button9_Click(object sender, RoutedEventArgs e)
 {
 if (ope == null)
 {
 num1 += button9.Content;
 textBox.Text = num1;
 }
 else
 {
 num2 += button9.Content;
 textBox.Text = num2;
 }
 }
 private void button0_Click(object sender, RoutedEventArgs e)
 {
 if (ope == null)
 {
 num1 += button0.Content;
 textBox.Text = num1;
 }
 else
 {
 num2 += button0.Content;
 textBox.Text = num2;
 }
 }

 private void buttonADD_Click(object sender, RoutedEventArgs e)
 {
 ope = "+";
 }

 private void buttonSUB_Click(object sender, RoutedEventArgs e)
 {
 ope = "-";
 }

 private void buttonMUP_Click(object sender, RoutedEventArgs e)
 {
 ope = "*";
 }

 private void buttonDIV_Click(object sender, RoutedEventArgs e)
 {
 ope = "/";
 }

 private void buttonDOT_Click(object sender, RoutedEventArgs e)
 {

 if (ope == null &&!num1.Contains(".")) //如果num中已有小數(shù)點,則不允許再輸入.
 {

 num1 += buttonDOT.Content;
 textBox.Text = num1;

 }
 if(ope!=null&&!num2.Contains("."))  
 {
 num2 += buttonDOT.Content;
 textBox.Text = num2;
 }
 }

 private void buttonCE_Click(object sender, RoutedEventArgs e)
 {
 //if (ope == null)
 //{
 // num1 = textBox.Text;
 //}
 //else
 //{
 // num2 = textBox.Text;
 //}
 this.textBox.Text = "";
 num1 = null;
 num2 = null;
 ope = null;
 }

 private void buttonBK_Click(object sender, RoutedEventArgs e)
 {
 string s = textBox.Text;
 int len = s.Length;
 if (textBox.Text != null && len >= 1)
 textBox.Text = s.Remove(len - 1);
 if (ope == null)
 {
 num1 = textBox.Text;
 }
 else
 {
 num2 = textBox.Text;
 }
 }

 private void buttonEQ_Click(object sender, RoutedEventArgs e)
 {
 switch (ope)
 {
 case "+":
 textBox.Text = Convert.ToString(Convert.ToDouble(num1) + Convert.ToDouble(num2));
 break;
 case "-":
 textBox.Text = Convert.ToString(Convert.ToDouble(num1) - Convert.ToDouble(num2));
 break;
 case "*":
 textBox.Text = Convert.ToString(Convert.ToDouble(num1) * Convert.ToDouble(num2));
 break;
 case "/":
 textBox.Text = Convert.ToString(Convert.ToDouble(num1) / Convert.ToDouble(num2));
 break;
 }
 num1 = textBox.Text;
 num2 = null;
 ope = null;
 }


 }
}

以上就是本文的全部內(nèi)容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • C# MeasureString測量字符串函數(shù)的使用方法

    C# MeasureString測量字符串函數(shù)的使用方法

    這篇文章主要介紹了C# MeasureString測量字符串函數(shù)的使用方法,需要的朋友可以參考下
    2014-10-10
  • C#向word文檔插入新段落及隱藏段落的方法

    C#向word文檔插入新段落及隱藏段落的方法

    這篇文章主要為大家詳細介紹了C#如何向word文檔插入一個新段落及隱藏段落 ,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-04-04
  • C#中矩陣運算方法實例分析

    C#中矩陣運算方法實例分析

    這篇文章主要介紹了C#中矩陣運算方法,實例分析了通過C#實現(xiàn)矩陣的初始化、轉(zhuǎn)置矩陣、求逆矩陣等各種常用的操作技巧,具有一定參考借鑒價值,需要的朋友可以參考下
    2015-04-04
  • C# DateTime日期比較方法案例詳解

    C# DateTime日期比較方法案例詳解

    這篇文章主要介紹了C# DateTime日期比較方法案例詳解,本篇文章通過簡要的案例,講解了該項技術(shù)的了解與使用,以下就是詳細內(nèi)容,需要的朋友可以參考下
    2021-08-08
  • C# 擴展方法詳解

    C# 擴展方法詳解

    這篇文章主要介紹了C# 中的擴展方法的相關(guān)資料,文中講解非常細致,代碼幫助大家更好的理解和學習,感興趣的朋友可以了解下
    2021-09-09
  • C#實現(xiàn)窗體間傳值實例分析

    C#實現(xiàn)窗體間傳值實例分析

    這篇文章主要介紹了C#實現(xiàn)窗體間傳值的方法,結(jié)合實例形式較為詳細的分析了C#針對窗體間傳值的處理技巧,具有一定參考借鑒價值,需要的朋友可以參考下
    2015-11-11
  • C#獲取注冊表指定鍵值操作

    C#獲取注冊表指定鍵值操作

    這篇文章主要介紹了C#獲取注冊表指定鍵值操作,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-12-12
  • C#二叉搜索樹插入算法實例分析

    C#二叉搜索樹插入算法實例分析

    這篇文章主要介紹了C#二叉搜索樹插入算法,實例分析了C#二叉樹操作的相關(guān)技巧,需要的朋友可以參考下
    2015-04-04
  • 利用TaskManager爬取2萬條代理IP實現(xiàn)自動投票功能

    利用TaskManager爬取2萬條代理IP實現(xiàn)自動投票功能

    話說某天心血來潮想到一個問題,朋友圈里面經(jīng)常有人發(fā)投票鏈接,讓幫忙給XX投票,以前呢會很自覺打開鏈接幫忙投一票??墒沁@種事做多了就會考慮能不能使用工具來進行投票呢,身為一名程序猿決定研究解決這個問題。感興趣的朋友一起學習吧
    2015-09-09
  • C#線程開發(fā)之System.Thread類詳解

    C#線程開發(fā)之System.Thread類詳解

    本文詳細講解了C#線程開發(fā)之System.Thread類,文中通過示例代碼介紹的非常詳細。對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2022-05-05

最新評論