初学C#的编程小白创建计算器全过程并恶意卖萌(1之制作计算器)

笔者初学C#第二天,之前接触过VBA及C,C++,均为很水的水平。感觉学习一门语言还是要在了解基本概念以后,直接搭建项目会比较有成就感,也比较有趣。按照前辈们的方法制作了一个计算器,并稍稍加了点女生特有的小心思,现将制作过程详细给出,希望能帮到和我一样的初学者。不过因为初学,水平有限(审美水平更有限),所以制作的很粗糙,不当之处请大家指正。

我使用的是VS2010,首先打开软件,在如图所示位置点击“新建项目”

在随后弹出的界面中,在窗口左侧选择语言为“C#”,中间的界面选择类型为“Windows窗体应用程序”,如下图所示


接下来可以看到出现的界面了。其中中间的灰色窗口Form1,就是我们制作计算器的主要战场啦。此时可以看到在窗口右侧有“工具箱”,这是我们进行窗口编辑的工具所在。


如果没有也不要方,单击编辑栏中的“视图”,在下拉菜单中就可以找到“工具箱”的字样,单击“工具箱”,可以看到窗口右侧出现了一个下拉列表,其中的“Button”及“TextBox”就是我们做计算器的外观所用的主要工具。


首先单击“Button”,再将鼠标移到灰色窗体上(以下用Form1)单击,可以看到窗体上出现了一个按钮,按钮就像Word中的图片一样可以任意调整尺寸和位置。


我们需要在窗体上添加20个按钮,注意添加一排以后可以用鼠标圈选上,用Ctrl+C复制,再用Ctrl+V粘贴,也可以圈选上整体调节位置。效果如下


接下来按照上图所示,点击窗口右边的TextBox,放置到窗体中一个,用来显示按键值及计算结果。同样可以调节它的大小及位置。


我们继续,下面更改按钮的显示的数字。首先右键单击左下的那个按钮,在弹出的下拉菜单中选择“属性”,可以看到在窗口右侧出现了一个名为“属性”的菜单栏。其中的”Text”的值就为按钮显示的值。


我们将其改为“0”。可以看到窗体中的按钮也变为了“0”。


我们再接再厉,将剩下的按钮都改为相应的数字或计算符号。最后成品如下


怎么样,是不是有计算器的样子了呢?


我们接下来为计算器添加代码。需要说明的是在C#中,对每一次操作都命名为“事件”,比如我们点击按钮等,都叫做“事件”,我们先双击“0”按钮,在弹出的代码界面中可以看到,红框内就是我们在单击“0”键时会发生的事件定义,我们相对于“0”键的代码也应该填写在里面。


接下来我们先为窗体添加需要使用的变量。要知道C#是面向对象的语言,我们的窗体是一个大的操作对象,我们在窗体里面添加的按钮等,是大窗体里面一个个小的操作对象。因此我们在窗体中定义的变量,按钮等事件也可以引用。红框中即为窗体的定义。


添加需要使用的变量


接下来我们为“0”按钮按下的事件添加代码,需要注意的是我们需要判定在按下0时,0是不是作为除数,0是不能作为除数的。


接下来为按钮“1”添加代码



请读者依照“1”的样式,对剩下的数字按钮添加代码,稍后会给出完整的代码


接下来我们对计算符号按钮进行代码添加,首先是“+”


上图同时给出了“-”的代码,请自己尝试添加“*”,“/”,“log”,“ln”,“开方”(sqrt),“平方”(x2)按钮的代码。


接下来是“C”键的代码,“C”只是清零。将TextBox的内容清空即可。



然后对“=”进行添加,须知在按下“=”按钮时,系统才开始进行运算。


至此,我们的计算器部分就完成啦~下面是详细代码。

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;

namespace thecaculator
{
    public partial class Form1 : Form
    {
        double a = 0;   //记录计算结果
        double b = 0;   //记录第一个操作数
        bool c = false;  //当按下"+","-","*","/"等计算符号时将C置为true,
                          //因为按下计算符号后,再按数字时,应当将原有数字清零。

        string d; //记录计算符号         
        public Form1()
        {
            InitializeComponent();
        }

        private void button20_Click(object sender, EventArgs e)
        {

             if(c==true )              
       {               
           textBox1.Text="";     
            c=false ;
             }         
        textBox1.Text += "0";
            if (d == "/")   //之前按下/号
        {           
                textBox1.Clear();    //清空文本框 
                     //下面弹出警告,请自己尝试下
            MessageBox.Show("除数不能为零", "错误提示", MessageBoxButtons.OK,   MessageBoxIcon.Warning);                               
               }          
        }

        private void button15_Click(object sender, EventArgs e)
        {
            if (c == true)
            {
                textBox1.Text = "";
                c = false;
            }
            textBox1.Text += "1";
        }

        private void button14_Click(object sender, EventArgs e)
        {
            if (c == true)
            {
                textBox1.Text = "";
                c = false;
            }
            textBox1.Text += "2";
        
        }

        private void button13_Click(object sender, EventArgs e)
        {
        
            if (c == true)
            {
                textBox1.Text = "";
                c = false;
            }
            textBox1.Text += "3";
        }

        private void button10_Click(object sender, EventArgs e)
        {
        
            if (c == true)
            {
                textBox1.Text = "";
                c = false;
            }
            textBox1.Text += "4";
        }

        private void button9_Click(object sender, EventArgs e)
        {
            if (c == true)
            {
                textBox1.Text = "";
                c = false;
            }
            textBox1.Text += "5";
        

        }

        private void button8_Click(object sender, EventArgs e)
        {
            if (c == true)
            {
                textBox1.Text = "";
                c = false;
            }
            textBox1.Text += "6";
        }

        private void button1_Click(object sender, EventArgs e)
        {
        
            if (c == true)
            {
                textBox1.Text = "";
                c = false;
            }
            textBox1.Text += "7";
        }

        private void button2_Click(object sender, EventArgs e)
        {
        
            if (c == true)
            {
                textBox1.Text = "";
                c = false;
            }
            textBox1.Text += "8";
        }

        private void button3_Click(object sender, EventArgs e)
        {
            if (c == true)
            {
                textBox1.Text = "";
                c = false;
            }
            textBox1.Text += "9";
        }

        private void button4_Click(object sender, EventArgs e)
        {
            c = true;         
       b = double.Parse(textBox1.Text);       
       d = "+";       
        }

        private void button7_Click(object sender, EventArgs e)
        {
         
            c = true;       
       b = double.Parse(textBox1.Text);    
       d = "-"; 
        }

        private void button12_Click(object sender, EventArgs e)
        {
        
            
            c = true;       
       b = double.Parse(textBox1.Text);  
       d = "*";  
        }

        private void button17_Click(object sender, EventArgs e)
        {
            c = true;
            b = double.Parse(textBox1.Text);
            d = "/";       
        }

        private void button5_Click(object sender, EventArgs e)
        {
            c = true;
            b = double.Parse(textBox1.Text);
            d = "x2";       
        }

        private void button6_Click(object sender, EventArgs e)
        {
            c = true;
            b = double.Parse(textBox1.Text);
            d = "sqrt";       
        }

        private void button11_Click(object sender, EventArgs e)
        {
            c = true;
            b = double.Parse(textBox1.Text);
            d = "log";       
        }

        private void button16_Click(object sender, EventArgs e)
        {
            c = true;
            b = double.Parse(textBox1.Text);
            d = "ln";       
        }

        private void button18_Click(object sender, EventArgs e)
        {
                  
       switch (d)         
       {                
                 case "+": a = b + double.Parse(textBox1.Text); break;     
          case "-": a = b - double.Parse(textBox1.Text); break;    
          case "*": a = b * double.Parse(textBox1.Text); break;                           
          case "/": a = b / double.Parse(textBox1.Text); break;           
          case "x2": a = b * double.Parse(textBox1.Text); break;                           
          case "sqrt": a = Math.Sqrt(b ); break;               
          case "log": a = Math.Log(double.Parse(textBox1.Text),b ); break;      
          case "ln": a = Math.Log(b, Math.E); break;
               }                                                 
        textBox1.Text = a + "";               
        c = true;                         

        }

        private void button19_Click(object sender, EventArgs e)
        {
            textBox1.Text ="";

        }


    }
}

计算器部分基本上全部借鉴于一个前辈的经验分享,以下为原文章链接,如有侵权,请联系我删除

http://www.th7.cn/Program/net/201311/158591.shtml

接下来要在计算器上做一点小手脚啦,也是恶意卖萌的部分,这部分会在接下来(2)部分给出。

  • 24
    点赞
  • 86
    收藏
    觉得还不错? 一键收藏
  • 10
    评论
评论 10
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值