码迷,mamicode.com
首页 > Windows程序 > 详细

c#计算器

时间:2017-08-22 13:16:59      阅读:246      评论:0      收藏:0      [点我收藏+]

标签:void   输出   代码   com   break   enter   button   rgs   注意   

这是我的第一份博客。

我是一名在校大学生,喜欢编程,我是一个新手,这段代码是我最近才写出来,借鉴了很多前辈们的代码,发现他们基本上都是已经学习编程很久,再重新回来写c#计算器代码,可能不是特别适合新手,我这有的新手写的代码可以更好的理解新手的思维。

这份博客是我用心去写的,写的可能还不好,希望能够多给我些支持。

下面是代码部分:

我的代码总共用1个groupBox 1个textBox1 17个按钮 

textBox负责输入和输出文本 1 2 3 4按钮是加减乘除 5按钮是=  6到14是数字输出按钮  15按钮是小数点 16按钮是清零 17是清除前一位字符 在代码注释里也有说明

代码的整体思路:数字按钮负责输入显示数字 运算符按钮负责保存运算符之前的输入数字和运算符本身 他们被分别保存在一个double数组arithmeticData和一个string 数组Arithmetic =按钮将之前保存的数字和运算符按照顺序进行计算,先将最后显示的数字和第

一个保存的数字计算得出结果,这个结果再和第二个数字组合得出第二个结果,以此类推最后算出最后的结果。

注意:调用窗口需在主程序写 System.Windows.Forms.Application.Run(new Form1());

下面是具体的代码

代码较长,但难度不高慢慢看一定能看懂,实在不懂可以留言询问 希望能够得到大家的支持。

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;
using System.Collections;
using System.Windows;

namespace studly
{
public partial class Form1 : Form
{
private string[] Arithmetic=new string[4]; //定义运算符号
private double prevNum=-1; //计算时使用前一个数字
private int count=0;
private double[] arithmeticData=new double[10]; //保存计算的数字
public Form1()
{
InitializeComponent();
}
private void Form1_Load(object sender, EventArgs e)
{

}
private void groupBox1_Enter(object sender, EventArgs e)
{

}
private void textBox1_TextChanged(object sender, EventArgs e)
{

}
private void InitArithmetic() //初始化计算时变量,没有初始化prevNum,在addNum()初始化
{
for (int i = 0; i < Arithmetic.Length; i++)
{
Arithmetic[i] = "";
}
for (int i = 0; i < arithmeticData.Length; i++)
{
arithmeticData[i] = 0;
}
count = 0;

}
private void addShowNum(int num) //输入数字并输出到textBox1
{
prevNum = 0;
if (textBox1.Text == "0")
{
textBox1.Text = num.ToString();
}
else
{
textBox1.Text += num;
}
}

private void button1_Click(object sender, EventArgs e) //保存+前的数字,以便后面计算
{
Arithmetic[count] = "+";
arithmeticData[count] = double.Parse(textBox1.Text);
textBox1.Text = "0";
count++;
}
private void button2_Click(object sender, EventArgs e)
{
Arithmetic[count] = "-";
arithmeticData[count] = double.Parse(textBox1.Text);
textBox1.Text = "0";
count++;
}
private void button3_Click(object sender, EventArgs e)
{
Arithmetic[count] = "*";
arithmeticData[count] = double.Parse(textBox1.Text);
textBox1.Text = "0";
count++;
}
private void button4_Click(object sender, EventArgs e)
{
Arithmetic[count] = "/";
arithmeticData[count] = double.Parse(textBox1.Text);
textBox1.Text = "0";
count++;
}

private void button5_Click(object sender, EventArgs e) //将保存的数字和相应的运算符号进行组合运算得出结果
{
prevNum = double.Parse(textBox1.Text);
for(int i=0;i<count;i++)
{
switch(Arithmetic[i])
{
case "+":
prevNum += arithmeticData[i];
break;
case "-":
prevNum -= arithmeticData[i];
break;
case "*":
prevNum *= arithmeticData[i];
break;
case "/":
prevNum /= arithmeticData[i];
break;
}
}
textBox1.Text = prevNum.ToString();
InitArithmetic(); //清零计算中使用的数字和运算符号,只保留最后的结果便于直接进行计算
}

private void button6_Click(object sender, EventArgs e) //添加数字
{
addShowNum(9);
}
private void button7_Click(object sender, EventArgs e)
{
addShowNum(8);
}
private void button8_Click(object sender, EventArgs e)
{
addShowNum(7);
}
private void button9_Click(object sender, EventArgs e)
{
addShowNum(6);
}
private void button10_Click(object sender, EventArgs e)
{
addShowNum(5);
}
private void button11_Click(object sender, EventArgs e)
{
addShowNum(4);
}
private void button12_Click(object sender, EventArgs e)
{
addShowNum(3);
}
private void button13_Click(object sender, EventArgs e)
{
addShowNum(2);
}
private void button14_Click(object sender, EventArgs e)
{
addShowNum(1);
}

private void button15_Click(object sender, EventArgs e)
{
prevNum = 0;
if(textBox1.Text=="0")
{
textBox1.Text = "0.";
}
else
{
textBox1.Text += ".";
}
}

private void button16_Click(object sender, EventArgs e) //清零
{
textBox1.Text = "0";
}

private void button17_Click(object sender, EventArgs e)
{
textBox1.Text=textBox1.Text.Substring(0, textBox1.Text.Length - 1); //清除前一个字符
}
}
}

 

c#计算器

标签:void   输出   代码   com   break   enter   button   rgs   注意   

原文地址:http://www.cnblogs.com/wzq2747527869/p/7411038.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!