第二课:一个简易计算器的开发

        在传统的编程书籍中,第一个上手的程序永远都是神奇的“Hello World!”,在我们的第二课中,将打破这一惯例,破天荒的来教大家亲手开发一个简易的计算器程序。这样做的目的不是为了让大家去学习怎么编写程序,而是为了让大家一方面巩固第一课中的内容,更进一步熟悉VS2012,同时自己动手跟着我做,来开发一个小程序,亲身体验一下程序是如何编写出来的。

        下图即编写完成的计算器程序截图:

123










详细讲解请观看教学视频:百度网盘下载

程序源码下载:CSDN下载

==================华丽丽的分割线===========================

部分源码

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;

/*
 *艾格网络工作室 2015.4.13
 *专业编程培训,零基础入门,进阶提高
 *承接微信公众平台开发、运维
 *承接各类软件开发项目
 *详情咨询QQ863536379
 *email:aigenet@qq.com
 */
namespace APImsg
{
    public partial class Form1 : Form
    {
        /// <summary>
        /// 第一个操作数
        /// </summary>
        float firstNumf = 0;
        /// <summary>
        /// 第二个操作数
        /// </summary>
        float secondNumf = 0;
        /// <summary>
        /// 操作数缓存1
        /// </summary>
        string cache1 = string.Empty;
        /// <summary>
        /// 操作数缓存2
        /// </summary>
        string cache2 = string.Empty;
        /// <summary>
        /// 运算符标志位,true为第一个操作数,false为第二个操作数
        /// </summary>
        bool flag = true;
        /// <summary>
        /// 运算符种类
        /// </summary>
        string op = string.Empty;

        public Form1()
        {
            InitializeComponent();
        }

        /// <summary>
        /// 鼠标移入背景变色事件
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void label1_MouseEnter(object sender, EventArgs e)
        {
            ((Label)sender).BackColor = Color.Yellow;
        }

        /// <summary>
        /// 鼠标移出背景复原事件
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void label1_MouseLeave(object sender, EventArgs e)
        {
            ((Label)sender).BackColor = System.Drawing.SystemColors.ActiveCaption;
        }
        /// <summary>
        /// 屏幕输出点击数字
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void label1_Click(object sender, EventArgs e)
        {
            if (flag)
            {
                cache1 += ((Label)sender).Text;
                textBox1.Text = cache1;
            }
            else
            {
                cache2 += ((Label)sender).Text;
                textBox1.Text = cache1 + cache2;
            }
        }
        /// <summary>
        /// 记录第一个操作数
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void label12_Click(object sender, EventArgs e)
        {
            //记录运算种类
            op = ((Label)sender).Text;
            firstNumf = float.Parse(cache1);
            cache1 += ((Label)sender).Text;
            textBox1.Text =cache1 ;
            //记录标志位
            flag = false;
        }
        /// <summary>
        /// 计算运算结果
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void label15_Click(object sender, EventArgs e)
        {
            secondNumf = float.Parse(cache2);
            switch (op)
            { 
                case "+":
                    textBox1.Text = cache1 + cache2 + ((Label)sender).Text + (firstNumf + secondNumf).ToString();
                    break;
                case "-":
                    textBox1.Text = cache1 + cache2 + ((Label)sender).Text + (firstNumf - secondNumf).ToString();
                    break;
                case "*":
                    textBox1.Text = cache1 + cache2 + ((Label)sender).Text + (firstNumf *secondNumf).ToString();
                    break;
                case "/":
                    textBox1.Text = cache1 + cache2 + ((Label)sender).Text + (firstNumf / secondNumf).ToString();
                    break;
            }
        }

        /// <summary>
        /// 复位
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void label17_Click(object sender, EventArgs e)
        {
            //清空显示区域
            textBox1.Text = string.Empty;
            //运算符标志位复位
            flag = true;
            //复位操作数缓存
            cache1 = string.Empty;
            cache2 = string.Empty;
            //复位操作数值
            firstNumf = 0;
            secondNumf = 0;
        }
        /// <summary>
        /// 开根号运算
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void label18_Click(object sender, EventArgs e)
        {
            textBox1.Text = System.Math.Sqrt(double.Parse(cache1)).ToString();
        }
    }
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值