C# 事件驱动型计算器程序:包含页面并可运行
下面是一个基于事件机制编写计算器程序的 C# 示例,包含页面且可运行:
using System;
using System.Windows;
using System.Windows.Controls;
namespace CalculatorApp
{
public partial class MainWindow : Window
{
private string currentNumber;
private string operand;
private double result;
public MainWindow()
{
InitializeComponent();
}
private void NumberButton_Click(object sender, RoutedEventArgs e)
{
Button button = (Button)sender;
currentNumber += button.Content.ToString();
DisplayLabel.Content = currentNumber;
}
private void OperationButton_Click(object sender, RoutedEventArgs e)
{
Button button = (Button)sender;
operand = button.Content.ToString();
result = double.Parse(currentNumber);
currentNumber = "";
DisplayLabel.Content = operand;
}
private void EqualsButton_Click(object sender, RoutedEventArgs e)
{
double secondOperand = double.Parse(currentNumber);
switch (operand)
{
case "+":
result += secondOperand;
break;
case "-":
result -= secondOperand;
break;
case "*":
result *= secondOperand;
break;
case "/":
result /= secondOperand;
break;
}
DisplayLabel.Content = result.ToString();
currentNumber = "";
}
private void ClearButton_Click(object sender, RoutedEventArgs e)
{
currentNumber = "";
operand = "";
result = 0;
DisplayLabel.Content = "";
}
}
}
在这个示例中,我们使用 WPF(Windows Presentation Foundation)来创建计算器的用户界面。计算器的布局使用 XAML(Extensible Application Markup Language),并通过事件处理函数来实现不同按钮的功能。
XAML 文件 (MainWindow.xaml) 示例:
<Window x:Class="CalculatorApp.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="Calculator" Height="450" Width="300">
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*" />
<ColumnDefinition Width="*" />
<ColumnDefinition Width="*" />
<ColumnDefinition Width="*" />
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition Height="Auto" />
<RowDefinition Height="*" />
<RowDefinition Height="*" />
<RowDefinition Height="*" />
<RowDefinition Height="*" />
</Grid.RowDefinitions>
<Label x:Name="DisplayLabel" Grid.ColumnSpan="4" HorizontalContentAlignment="Right" VerticalContentAlignment="Center" FontSize="30" Margin="10" />
<Button Grid.Row="1" Grid.Column="0" Content="7" Click="NumberButton_Click" />
<Button Grid.Row="1" Grid.Column="1" Content="8" Click="NumberButton_Click" />
<Button Grid.Row="1" Grid.Column="2" Content="9" Click="NumberButton_Click" />
<Button Grid.Row="1" Grid.Column="3" Content="/" Click="OperationButton_Click" />
<Button Grid.Row="2" Grid.Column="0" Content="4" Click="NumberButton_Click" />
<Button Grid.Row="2" Grid.Column="1" Content="5" Click="NumberButton_Click" />
<Button Grid.Row="2" Grid.Column="2" Content="6" Click="NumberButton_Click" />
<Button Grid.Row="2" Grid.Column="3" Content="*" Click="OperationButton_Click" />
<Button Grid.Row="3" Grid.Column="0" Content="1" Click="NumberButton_Click" />
<Button Grid.Row="3" Grid.Column="1" Content="2" Click="NumberButton_Click" />
<Button Grid.Row="3" Grid.Column="2" Content="3" Click="NumberButton_Click" />
<Button Grid.Row="3" Grid.Column="3" Content="-" Click="OperationButton_Click" />
<Button Grid.Row="4" Grid.Column="0" Content="0" Click="NumberButton_Click" />
<Button Grid.Row="4" Grid.Column="1" Content="C" Click="ClearButton_Click" />
<Button Grid.Row="4" Grid.Column="2" Content="=" Click="EqualsButton_Click" />
<Button Grid.Row="4" Grid.Column="3" Content="+" Click="OperationButton_Click" />
</Grid>
</Window>
在代码中,我们创建了 MainWindow 类来表示主窗口,并在构造函数中初始化界面。各个按钮的点击事件通过 NumberButton_Click、OperationButton_Click、EqualsButton_Click 和 ClearButton_Click 方法进行处理。
在 NumberButton_Click 方法中,我们将按钮的内容添加到 currentNumber 字符串中,并将其显示在 DisplayLabel 标签中。
在 OperationButton_Click 方法中,我们保存当前数字为 result,并将操作符保存到 operand 变量中,并将操作符显示在 DisplayLabel 标签中。
在 EqualsButton_Click 方法中,我们解析当前数字为双精度浮点数,并根据操作符执行相应的运算。最后将结果显示在 DisplayLabel 标签中,并将 currentNumber 重置为空字符串。
在 ClearButton_Click 方法中,我们将 currentNumber、operand 和 result 重置,并清空 DisplayLabel 标签的内容。
要运行此程序,您需要创建一个新的 WPF 应用程序项目,并将上述代码添加到相应的文件中。然后,您可以构建并运行该项目,以查看计算器应用程序的界面和功能。
原文地址: https://www.cveoy.top/t/topic/bx7M 著作权归作者所有。请勿转载和采集!