实例2--C# 简易计算器

实例2

C# 简易计算器


目录

实例2

C# 简易计算器

1. 需求

1.1 实现功能

1.2 涉及C#技术点

1.3 关联工具

2. 设计步骤

2.1 需求分析与功能定义

2.2 界面设计

2.3 事件处理

2.4 逻辑实现

2.5 异常与错误处理

2.6 测试与调试

3. C#项目

3.1  新建项目

3.2 窗体UI控件设计

3.3 C#代码

4. 总结


    

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设计以及运算逻辑实现的理解和应用。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值