计算器示例
功能介绍:
功能很简单,只有计算加减乘除的功能,以及归零。
因为最近一直再写WPF,所以用WPF来具体实现。
页面画的较为潦草,但也还能过眼一瞧。
代码很简单,具体注释我就不写了,功能实现写了两种实现代码,一种使用的较为多的事件,另外一种单事件使用的Switch来实现的,属于看一眼就能明白的代码,我就不过多讲解了。
事件:Button (按钮)Click event(单击事件)
示例图1
示例图2
废话不多说,以下为具体实现代码:
xaml 代码 (window1.xaml)
<Grid>
<Grid.RowDefinitions>
<RowDefinition/>
<RowDefinition/>
<RowDefinition/>
<RowDefinition/>
<RowDefinition/>
</Grid.RowDefinitions>
<Grid.ColumnDefinitions>
<ColumnDefinition/>
<ColumnDefinition/>
<ColumnDefinition/>
<ColumnDefinition/>
</Grid.ColumnDefinitions>
<WrapPanel Grid.Row="0" Grid.Column="0" Grid.ColumnSpan="5">
<TextBox x:Name="textbox1" Width="400" FontSize="50"/>
</WrapPanel>
<WrapPanel Grid.Row="1" Grid.Column="0" Grid.ColumnSpan="3">
<Button Width="100" x:Name="str1" Height="100" Content="1" FontSize="40" Click="Button_Click"/>
<Button Width="100" x:Name="str2" Height="100" Content="2" FontSize="40" Click="Button_Click"/>
<Button Width="100" x:Name="str3" Height="100" Content="3" FontSize="40" Click="Button_Click"/>
<Button Width="100" x:Name="strjia" Height="100" Content="+" FontSize="40" Click="Button_Click"/>
</WrapPanel>
<WrapPanel Grid.Row="2" Grid.Column="0" Grid.ColumnSpan="3">
<Button Width="100" x:Name="str4" Height="100" Content="4" FontSize="40" Click="Button_Click"/>
<Button Width="100" x:Name="str5" Height="100" Content="5" FontSize="40" Click="Button_Click"/>
<Button Width="100" x:Name="str6" Height="100" Content="6" FontSize="40" Click="Button_Click"/>
<Button Width="100" x:Name="strjian" Height="100" Content="-" FontSize="40" Click="Button_Click"/>
</WrapPanel>
<WrapPanel Grid.Row="3" Grid.Column="0" Grid.ColumnSpan="3">
<Button Width="100" x:Name="str7" Height="100" Content="7" FontSize="40" Click="Button_Click"/>
<Button Width="100" x:Name="str8" Height="100" Content="8" FontSize="40" Click="Button_Click"/>
<Button Width="100" x:Name="str9" Height="100" Content="9" FontSize="40" Click="Button_Click"/>
<Button Width="100" x:Name="strcheng" Height="100" Content="x" FontSize="40" Click="Button_Click"/>
</WrapPanel>
<WrapPanel Grid.Row="4" Grid.Column="0" Grid.ColumnSpan="3">
<Button Width="100" x:Name="strc" Height="100" Content="C" FontSize="40" Click="Button_Click"/>
<Button Width="100" x:Name="str0" Height="100" Content="0" FontSize="40" Click="Button_Click"/>
<Button Width="100" x:Name="str" Height="100" Content="=" FontSize="40" Click="Button_Click"/>
<Button Width="100" x:Name="strchu" Height="100" Content="÷" FontSize="40" Click="Button_Click"/>
</WrapPanel>
</Grid>
C# 代码(window1.xaml.cs)
public string one;
private void Button_Click(object sender, RoutedEventArgs e)
{
var v = sender as Button;
if (textbox1.Text=="0")
{
textbox1.Text = " ";
}
one =textbox1.Text;
switch (v.Content.ToString())
{
case "1":
textbox1.Text += "1";
break;
case "2":
textbox1.Text += "2";
break;
case "3":
textbox1.Text += "3";
break;
case "4":
textbox1.Text += "4";
break;
case "5":
textbox1.Text += "5";
break;
case "6":
textbox1.Text += "6";
break;
case "7":
textbox1.Text += "7";
break;
case "8":
textbox1.Text += "8";
break;
case "9":
textbox1.Text += "9";
break;
case "0":
if (textbox1.Text!="0")
{
textbox1.Text += "0";
}
else
{
textbox1.Text = "0";
}
break;
case "+":
textbox1.Text += "+";
break;
case "-":
textbox1.Text += "-";
break;
case "x":
textbox1.Text += "x";
break;
case "÷":
textbox1.Text += "÷";
break;
case "C":
textbox1.Text = " ";
break;
case "=":
textbox1.Text= one+"="+ query(textbox1.Text).ToString();
break;
}
}
public int query(string str)
{
if (str.Contains("+"))
{
char[] st = { '+', '-', 'x', '÷' };
string[] name = str.Split(st, StringSplitOptions.RemoveEmptyEntries);
return Convert.ToInt32(name[0]) + Convert.ToInt32(name[1]);
}
if (str.Contains("-"))
{
char[] st = { '+', '-', 'x', '÷' };
string[] name = str.Split(st, StringSplitOptions.RemoveEmptyEntries);
return Convert.ToInt32(name[0]) - Convert.ToInt32(name[1]);
}
if (str.Contains("x"))
{
char[] st = { '+', '-', 'x', '÷' };
string[] name = str.Split(st, StringSplitOptions.RemoveEmptyEntries);
return Convert.ToInt32(name[0]) * Convert.ToInt32(name[1]);
}
if (str.Contains("÷"))
{
char[] st = { '+', '-', 'x', '÷' };
string[] name = str.Split(st, StringSplitOptions.RemoveEmptyEntries);
return Convert.ToInt32(name[0]) / Convert.ToInt32(name[1]);
}
return 0;
}
示例2
<Grid>
<Grid.RowDefinitions>
<RowDefinition/>
<RowDefinition/>
<RowDefinition/>
<RowDefinition/>
<RowDefinition/>
</Grid.RowDefinitions>
<Grid.ColumnDefinitions>
<ColumnDefinition/>
<ColumnDefinition/>
<ColumnDefinition/>
<ColumnDefinition/>
</Grid.ColumnDefinitions>
<WrapPanel Grid.Row="0" Grid.Column="0" Grid.ColumnSpan="5">
<TextBox x:Name="textbox1" Width="400" FontSize="50"/>
<TextBox x:Name="textbox2" Width="270" FontSize="30"/>
</WrapPanel>
<WrapPanel Grid.Row="1" Grid.Column="0" Grid.ColumnSpan="3">
<Button Width="100" Height="100" Content="1" FontSize="40" Click="Button_Click"/>
<Button Width="100" Height="100" Content="2" FontSize="40" Click="Button_Click_1"/>
<Button Width="100" Height="100" Content="3" FontSize="40" Click="Button_Click_2"/>
<Button Width="100" Height="100" Content="+" FontSize="40" Click="Button_Click_10"/>
</WrapPanel>
<WrapPanel Grid.Row="2" Grid.Column="0" Grid.ColumnSpan="3">
<Button Width="100" Height="100" Content="4" FontSize="40" Click="Button_Click_3"/>
<Button Width="100" Height="100" Content="5" FontSize="40" Click="Button_Click_4"/>
<Button Width="100" Height="100" Content="6" FontSize="40" Click="Button_Click_5"/>
<Button Width="100" Height="100" Content="-" FontSize="40" Click="Button_Click_13"/>
</WrapPanel>
<WrapPanel Grid.Row="3" Grid.Column="0" Grid.ColumnSpan="3">
<Button Width="100" Height="100" Content="7" FontSize="40" Click="Button_Click_6"/>
<Button Width="100" Height="100" Content="8" FontSize="40" Click="Button_Click_7"/>
<Button Width="100" Height="100" Content="9" FontSize="40" Click="Button_Click_8"/>
<Button Width="100" Height="100" Content="x" FontSize="40" Click="Button_Click_14"/>
</WrapPanel>
<WrapPanel Grid.Row="4" Grid.Column="0" Grid.ColumnSpan="3">
<Button Width="100" Height="100" Content="C" FontSize="40" Click="Button_Click_12"/>
<Button Width="100" Height="100" Content="0" FontSize="40" Click="Button_Click_9"/>
<Button Width="100" Height="100" Content="=" FontSize="40" Click="Button_Click_11"/>
<Button Width="100" Height="100" Content="÷" FontSize="40" Click="Button_Click_15"/>
</WrapPanel>
</Grid>
代码虽然很low,但是功能有的,以下代码仅供参考,不建议模仿。
public string number;
public string jia ;
public bool jiatrue =false;
public bool jianfa = false;
public bool chengfa = false;
public bool chufa = false;
private void Button_Click(object sender, RoutedEventArgs e)
{
if (number=="0")
{
number ="1";
textbox1.Text = number;
}
else
{
number += 1;
textbox1.Text = number;
}
}
private void Button_Click_1(object sender, RoutedEventArgs e)
{
if (number == "0")
{
number = "2";
textbox1.Text = number;
}
else
{
number += 2;
textbox1.Text = number;
}
}
private void Button_Click_2(object sender, RoutedEventArgs e)
{
if (number == "0")
{
number = "3";
textbox1.Text = number;
}
else
{
number += 3;
textbox1.Text = number;
}
}
private void Button_Click_3(object sender, RoutedEventArgs e)
{
if (number == "0")
{
number = "4";
textbox1.Text = number;
}
else
{
number += 4;
textbox1.Text = number;
}
}
private void Button_Click_4(object sender, RoutedEventArgs e)
{
if (number == "0")
{
number = "5";
textbox1.Text = number;
}
else
{
number += 5;
textbox1.Text = number;
}
}
private void Button_Click_5(object sender, RoutedEventArgs e)
{
if (number == "0")
{
number = "6";
textbox1.Text = number;
}
else
{
number += 6;
textbox1.Text = number;
}
}
private void Button_Click_6(object sender, RoutedEventArgs e)
{
if (number == "0")
{
number = "7";
textbox1.Text = number;
}
else
{
number += 7;
textbox1.Text = number;
}
}
private void Button_Click_7(object sender, RoutedEventArgs e)
{
if (number == "0")
{
number = "8";
textbox1.Text = number;
}
else
{
number += 8;
textbox1.Text = number;
}
}
private void Button_Click_8(object sender, RoutedEventArgs e)
{
if (number == "0")
{
number = "9";
textbox1.Text = number;
}
else
{
number += 9;
textbox1.Text = number;
}
}
private void Button_Click_9(object sender, RoutedEventArgs e)
{
if (number == "0")
{
number = "0";
textbox1.Text = number;
}
else
{
number += 0;
textbox1.Text = number;
}
}
//加法计算
private void Button_Click_10(object sender, RoutedEventArgs e)
{
textbox2.Text = " ";
jia = number;
number = " ";
textbox1.Text = number;
textbox2.Text = jia + "+";
jiatrue = true;
jianfa = false;
chengfa = false;
chufa = false;
}
// 减法计算
private void Button_Click_13(object sender, RoutedEventArgs e)
{
textbox2.Text = " ";
jia = number;
number = " ";
textbox1.Text = number;
textbox2.Text = jia + "-";
jiatrue = false;
jianfa = true;
chengfa = false;
chufa = false;
}
//乘法计算
private void Button_Click_14(object sender, RoutedEventArgs e)
{
textbox2.Text = " ";
jia = number;
number = " ";
textbox1.Text = number;
textbox2.Text = jia + "x";
jiatrue = false;
jianfa = false;
chengfa = true;
chufa = false;
}
// 除法计算
private void Button_Click_15(object sender, RoutedEventArgs e)
{
textbox2.Text = " ";
jia = number;
number = " ";
textbox1.Text = number;
textbox2.Text = jia + "÷";
jiatrue = false;
jianfa = false;
chengfa = false;
chufa = true;
}
//换算结果
private void Button_Click_11(object sender, RoutedEventArgs e)
{
if (jia==" ")
{
MessageBox.Show("输入有误");
return;
}
if (jiatrue==true)
{
int a= Convert.ToInt32(jia);
int b= Convert.ToInt32(number);
var num = Convert.ToInt32(a + b);
textbox1.Text = num.ToString();
textbox2.Text = a + "+"+b+"="+Convert.ToInt32(a+b).ToString();
number = num.ToString();
}
if (jianfa==true)
{
int a = Convert.ToInt32(jia);
int b = Convert.ToInt32(number);
var num = Convert.ToInt32(a - b);
textbox1.Text = num.ToString();
textbox2.Text = a + "-" + b + "=" + Convert.ToInt32(a - b).ToString();
}
if (chengfa==true)
{
int a = Convert.ToInt32(jia);
int b = Convert.ToInt32(number);
var num = Convert.ToInt32(a * b);
textbox1.Text = num.ToString();
textbox2.Text = a + "x" + b + "=" + Convert.ToInt32(a * b).ToString();
}
if (chufa==true)
{
int a = Convert.ToInt32(jia);
int b = Convert.ToInt32(number);
var num = Convert.ToInt32(a / b);
textbox1.Text = num.ToString();
textbox2.Text = a + "÷" + b + "=" + Convert.ToInt32(a / b).ToString();
}
}
private void Button_Click_12(object sender, RoutedEventArgs e)
{
textbox1.Text = "0";
jia = "0";
number = "0";
textbox2.Text = " ";
}