关于我正在创建的程序,我有两个问题是计算器(我知道,哇,太棒了)。我试图给它一个Sin按钮,但是任何时候我尝试使用它,它都不允许我使用它
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Imaging;
using System.Windows.Navigation;
using System.Windows.Shapes;
/*This is an app that will be used for carrying out claculations
entered by the user. I am attemtpting to include keyboard shortcuts
also.*/
namespace WpfApplication1
{
/// <summary>
/// Interaction logic for MainWindow.xaml
/// </summary>
public partial class MainWindow : Window
{
/* ------------Declaration of needed variables to carry out mathematical functions------------ */
string input = string.Empty;
string operand1 = string.Empty;
string operand2 = string.Empty;
char operation;
double result = 0.0;
/* ------------MainWindow, not altered------------ */
public MainWindow()
{
InitializeComponent();
}
/* ------------Number and number customization buttons------------ */
private void Decimal_Click(object sender, RoutedEventArgs e)
{
this.ViewerDisplay.Text = "";
input += ".";
this.ViewerDisplay.Text += input;
}
private void Zero_Click(object sender, RoutedEventArgs e)
{
this.ViewerDisplay.Text = "";
input += "0";
this.ViewerDisplay.Text += input;
}
private void One_Click(object sender, RoutedEventArgs e)
{
this.ViewerDisplay.Text = "";
input += "1";
this.ViewerDisplay.Text += input;
}
private void Two_Click(object sender, RoutedEventArgs e)
{
this.ViewerDisplay.Text = "";
input += "2";
this.ViewerDisplay.Text += input;
}
private void Three_Click(object sender, RoutedEventArgs e)
{
this.ViewerDisplay.Text = "";
input += "3";
this.ViewerDisplay.Text += input;
}
private void Four_Click(object sender, RoutedEventArgs e)
{
this.ViewerDisplay.Text = "";
input += "4";
this.ViewerDisplay.Text += input;
}
private void Five_Click(object sender, RoutedEventArgs e)
{
this.ViewerDisplay.Text = "";
input += "5";
this.ViewerDisplay.Text += input;
}
private void Six_Click(object sender, RoutedEventArgs e)
{
this.ViewerDisplay.Text = "";
input += "6";
this.ViewerDisplay.Text += input;
}
private void Seven_Click(object sender, RoutedEventArgs e)
{
this.ViewerDisplay.Text = "";
input += "7";
this.ViewerDisplay.Text += input;
}
private void Eight_Click(object sender, RoutedEventArgs e)
{
this.ViewerDisplay.Text = "";
input += "8";
this.ViewerDisplay.Text += input;
}
private void Nine_Click(object sender, RoutedEventArgs e)
{
this.ViewerDisplay.Text = "";
input += "9";
this.ViewerDisplay.Text += input;
}
/* ------------Operation buttons------------*/
private void Minus_Click(object sender, RoutedEventArgs e)
{
operand1 = input;
operation = '-';
input = string.Empty;
}
private void Plus_Click(object sender, RoutedEventArgs e)
{
operand1 = input;
operation = '+';
input = string.Empty;
}
private void Divide_Click(object sender, RoutedEventArgs e)
{
operand1 = input;
operation = '/';
input = string.Empty;
}
private void Multiply_Click(object sender, RoutedEventArgs e)
{
operand1 = input;
operation = '*';
input = string.Empty;
}
private void Equal_Click(object sender, RoutedEventArgs e)
{
operand2 = input;
double num1, num2;
double.TryParse(operand1, out num1);
double.TryParse(operand2, out num2);
if (operation == '+')
{
result = num1 + num2;
ViewerDisplay.Text = result.ToString();
}
if (operation == '-')
{
result = num1 - num2;
ViewerDisplay.Text = result.ToString();
}
if (operation == '*')
{
result = num1 * num2;
ViewerDisplay.Text = result.ToString();
}
if (operation == '/')
{
if (num2 != 0)
{
result = num1 / num2;
ViewerDisplay.Text = result.ToString();
}
else
{
ViewerDisplay.Text = "Undefined";
}
}
if (operation == 'S')
{
result = Math.Sin(num1);
ViewerDisplay.Text = result.ToString();
}
}
private void Clear_Click(object sender, RoutedEventArgs e)
{
this.ViewerDisplay.Text = "0.0";
input = string.Empty;
operand1 = string.Empty;
operand2 = string.Empty;
}
private void Fnc_Click(object sender, RoutedEventArgs e)
{
this.MainGrid.Visibility = Visibility.Collapsed;
this.SecondaryGrid.Visibility = Visibility.Visible;
}
private void Sin_Click(object sender, RoutedEventArgs e)
{
operand1 = input;
operation = 'S';
input = string.Empty;
input = "Sin(";
}
private void Cos_Click(object sender, RoutedEventArgs e)
{
}
private void Tan_Click(object sender, RoutedEventArgs e)
{
}
我也想知道如何为按钮设计不同的字符,例如方根标志。
答案 0 :(得分:1)
问题是在按下sin按钮后,它会添加&#34; Sin(&#34;到输入,然后TryParse
失败,因为输入中有字母。此外,你正在调用{ num1上的{1}},这是在按下sin按钮之前输入的数字。
只需注释,Math.Sin
以弧度形式返回结果,如果您希望以度为单位,请使用:
Math.Sin
Math.Sin((num2*Math.PI)/180)
是在框中输入的最后一个数字,在&#34; Sin之后(&#34;我已经对此进行了测试,我很快就制作了一个糟糕的计算器。< / p>
现在,关于设计不同的字符,如平方根符号。首先,可以将平方根符号(√)放入按钮,标签等中,方法是将其num2
属性(WPF为Text
)设置为&#34; \ u221A& #34 ;.像这样:
Content
对于其他符号,请尝试在线搜索,如果找不到,请制作图片并将按钮的背景设置为该图像。
答案 1 :(得分:1)