c#制作计算器全过程
前言:
网上看的计算器制作只有代码,没有为全过程下面贴图,所以我在下面主要是贴图,让大家零基础制作计算器。
我的环境是visual studio 2010,其他版本例如2008,2012 都可以
1.启动vs2010,新建->项目,得到下图:
2. 选择visual c# ->windows->Windows 窗体应用程序
3.选择项目路径(不一定跟我的一样),名称尽量能让自己和别人明白。

4.窗体Form1 就是我们即将要编辑的位置

5.目前只用到button,textbox 控件,所以选择工具箱里的Button并拖到Form1编辑框里,TextBox也一样。

6.按钮布局如下图,顶上是TextBox控件,下面是20个button控件,还有一个链接控件,计划实现加减乘除,平方,开方,log, ln的功能

7.如下图,单击其中一个button按钮,在右下方的属性里找到text并改名,其他的属性暂时不要动,以后可以慢慢改。
8.修改后的Form1编辑框如下图左边所示。

下面就是代码的编写了:
9.双击Form1 窗体后,进入Form1.cs*界面(说白了是刚才窗体的代码编辑框,也是Form1窗体功能实现的界面)
10.下图是初始程序,我们要做的是往里面加代码。

完整代码:
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 jisuangqi
{
public partial class Form1 : Form
{
double a = 0;
double b = 0;
bool c = false ;
string d;
public Form1()
{
InitializeComponent();
}
private void Form1_Load(object sender, EventArgs e)
{
}
private void button9_Click(object sender, EventArgs e) // button9_Click是对应我的1键,如果单纯复制代码,但是跟我的窗体布局不同,一样会报错
{ // 算法没问题,只要单击相应的键,进入填入相应的算法即可
if ( c ==true )
{
textBox1 .Text ="";
c=false ;
}
textBox1.Text+="1";
}
private void button10_Click(object sender, EventArgs e) // button10_Click是对应我的2键
{
if(c==true )
{
textBox1.Text="";
c=false ;
}
textBox1.Text+="2";
}
private void button11_Click(object sender, EventArgs e) //对应我的3键
{
if (c==true )
{
textBox1 .Text ="";
c=false ;
}
textBox1 .Text +="3";
}
private void button5_Click(object sender, EventArgs e) //对应我的4键
{
if(c==true )
{
textBox1.Text="";
c=false ;
}
textBox1.Text+="4";
}
private void button6_Click(object sender, EventArgs e) //对应我的5键
{
if(c==true )
{
textBox1.Text="";
c=false ;
}
textBox1.Text+="5";
}
private void button7_Click(object sender, EventArgs e) //对应我的6键
{
if(c==true )
{
textBox1.Text="";
c=false ;
}
textBox1.Text+="6";
}
private void button1_Click(object sender, EventArgs e) //对应我的7键
{
if(c==true )
{
textBox1.Text="";
c=false ;
}
textBox1.Text+="7";
}
private void button2_Click(object sender, EventArgs e) //对应我的8键
{
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 button13_Click(object sender, EventArgs e) //对应我的键,增加了除数不能为0的判断
{
if(c==true )
{
textBox1.Text="";
c=false ;
}
textBox1.Text += "0";
if (d == "/")
{
textBox1.Clear();
MessageBox.Show("除数不能为零", "错误提示", MessageBoxButtons.OK, MessageBoxIcon.Warning); }
}
private void button4_Click(object sender, EventArgs e) //对应我的+键
{
c = true;
b = double.Parse(textBox1.Text);
d = "+";
}
private void button8_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 button16_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 = "x2";
}
private void button18_Click(object sender, EventArgs e) //对应我的开方键
{
c = true;
b = double.Parse(textBox1.Text);
d = "sqrt";
}
private void button19_Click(object sender, EventArgs e) //对应我的log键
{
c = true;
b = double.Parse(textBox1.Text);
d = "log";
}
private void button20_Click(object sender, EventArgs e) //对应我的ln键
{
c = true;
b = double.Parse(textBox1.Text);
d = "ln";
}
private void button15_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 button14_Click(object sender, EventArgs e) //对应我的c键,实现了清零的功能
{
textBox1.Text = "";
}
/* private void linkLabel1_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e)
{
System.Diagnostics.Process.Start("http://home.cnblogs.com/u/linshuangxi/");
}
*/
//我注释掉是因为这是一个连接到我的博客的地址,首先需要在窗体拖进来一个LinkLabel控件。
// 然后把注释去掉就可用了
}
}
11.点击运行界面,就会出来窗体,偷个懒,我把基本功能效果图和添加属性后的图都放在一起了,如下图:
后言:
1.尽量不要复制代码,自己动手,丰衣足食
2.第一次设计的话,防止出错,保持窗体布局跟我的一样,这样复制代码就不会有问题
3. 刚刚讲到按钮的属性设计,先把基本功能实现,然后可以在属性里设计文字大小,颜色,背景等
属性设计后的效果图:

c#制作计算器全过程的更多相关文章
- Wxpython零基础制作计算器
本文关于Wxpython零基础利用python3.6在pycharm下制作计算器,文章末尾有免费源代码供下载 以后同步更新到博客园和这个网站,www.empirefree.top, 这个网站备案号没有 ...
- NodeJS制作爬虫全过程
这篇文章主要介绍了NodeJS制作爬虫的全过程,包括项目建立,目标网站分析.使用superagent获取源数据.使用cheerio解析.使用eventproxy来并发抓取每个主题的内容等方面,有需要的 ...
- 制作计算器的代码(C#)
using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; usin ...
- 用简单的JS代码制作计算器
代码+注释一共不到200行,是练习交流的必备良药 主界面如下: 操作示意图: 以下是代码部分 HTML: <div> <table class="window"& ...
- JS制作计算器(键盘版)
p.p1 { margin: 0.0px 0.0px 0.0px 0.0px; font: 31.0px Consolas; color: #2b7ec3 } p.p2 { margin: 0.0px ...
- 利用JavaScript制作计算器
<html> <head> <meta charset="utf-8"> <title>无标题文档</title> &l ...
- openssl制作证书全过程 + 部分修改
一:生成CA证书 目前不使用第三方权威机构的CA来认证,自己充当CA的角色. 先决条件:从openssl官网下载www.openssl.org 安装open ...
- 用js制作一个计算器
使用js制作计算器 <!doctype html> <html lang="en"> <head> <meta charset=" ...
- JS作计算器
JavaScript制作计算器 <!DOCTYPE html> <html lang="en"> <head> <meta charset ...
随机推荐
- Winform 窗体单例
有窗体Form1和窗体Form2,单击Form1上按钮,只弹出一个Form2. Form2里自定义一个方法,里面判断是否弹出Form2,没有时弹出Form2. public static Form2 ...
- Java中的自增问题(i=i++)
也许我这是在较真, 但是我们确实有时候就不小心就错写为这种情况了. 看如下代码: public class Test{ public static void main(String[] args){ ...
- spark优化
spark.shuffle.consolidateFiles=false 默认是false,shuffle阶段不进行文件的合并,1000个map和1000个reduce将产生1000 000个文件. ...
- LIKE模糊查询的通配符
LIKE模糊查询的通配符 通配符 说明 示例 % 包含零个或多个字符的任意字符串. WHERE title LIKE '%computer%' 将查找在书名中任意位置包含单词 "comput ...
- sql 2012 操作EXCEL 2013
确认是否有Microsoft.ACE.OLEDB.12.0数据接口 --进行配置: EXEC sp_configure 'show advanced options', 1 GO RECONFIGUR ...
- 提高你css技能的css开发技巧(转载)
一.resize实现图片对比 resize的语法如下: resize:none | both | horizontal | vertical 案例效果如下图 (鼠标移到左下角白色区域,往右侧拖动,实现 ...
- machine leanring 笔记 vectorization
the summation of the product of two terms can be expressed as the product of two vectors ps. surf ...
- 贼溜的更新Android-SDK的方法(亲测很好用)
启动 Android SDK Manager ,打开主界面,依次选择「Tools」.「Options...」,弹出『Android SDK Manager - Settings』窗口:在『Androi ...
- Angularjs学习笔记(四)----与后端服务器通信
一.使用$http进行XHR和JSONP请求 1.1 XHR请求 GET:$http.get(url,config) POST:$http.post(url,data,config) PUT:$htt ...
- ajax实现jsonp跨域接口
HTML页面代码: <script type="text/javascript"> function UrlSearch(){ var name,value; var ...