• 实战项目用winform动手写一个计算器


    实战项目-用winform动手写一个计算器

    实战项目--用winform动手写一个“计算器”

    实战项目旨在交流学习,欢迎在评论区交流意见。

    简介:分享一个简单的软件项目---自己动手写一个“计算器”。

    先展示效果:

    项目开发环境: Visual Studio 2017 winform 开发

    开发语言: C#

    demo功能: Windows 窗体程序实现计算器功能

    PS:其他版本的VS开发步骤基本一样

    首先,打开Visual Sdudio,新建一个winform工程

    左上角:文件 - 新建 - 项目

    选择Visual C# 的 Windows窗体应用(.NET Framework),名称位置自己设定即可

    然后点击确定

    接着弹出的窗体设计界面就可以用来进行程序界面设计了:

    在左侧工具箱中,拖出需要的按钮,改变其大小和显示标签,如下图所示

    这里设定了0~9的数字按键,加减乘除的基本运算按键还有“=”号和清除键“C”,这里按照个人实际需求设计即可,此例只是示范。

    然后拖入一个TextBox控件,调整大小和整体布局,使得界面看起开相对规范:

    PS:TextBox的属性栏里面,应当将字体改大,以便显示,显示顺序应改为RightToLeft

    功能布局颜色等按照自己的需求做一下调整,界面就搞定了

    下面代码实现功能:

    表示最终结果,中间结果的值的变量在开头先定义清楚,然后后面在每个按键的触发事件中填入内容即可。

    感觉挺简单的算法,自己写的时候还是费了些脑经,多次修改测试后,圆满实现效果。

    至此项目介绍完毕,项目中的数学计算还是挺有意思的

    下面上源码:

    using System;

    using System.Collections.Generic;

    using System.ComponentModel;

    using System.Data;

    using System.Drawing;

    using System.Linq;

    using System.Text;

    using System.Threading.Tasks;

    using System.Windows.Forms;

    namespace calculator

    {

    public partial class Form1 : Form

    {

    public Form1()

    {

    InitializeComponent();

    }

    double Value = 0;//最终值

    double value = 0;//中间值

    int[] number = new int[10]; //设定输入数据位数不超过10位

    int K = 0;//位数

    int flag = 0;//0:加 1:减 2:乘 3:除

    private void button0_Click(object sender, EventArgs e)

    {

    value = 0;//清空中间值

    number[K] = 0;

    K++;//位数增加

    for (int i = 0; i < K; i++)

    {

    value += number[i] * System.Math.Pow(10, K - i - 1);//乘方:10的K次方

    }

    // Value = Value + value;

    textBox1.Text = value.ToString();//显示

    }

    private void button1_Click(object sender, EventArgs e)

    {

    value = 0;//清空中间值

    number[K] = 1;

    K++;//位数增加

    for (int i = 0; i < K; i++)

    {

    value += number[i] * System.Math.Pow(10, K - i-1);//乘方:10的K次方

    }

    // Value = Value + value;

    textBox1.Text = value.ToString();//显示

    }

    private void button2_Click(object sender, EventArgs e)

    {

    value = 0;//清空中间值

    number[K] = 2;

    K++;//位数增加

    for (int i = 0; i < K; i++)

    {

    value += number[i] * System.Math.Pow(10, K - i - 1);//乘方:10的K次方

    }

    // Value = Value + value;

    textBox1.Text = value.ToString();//显示

    }

    private void button3_Click(object sender, EventArgs e)

    {

    value = 0;//清空中间值

    number[K] = 3;

    K++;//位数增加

    for (int i = 0; i < K; i++)

    {

    value += number[i] * System.Math.Pow(10, K - i - 1);//乘方:10的K次方

    }

    // Value = Value + value;

    textBox1.Text = value.ToString();//显示

    }

    private void button4_Click(object sender, EventArgs e)

    {

    value = 0;//清空中间值

    number[K] = 4;

    K++;//位数增加

    for (int i = 0; i < K; i++)

    {

    value += number[i] * System.Math.Pow(10, K - i - 1);//乘方:10的K次方

    }

    // Value = Value + value;

    textBox1.Text = value.ToString();//显示

    }

    private void button5_Click(object sender, EventArgs e)

    {

    value = 0;//清空中间值

    number[K] = 5;

    K++;//位数增加

    for (int i = 0; i < K; i++)

    {

    value += number[i] * System.Math.Pow(10, K - i - 1);//乘方:10的K次方

    }

    // Value = Value + value;

    textBox1.Text = value.ToString();//显示

    }

    private void button6_Click(object sender, EventArgs e)

    {

    value = 0;//清空中间值

    number[K] = 6;

    K++;//位数增加

    for (int i = 0; i < K; i++)

    {

    value += number[i] * System.Math.Pow(10, K - i - 1);//乘方:10的K次方

    }

    // Value = Value + value;

    textBox1.Text = value.ToString();//显示

    }

    private void button7_Click(object sender, EventArgs e)

    {

    value = 0;//清空中间值

    number[K] = 7;

    K++;//位数增加

    for (int i = 0; i < K; i++)

    {

    value += number[i] * System.Math.Pow(10, K - i - 1);//乘方:10的K次方

    }

    // Value = Value + value;

    textBox1.Text = value.ToString();//显示

    }

    private void button8_Click(object sender, EventArgs e)

    {

    value = 0;//清空中间值

    number[K] = 8;

    K++;//位数增加

    for (int i = 0; i < K; i++)

    {

    value += number[i] * System.Math.Pow(10, K - i - 1);//乘方:10的K次方

    }

    // Value = Value + value;

    textBox1.Text = value.ToString();//显示

    }

    private void button9_Click(object sender, EventArgs e)

    {

    value = 0;//清空中间值

    number[K] = 9;

    K++;//位数增加

    for (int i = 0; i < K; i++)

    {

    value += number[i] * System.Math.Pow(10, K - i - 1);//乘方:10的K次方

    }

    // Value = Value + value;

    textBox1.Text = value.ToString();//显示

    }

    //加

    private void button10_Click(object sender, EventArgs e)

    {

    //运算

    if (flag == 0)

    {

    Value = Value + value;

    }

    else if (flag == 1)

    {

    Value = Value - value;

    }

    else if (flag == 2)

    {

    Value = Value * value;

    }

    else if (flag == 3)

    {

    Value = Value / value;

    }

    flag = 0;//标记运算符

    textBox1.Text = Value.ToString();//显示

    value = 0;

    K = 0;

    }

    //减

    private void button11_Click(object sender, EventArgs e)

    {

    //运算

    if (flag == 0)

    {

    Value = Value + value;

    }

    else if (flag == 1)

    {

    Value = Value - value;

    }

    else if (flag == 2)

    {

    Value = Value * value;

    }

    else if (flag == 3)

    {

    Value = Value / value;

    }

    flag = 1;//标记运算符

    textBox1.Text = Value.ToString();//显示

    value = 0;

    K = 0;

    }

    //乘

    private void button12_Click(object sender, EventArgs e)

    {

    //运算

    if (flag == 0)

    {

    Value = Value + value;

    }

    else if (flag == 1)

    {

    Value = Value - value;

    }

    else if (flag == 2)

    {

    Value = Value * value;

    }

    else if (flag == 3)

    {

    Value = Value / value;

    }

    flag = 2;//标记运算符

    textBox1.Text = Value.ToString();//显示

    value = 0;

    K = 0;

    }

    //除

    private void button13_Click(object sender, EventArgs e)

    {

    //运算

    if (flag == 0)

    {

    Value = Value + value;

    }

    else if (flag == 1)

    {

    Value = Value - value;

    }

    else if (flag == 2)

    {

    Value = Value * value;

    }

    else if (flag == 3)

    {

    Value = Value / value;

    }

    flag = 3;//标记运算符

    textBox1.Text = Value.ToString();//显示

    value = 0;

    K = 0;

    }

    //清空

    private void button14_Click(object sender, EventArgs e)

    {

    Value = 0;

    value = 0;

    K = 0;

    flag = 0;

    textBox1.Text = "0";

    }

    //结果显示

    private void button15_Click(object sender, EventArgs e)

    {

    //运算

    if (flag == 0)

    {

    Value = Value + value;

    }

    else if (flag == 1)

    {

    Value = Value - value;

    }

    else if (flag == 2)

    {

    Value = Value * value;

    }

    else if (flag == 3)

    {

    Value = Value / value;

    }

    textBox1.Text = Value.ToString();//显示

    value = 0;

    K = 0;

    }

    }

    }

    举报/反馈
    https://baijiahao.baidu.com/s?id=1692730467104719983&wfr=spider&for=pc
  • 相关阅读:
    [CentOS_7.4]Linux编译安装mono环境
    [CentOS_7.4]Linux安装与网络配置
    div框选中状态,倒三角样式
    photoswipe图片滑动插件使用
    微信应用号(小程序)开发教程二
    微信应用号(小程序)开发教程一
    开发者必去的10大国内网站推荐
    愤怒的小鸟 高清完整版下载
    魔兽 高清完整版下载
    分歧者3 高清完整版下载
  • 原文地址:https://www.cnblogs.com/sunny3158/p/16778027.html
Copyright © 2020-2023  润新知