在刚刚接触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. [转] 擎天哥as3教程系列第二回——性能优化

    所谓性能优化主要是让游戏loading和运行的时候不卡. 一  优化fla导出的swf的体积? 1,  在flash中,舞台上的元件最多,生成的swf越大,库里面有连接名的元件越多,swf越大.当舞台 ...

  2. 几何不能具有Z值

    ArcEngine 复制要素Geometry时,产生 几何不能具有Z值 的异常 解决方法:http://forums.esri.com/Thread.asp?c=159&f=1707& ...

  3. html中a标签做容器的问题

    今天试验了一下a标签当作容器的问题,若a包含的容器中没有a标签的话,a标签是可以被当作成容器使用的,在谷歌浏览器这种浏览器中是可行的,但是在低版本的IE中会有bug出现,就是浏览器在解析的时候会把a标 ...

  4. webapp 侧边导航效果

    @media (max-width: 767px) .main-sidebar, .left-side { -webkit-transform: translate(-230px, 0); -ms-t ...

  5. 注入语句详解(get注入,cookie注入,搜索型注入等)

    注意:对于普通的get注入,如果是字符型,前加'   后加 and ''=' 拆半法 ###################################### and exists (select ...

  6. iframe父子页面之间相互调用元素和函数

    <!doctype html> <html> <head> <meta http-equiv="Content-Type" content ...

  7. java 中的2个接口 Comparable和Comparator

    像Integer.String这些类型的数据都是已经实现Comparable接口的,所以对这些类型可以直接通过Arrays.sort(...)和Collections.sort(...)方法进行排序. ...

  8. Android课程---Activity的跳转与传值(转自网上)

    Activity跳转与传值,主要是通过Intent类来连接多个Activity,以及传递数据.   Intent是Android一个很重要的类.Intent直译是“意图”,什么是意图呢?比如你想从这个 ...

  9. 【7集iCore3基础视频】7-2 iCore3原理图介绍

    iCore3原理图介绍: 高清源视频:http://pan.baidu.com/s/1hsPkifM 密码:ei8ciCore3 购买链接:https://item.taobao.com/item.h ...

  10. JS弹出遮罩层

    // create div var mask=document.createElement("div"); mask.id="mask"; mask.style ...