mirror of
https://github.com/zs-yg/kortapp-z.git
synced 2025-12-06 16:10:42 +08:00
Add files via upload
This commit is contained in:
34
tools/Calculator.cs
Normal file
34
tools/Calculator.cs
Normal file
@@ -0,0 +1,34 @@
|
|||||||
|
using System;
|
||||||
|
|
||||||
|
namespace AppStore
|
||||||
|
{
|
||||||
|
/// <summary>
|
||||||
|
/// 提供基本数学运算功能的工具类
|
||||||
|
/// </summary>
|
||||||
|
public static class Calculator
|
||||||
|
{
|
||||||
|
/// <summary>
|
||||||
|
/// 加法运算
|
||||||
|
/// </summary>
|
||||||
|
public static double Add(double a, double b) => a + b;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 减法运算
|
||||||
|
/// </summary>
|
||||||
|
public static double Subtract(double a, double b) => a - b;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 乘法运算
|
||||||
|
/// </summary>
|
||||||
|
public static double Multiply(double a, double b) => a * b;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 除法运算
|
||||||
|
/// </summary>
|
||||||
|
public static double Divide(double a, double b)
|
||||||
|
{
|
||||||
|
if (b == 0) throw new DivideByZeroException("除数不能为零");
|
||||||
|
return a / b;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
118
tools/CalculatorForm.cs
Normal file
118
tools/CalculatorForm.cs
Normal file
@@ -0,0 +1,118 @@
|
|||||||
|
using System;
|
||||||
|
using System.Drawing;
|
||||||
|
using System.Windows.Forms;
|
||||||
|
using AppStore;
|
||||||
|
|
||||||
|
namespace AppStore
|
||||||
|
{
|
||||||
|
public class CalculatorForm : Form
|
||||||
|
{
|
||||||
|
private TextBox display = new TextBox();
|
||||||
|
private double firstNumber = 0;
|
||||||
|
private string operation = "";
|
||||||
|
|
||||||
|
public CalculatorForm()
|
||||||
|
{
|
||||||
|
this.Text = "计算器";
|
||||||
|
this.Size = new Size(300, 400);
|
||||||
|
this.StartPosition = FormStartPosition.CenterScreen;
|
||||||
|
CreateControls();
|
||||||
|
}
|
||||||
|
|
||||||
|
private void CreateControls()
|
||||||
|
{
|
||||||
|
// 显示框
|
||||||
|
display = new TextBox();
|
||||||
|
display.ReadOnly = true;
|
||||||
|
display.TextAlign = HorizontalAlignment.Right;
|
||||||
|
display.Font = new Font("Microsoft YaHei", 14);
|
||||||
|
display.Size = new Size(260, 40);
|
||||||
|
display.Location = new Point(20, 20);
|
||||||
|
this.Controls.Add(display);
|
||||||
|
|
||||||
|
// 按钮布局
|
||||||
|
string[] buttonLabels = {
|
||||||
|
"7", "8", "9", "/",
|
||||||
|
"4", "5", "6", "*",
|
||||||
|
"1", "2", "3", "-",
|
||||||
|
"0", ".", "=", "+"
|
||||||
|
};
|
||||||
|
|
||||||
|
for (int i = 0; i < buttonLabels.Length; i++)
|
||||||
|
{
|
||||||
|
var btn = new Button();
|
||||||
|
btn.Text = buttonLabels[i];
|
||||||
|
btn.Size = new Size(60, 50);
|
||||||
|
btn.Location = new Point(20 + (i % 4) * 65, 70 + (i / 4) * 55);
|
||||||
|
btn.Font = new Font("Microsoft YaHei", 12);
|
||||||
|
btn.Click += ButtonClickHandler;
|
||||||
|
this.Controls.Add(btn);
|
||||||
|
}
|
||||||
|
|
||||||
|
// 清除按钮
|
||||||
|
var clearBtn = new Button();
|
||||||
|
clearBtn.Text = "C";
|
||||||
|
clearBtn.Size = new Size(260, 40);
|
||||||
|
clearBtn.Location = new Point(20, 300);
|
||||||
|
clearBtn.Font = new Font("Microsoft YaHei", 12);
|
||||||
|
clearBtn.Click += (s, e) => {
|
||||||
|
display.Text = "";
|
||||||
|
firstNumber = 0;
|
||||||
|
operation = "";
|
||||||
|
};
|
||||||
|
this.Controls.Add(clearBtn);
|
||||||
|
}
|
||||||
|
|
||||||
|
private void ButtonClickHandler(object sender, EventArgs e)
|
||||||
|
{
|
||||||
|
var button = sender as Button;
|
||||||
|
if (button == null) return;
|
||||||
|
|
||||||
|
switch (button.Text)
|
||||||
|
{
|
||||||
|
case "+":
|
||||||
|
case "-":
|
||||||
|
case "*":
|
||||||
|
case "/":
|
||||||
|
if (!string.IsNullOrEmpty(display.Text))
|
||||||
|
{
|
||||||
|
firstNumber = double.Parse(display.Text);
|
||||||
|
operation = button.Text;
|
||||||
|
display.Text = "";
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
|
||||||
|
case "=":
|
||||||
|
if (!string.IsNullOrEmpty(operation) && !string.IsNullOrEmpty(display.Text))
|
||||||
|
{
|
||||||
|
double secondNumber = double.Parse(display.Text);
|
||||||
|
double result = 0;
|
||||||
|
|
||||||
|
try
|
||||||
|
{
|
||||||
|
result = operation switch
|
||||||
|
{
|
||||||
|
"+" => AppStore.Calculator.Add(firstNumber, secondNumber),
|
||||||
|
"-" => AppStore.Calculator.Subtract(firstNumber, secondNumber),
|
||||||
|
"*" => AppStore.Calculator.Multiply(firstNumber, secondNumber),
|
||||||
|
"/" => AppStore.Calculator.Divide(firstNumber, secondNumber),
|
||||||
|
_ => 0
|
||||||
|
};
|
||||||
|
|
||||||
|
display.Text = result.ToString();
|
||||||
|
}
|
||||||
|
catch (DivideByZeroException)
|
||||||
|
{
|
||||||
|
MessageBox.Show("除数不能为零", "错误", MessageBoxButtons.OK, MessageBoxIcon.Error);
|
||||||
|
}
|
||||||
|
operation = "";
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
|
||||||
|
default:
|
||||||
|
display.Text += button.Text;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
38
tools/CalculatorToolCard.cs
Normal file
38
tools/CalculatorToolCard.cs
Normal file
@@ -0,0 +1,38 @@
|
|||||||
|
using System;
|
||||||
|
using System.Drawing;
|
||||||
|
using System.Windows.Forms;
|
||||||
|
|
||||||
|
namespace AppStore
|
||||||
|
{
|
||||||
|
public class CalculatorToolCard : ToolCard
|
||||||
|
{
|
||||||
|
public CalculatorToolCard()
|
||||||
|
{
|
||||||
|
ToolName = "计算器";
|
||||||
|
try
|
||||||
|
{
|
||||||
|
string iconPath = Path.Combine(Application.StartupPath, "img", "resource", "png", "Calculator.png");
|
||||||
|
if (File.Exists(iconPath))
|
||||||
|
{
|
||||||
|
ToolIcon = Image.FromFile(iconPath);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
ToolIcon = SystemIcons.Application.ToBitmap();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
catch
|
||||||
|
{
|
||||||
|
ToolIcon = SystemIcons.Application.ToBitmap();
|
||||||
|
}
|
||||||
|
this.ToolCardClicked += OnCalculatorCardClicked;
|
||||||
|
UpdateDisplay();
|
||||||
|
}
|
||||||
|
|
||||||
|
private void OnCalculatorCardClicked(object sender, EventArgs e)
|
||||||
|
{
|
||||||
|
var calculatorForm = new CalculatorForm();
|
||||||
|
calculatorForm.ShowDialog();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user