在刚刚接触c#的时候,就想做一个简单加减乘除计算器。这就是目标,可惜一直没有动手去做,今天特意把它简单做了。很简单,很简单,了却一个心愿了。

代码:

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 MyPictureDownloader
{
//http://blog.sina.com.cn/s/blog_60d576800100tf5z.html
//http://jingyan.baidu.com/article/380abd0a6b80701d90192cde.html
public partial class JiSuanQi : Form
{
public JiSuanQi()
{
InitializeComponent();
initButton();
} public delegate double Operater(double num1, double num2);
public void initButton()
{
var p = new Point(, );
Button[] listbtn = new Button[];
for (int i = ; i < ; i++)
{
listbtn[i] = new Button();
listbtn[i].Name = "btn" + (i + ).ToString();
listbtn[i].Text = (i+).ToString();
listbtn[i].SetBounds(p.X, p.Y, , );
listbtn[i].Click+= new System.EventHandler(ClickHandler);
this.Controls.Add(listbtn[i]);
p.X += ;
if (p.X >= this.Width - )
{
p.X =;
p.Y += ;
}
}
}
public void ClickHandler(Object sender, System.EventArgs e)
{
Button btn = (Button)sender;
string temp=txtnum.Text.ToString()+btn.Text;//这样解决了重复点击赋值问题
txtnum.Text = temp;
} private void btnzero_Click(object sender, EventArgs e)
{
string temp = txtnum.Text.ToString() + btnzero.Text;//这样解决了重复点击赋值问题
txtnum.Text = temp;
} public double jisuan(string caozuofu, Operater fanga)
{
double num2 = double.Parse(txtnum.Text);
double jieguo = ;
//switch(caozuofu){
// case"+":
// jieguo = fanga(tempnum, num2);
// break;
// case "-":
// jieguo = fanga(tempnum, num2);
// break;
// case "*":
// jieguo = fanga(tempnum, num2);
// break;
// case "/":
// jieguo = fanga(tempnum, num2);
// break;
//}
jieguo = fanga(tempnum, num2);
return jieguo;
} public double add(double num1, double num2)
{
return num1 + num2;
} public double jian(double num1, double num2)
{
return num1- num2;
} public double cheng(double num1, double num2)
{
return num1 * num2;
} public double chu(double num1, double num2)
{
double result = ;
if (num2!=)
{
result= num1 / num2;
}
return result;
}
public double tempnum = ;
public string caozuofu = "";
public event Operater fangfa;
private void btnresult_Click(object sender, EventArgs e)
{
txtnum.Text = jisuan(caozuofu, fangfa).ToString();
} private void btnadd_Click(object sender, EventArgs e)
{
tempnum = double.Parse(txtnum.Text);
caozuofu = btnadd.Text;
txtnum.Text = "";
fangfa = add;
} private void btnde_Click(object sender, EventArgs e)
{
tempnum = double.Parse(txtnum.Text);
caozuofu = btnde.Text;
txtnum.Text = "";
fangfa = jian;
} private void btncheng_Click(object sender, EventArgs e)
{
tempnum = double.Parse(txtnum.Text);
caozuofu = btncheng.Text;
txtnum.Text = "";
fangfa = cheng;
} private void btnchu_Click(object sender, EventArgs e)
{
tempnum = double.Parse(txtnum.Text);
caozuofu = btnchu.Text;
txtnum.Text = "";
fangfa = chu;
} private void btndian_Click(object sender, EventArgs e)
{
if (txtnum.Text.ToString()=="")
{
txtnum.Text = "";
}
string temp="";
if (txtnum.Text.ToString().IndexOf(".") > )//解决只能包含一个小数点
{
temp = txtnum.Text.ToString();
}
else
{
temp = txtnum.Text.ToString() + btndian.Text;//这样解决了重复点击赋值问题
}
txtnum.Text = temp;
}
}
}

初始界面:

运行后的界面:

几个数字按钮是动态生成的,这就是我想要做的计算器。

C#计算器代码的更多相关文章

  1. js加减乘除在线计算器代码

    js加减乘除在线计算器代码 在线演示本地下载

  2. 在ASP.NET里实现计算器代码的封装

    一.具体代码 Default2.aspx.cs public partial class Chapter1_Default2 : System.Web.UI.Page { protected void ...

  3. java代码----------计算器代码

    总结: 很多不完善—— package com.rue; import java.awt.BorderLayout; import java.awt.FlowLayout; import java.a ...

  4. 一段简单的手写Java计算器代码

    import java.awt.*;import java.awt.event.*;import javax.swing.*;import java.lang.*; public class Calc ...

  5. HTML网页之计算器代码

    计算器网页效果显示:点击这里! <script>  function show(){  var date = new Date(); //日期对象  var now = "&qu ...

  6. 计算器<代码>

    import re l_no = "-4.0*-4+((-1-8.0*2*-1)-(-9.456/1.57))/8+-8*7" true_tr = "-4.0*-4+(( ...

  7. PHP房贷计算器代码,等额本息,等额本金

    debx(); function debx() { $dkm = 240; //贷款月数,20年就是240个月 $dkTotal = 10000; //贷款总额 $dknl = 0.0515; //贷 ...

  8. Python使用re实现计算器

    re 正则表达式 计算器 海瑞博客-学习python之路•2016-12-01•Python• 59•0•A+ A- re是一门小型语言 元字符 .      通配符除了\n ^     以什么开始的 ...

  9. PHP图形计算器(计算三角形矩形周长面积)

    运用PHP面向对象的知识设计一个图形计算器,同时也运用到了抽象类知识,这个计算器可以计算三角形的周长和面积以及矩形的周长和面积.本图形计算器有4个页面:1.PHP图形计算器主页index.php;   ...

随机推荐

  1. nginx“虚拟目录”不支持php的解决办法

    这几天在配置Nginx,PHP用FastCGI,想装一个phpMyAdmin管理数据库,phpMyAdmin不想放在网站根目录 下,这样不容易和网站应用混在一起,这样phpMyAdmin的目录就放在别 ...

  2. 关于tag标签系统的实现

    实验室的项目,需要做对用户发布的主题进行打标签的功能,纠结甚久,实现思路如下: 一.数据库表的设计 1.tag表 create table qa_tag ( tag_id int primary ke ...

  3. Set

    package lis0924; //生成器导包 import java.util.HashSet; import java.util.Iterator; import java.util.Set; ...

  4. javascrpt 中的Ajax请求

    回顾下javascript中的Ajax请求,写一个小例子: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN& ...

  5. Java可读取操作系统的配置

    /** * Java获取操作系统的配置环境 * @throws Exception */ @Test public void testPro() throws Exception { Properti ...

  6. java类加载机制

    使用某个类是发生的事情 加载->链接(验证.准备.解析)->初始化->可以使用 加载:将class文件字节码内容加载到内存当中,并将这些静态数据转换成方法区中的运行时数据结构 在堆中 ...

  7. Mac 系统下cocos2dx 环境变量设置

    Mac 系统环境变量设置   vim ~/.bash_profile    export PATH=$PATH:/Users/wangchengcheng/Downloads/LearningSoft ...

  8. SSH整合简单实例

    1.配置struts.xml文件: <?xml version="1.0" encoding="UTF-8"?>  <!DOCTYPE str ...

  9. mysql怎么导入大文件的sql文件

    这个方法在windows上或者linux上都可以使用 多数人习惯使用phpmyadmin或者一些客户端比如workbench,navicat 但是最有效的是原生的php工具 命令都差不多 请在cmd的 ...

  10. Memcached 笔记与总结(8)Memcached 的普通哈希分布算法和一致性哈希分布算法命中率对比

    准备工作: ① 配置文件 config.php ② 封装 Memcached 类 hash.class.php,包含普通哈希算法(取模)和一致性哈希算法 ③ 初始化 Memcached 节点信息 in ...