3月8日 第一个winform程序(计算器)

初始界面

代码:

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 计算器
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private bool isok = true;      //用来判断是否刚刚点过运算符
        private string biaodashi;     //表达式
        private double sum = 0;      //记录运算的结果
        private string Preyunsuanfu;//记录上一个运算符

        private string btnow = "";//记录刚输入的数字

        #region
        //数字输入
        private void no0_Click(object sender, EventArgs e)
        {
            Button btn = (Button)sender;
            btnow = btn.Text;

            if (shuru.Text != "0")
            {
                if (isok)
                {
                    shuru.Text = btn.Text.ToString();
                    isok = false;
                }
                else
                {
                    shuru.Text += btn.Text.ToString();
                }
            }
            else
            {
                if (isok)
                {
                    shuru.Text = "";
                    shuru.Text = btn.Text;
                    isok = false;
                }
                else
                {
                    shuru.Text = "";
                    shuru.Text += btn.Text;
                }
            }
        }
        #endregion
        #region
        //运算符
        private void btjia_Click(object sender, EventArgs e)
        {
            Button btn = (Button)sender;
            string yunsuanfu = btn.Text;

            if (Preyunsuanfu == null)
            {
                biaodashi += shuru.Text;
                sum = double.Parse(shuru.Text);
            }
            else
            {
                if (!isok)
                {
                    if (Preyunsuanfu == "+")
                    {
                        sum += double.Parse(shuru.Text);
                    }
                    if (Preyunsuanfu == "-")
                    {
                        sum -= double.Parse(shuru.Text);
                    }
                    if (Preyunsuanfu == "*")
                    {
                        sum *= double.Parse(shuru.Text);
                    }
                    if (Preyunsuanfu == "/")
                    {
                        sum /= double.Parse(shuru.Text);
                    }
                    if (Preyunsuanfu == "%")
                    {
                        sum %= double.Parse(shuru.Text);
                    }
                    biaodashi = biaodashi + Preyunsuanfu + shuru.Text;
                    shuru.Text = sum.ToString();
                }
            }
            shuchu.Text = biaodashi + yunsuanfu;
            Preyunsuanfu = yunsuanfu;
            isok = true;
        }
        #endregion
        #region
        //退格
        private void tuige_Click(object sender, EventArgs e)
        {
           int geshu= shuru.Text.ToString().Length;
            string str = shuru.Text.ToString();
            if (geshu > 1)
            {
                str = str.Remove(geshu - 1, 1);
                shuru.Text = str;
            }
            else
            {
                shuru.Text = "0";
            }
        }
        #endregion
        #region
        //清空
        private void clear_Click(object sender, EventArgs e)
        {
            shuru.Text = "0";
            shuchu.Text = "";
            sum = 0;
            biaodashi = "";
            Preyunsuanfu = "";
        }
        #endregion
        #region
        //等于
        private void equal_Click(object sender, EventArgs e)
        {
            shuchu.Text = "";
            if (Preyunsuanfu == "+")
            {
                shuru.Text = (sum + double.Parse(btnow)).ToString();
            }
            if (Preyunsuanfu == "-")
            {
                shuru.Text = (sum - double.Parse(btnow)).ToString();
            }
            if (Preyunsuanfu == "*")
            {
                shuru.Text = (sum * double.Parse(btnow)).ToString();
            }
            if (Preyunsuanfu == "/")
            {
                shuru.Text = (sum / double.Parse(btnow)).ToString();
            }
            if (Preyunsuanfu == "%")
            {
                shuru.Text = (sum % double.Parse(btnow)).ToString();
            }
        }
        #endregion
        #region
        //小数点
        //private string dian = "";
        private void point_Click(object sender, EventArgs e)
        {
            Button btn = (Button)sender;
            string predian = btn.Text;

            shuru.Text += btn.Text;

        }
        #endregion
    }
}

  

时间: 2024-10-23 06:50:58

3月8日 第一个winform程序(计算器)的相关文章

老男孩教育每日一题-2017年5月4日-有一个oldboy.txt文件,把里面所有字母都转换成大写

老男孩教育每日一题-2017年5月4日-有一个oldboy.txt文件,把里面所有字母都转换成大写 文件内容如下: [[email protected] oldboy]# cat oldboy.txt  oldboy.blog.51cto.com www.oldboyedu.com 方法一:sed [[email protected] oldboy]# sed 's#[a-z]#\u&#g' oldboy.txt OLDBOY.BLOG.51CTO.COM WWW.OLDBOYEDU.COM 方

计算两日期间2月29日总数的Java程序

事先声明,本人仅仅是个计算机领域的新手,不久前开始学习Java.后来我接到了一份关于计算两日期间2月29日总数的编程作业,仓促之中我便写下了这个程序.由于之前可以说毫无编程经验,Java也仅仅是只学了一小部分.所以目前该程序尚未解决输入问题. 我解决这个问题的思路是: 编写一个方法(leapYear)用于判断某一年份是否为闰年: 编写另一个方法(dateExist)用于判断某一时期是否真实存在,在这方法中会引用到上个方法: 最后编写main方法,引用方法(dateExist)分别判断起始日期和终

2015年9月10日课程作业【程序包管理:rpm, yum】_JY1506402-19+liuhui880818

<Linux系统管理> (1)磁盘和文件系统管理: (2)RAID, LVM; btrfs; (3)程序包管理:rpm, yum(dnf) (4)Linux的网络管理; (5)进程和作业管理:htop, glances, tsar: (6)sed和awk: (7)Linux系统的开机启动流程: (8)内核基础知识,内核定制编译: (9)系统安装:kickstart, pxe 一.作业(练习)内容: 1.总结rpm和yum实现程序包的管理功能. 要求:作业要图文并茂 二.完成时间: 2015年9

20150721,微软7月21日发布一个计划外安全补丁

?? 大家好,我们是微软大中华区安全支持团队. 微软于北京时间2015年7月21日发布了一个计划外更新补丁.该补丁对于所有受支持版本的Windows 系统均为严重等级.补丁中修复了一个OpenType字体驱动中的安全漏洞.如果用户打开包含该字体的特制文件或者恶意网页,该漏洞可能会导致远程代码执行.该漏洞已经公开披露,但是微软尚未发现利用该漏洞的攻击. 公告标识 Microsoft Security Bulletin MS15-078 公告标题 微软字体驱动中的漏洞可能导致远程执行代码 摘要 该安

2017年6月15日 由一个freemarker出错引发的感想

今天想要实现一个功能,想要实现遍历多个checkbox的功能.想出一个解决方法用了30秒钟,将包含的键值put进map中,前台根据map[key]??判断是否具有该值,乍一看这个方法很好,可是实际上问题很大..我在不请求freemarker api的情况下乱用它的功能..很有可能出现不可预知的错误...果然,.出错了....再百度一看..直接用 seq_contains 就可以了..可这么一些还是不对.....冥思苦(ˇ?ˇ) 想-,,原来 我后台 array 是string 类型的..而seq

9月17日 设计一个计算器

// //  ViewController.m //  计算器 // //  Created by apple on 14-9-17. //  Copyright (c) 2014年 apple. All rights reserved. // #import "ViewController.h" @interface ViewController () { NSString *op1,*op2; char op; } @property (weak, nonatomic) IBOut

(Java) 2014年1月1日减一个月涉及时间与字符的转换

1 import java.text.ParseException; 2 import java.text.SimpleDateFormat; 3 import java.util.Calendar; 4 import java.util.Date; 5 6 7 public class TestMinusOneMonth { 8 9 public static void main(String[] args) { 10 String string = "2014-01-01"; 11

12月16日 增加一个购物车内product数量的功能, 自定义method,在helper中定义,计算代码Refactor到Model中。

仿照Rails实战:购物网站 教材:5-6 step5:计算总价,做出在nav上显示购物车内product的数量. 遇到的?: 1. <% sum = 0 %> <% current_cart.cart_items each do |cart_item| %> <% if cart_item.product.price.present? %> <% sum = sum + cart_item.quantity * cart_item.product.price %

南家三姐妹 某年5月星期二和星期五各出现了4次,这个月5日是星期几 程序解法 多元组使用

using Microsoft.CSharp; using System; using System.CodeDom.Compiler; using System.Collections.Generic; using System.Linq; using System.Reflection; using System.Text; using System.Threading.Tasks; namespace ConsoleApplication2 { class Program { static