实例2
C# 简易计算器
目录
1. 需求
1.1 实现功能
简易计算器是一个能够进行基本算术运算的应用程序。
功能要求如下:
(1) 加减乘除:用户输入两个数字,计算并显示它们的运算结果。
(2) 清除:用户可以清除当前输入,开始新的计算。
(3) 错误处理:当用户异常输入,系统应该给出友好的错误提示。
约束条件:
(4) 除以零时,提示异常输入,用户重新输入。
(5) 重复点击运算符时,以最新输入为标准。
(6) 重复点击计算符时,不做计算处理。
1.2 涉及C#技术点
- Windows Forms:用于构建图形用户界面(GUI)。
- 事件处理:按钮点击事件的处理,输入框的处理。
- 数据类型:整型、浮点型的运算。
- 异常处理:用于处理除零错误、输入无效字符等。
- 字符串操作:将用户输入的字符串转换为数字,并进行相应的运算。
- 逻辑控制:判断运算类型,处理不同的数学运算。
- 基本运算符:加、减、乘、除。
1.3 关联工具
C# 项目开发平台:Visual Studio 2022
基本能力要求:C/C++ 项目开发
2. 设计步骤
2.1 需求分析与功能定义
确定计算器需要支持的基本功能(加法、减法、乘法、除法)。
定义用户输入和输出格式。
设计界面:计算器窗口的控件(按钮、文本框等)。
2.2 界面设计
使用Windows Forms设计器设计图形界面。
放置必要的控件(按钮、文本框、标签等)。
设置控件的布局,调整控件大小、位置,确保用户体验。
C#_UI控件:
(1)数字按键:“0”、“1”、...“8”、“9”、“.”
(2)运算符按键:“+”、“-”、“X”、“/”
(3)计算符:“=”
(4)清空符:“C”
(5)显示文本框
2.3 事件处理
为每个按钮编写点击事件处理程序,处理用户输入并执行相应的运算。
处理输入的验证(确保用户输入的是数字,避免非法字符)。
事件处理流
2.4 逻辑实现
在事件处理程序中实现相应的计算逻辑(加法、减法、乘法、除法)。
实现错误处理,例如除以零、输入错误等。
2.5 异常与错误处理
提供错误提示给用户,例如“除数不能为零”。
2.6 测试与调试
测试每种运算的准确性。
确保界面交互流畅,错误处理及时准确。
3. C#项目
3.1 新建项目
1. 新建一个C#项目,选择 “Windows窗体应用(.NET Framework)”
2.项目名称 -- “Calculator” ,位置 -- “C:\Users\Administrator\Desktop” ,勾选 “将解决方案和项目放在同一目录中” ,框架 -- “.NET Framework 4.7.2” 。 点击 “创建”
3.创建成功后的项目
3.2 窗体UI控件设计
3.3 C#代码
“Form1.cs” 中的
元素:
Button push_b;//点击的按钮
double num_1 = 0;//第一个输入数字
double num_2 = 0;//第二个输入数字
string ysf=" ";//运算符 '+' '-' 'X' '/'
int num_k = 0;//数字输入状态 0--未有数字输入; 1--有数字输入;
int num_t = 0;//数字输入状态 0--第一个数字未输入结束; 1--第一个数字输入完成;
函数:
public Form1()
private void button_C_Click(object sender, EventArgs e)
private void num(object sender, EventArgs e)
private void yunsuanfu(object sender, EventArgs e)
private void button_equal_Click(object sender, EventArgs e)
组件关联函数的步骤
public Form1()
public Form1()
{
InitializeComponent();
}
private void button_C_Click(object sender, EventArgs e)
/*-----------------------------------------------------------------------*/
private void button_C_Click(object sender, EventArgs e)
{
textBox1.Text = "";//清空显示内容
num_k = 0;
num_t = 0;
}
/*-----------------------------------------------------------------------*/
private void num(object sender, EventArgs e)
/*-----------------------------------------------------------------------*/
private void num(object sender, EventArgs e)
{
push_b = (Button)sender;
textBox1.Text += push_b.Text;//显示数字值
num_k = 1;
}
/*-----------------------------------------------------------------------*/
private void yunsuanfu(object sender, EventArgs e)
/*-----------------------------------------------------------------------*/
private void yunsuanfu(object sender, EventArgs e)
{
push_b = (Button)sender;
if(num_t == 0 && num_k!=0)//点击"运算符"前必须存在"数值1"
{
num_1 = Convert.ToDouble(textBox1.Text);
}
else
{
Debug.WriteLine("重复点击运算符!");//用户操作保护
}
ysf = push_b.Text;
textBox1.Text = "";
num_t = 1;
}
/*-----------------------------------------------------------------------*/
private void button_equal_Click(object sender, EventArgs e)
/*-----------------------------------------------------------------------*/
private void button_equal_Click(object sender, EventArgs e)
{
push_b = (Button)sender;
if (num_t == 0 )//点击"计算符"前必须存在"运算符"
{
Debug.WriteLine("点击\"计算符\"前必须存在\"运算符\"!");//用户操作保护
}
else
{
num_2 = Convert.ToDouble(textBox1.Text);
switch (ysf)
{
case "+":
textBox1.Text = (num_1 + num_2).ToString();
break;
case "-":
textBox1.Text = (num_1 - num_2).ToString();
break;
case "X":
textBox1.Text = (num_1 * num_2).ToString();
break;
case "/":
if(num_2==0)//异常保护“除以零”
{
MessageBox.Show("请重新输入!");
button_C_Click(this.button_C,e);
}
else
{
textBox1.Text = (num_1 / num_2).ToString();
}
break;
default: break;
}
num_t = 0;
}
}
/*-----------------------------------------------------------------------*/
调试态如下动图所示
项目配置与运行:
- 通过调试和测试,确保项目的正确性和稳定性。
- 在程序运行时,确保用户输入的有效性,并显示相应的结果或错误提示。
4. 总结
在开发简易计算器应用时,C#的事件处理、数据转换和异常处理是关键技术点。通过使用Windows Forms,我们能够快速设计出用户友好的图形界面,同时利用C#语言的强大功能来处理运算逻辑和用户输入。
项目开发过程中,界面设计和事件逻辑处理是两大重要任务,异常处理确保了程序的稳定性,用户输入的验证保证了系统的可靠性。完成该项目后,可以加深对C#编程、GUI设计以及运算逻辑实现的理解和应用。