文章目录

  • 系统功能描述
  • 系统功能分析及实现
    • (1)主窗体Form1.cs文件中的代码
    • (2)主窗体Form2.cs文件中的代码
    • (3)Program.cs代码

系统功能描述

Windows计算器是利用C#程序设计编写一个简易计算器程序,可以进行简单的加、减、乘、除运算,还可以实现对三角函数,对数、指数等高级运算的功能。
整个系统的功能结构图如图所示:

根据功能结构图,用户可以在窗体应用程序中,添加计算器窗体,建立windows应用程序的框架。因此,通过添加两个窗体控件Form1和Form2,分别用来表示科学计算器和普通计算器。然后用户添加Button控件,建立程序的主要界面。最后在每个按钮的代码段中,分别添加事件触发的处理代码。控件textBox1,显示输入的信息和显示处理后的结果。

系统功能分析及实现

控件表示用户和程序之间的图形化连接。控件可以提供或处理数据、接受用户输入、对事件做出响应或执行连接用户和应用程序的其他功能。窗体中的控件有很多,工具箱中的Windows窗体里包含了所有的windows标准控件。通过在属性窗口改变控件的属性可以改变控件的外观和特性。本项目需要用到以下控件:
(1) 按钮控件(Button):在Form1窗体中,添加30个Button控件,其中有10个数字按钮,16个运算按钮,一个用于计算的等号按钮,2个用于清空的按钮。在Form2窗体中,添加17个Button控件,其中有10个数字按钮,4个运算按钮,一个用于计算的等号按钮,一个用于清空的按钮。
(2) 文本框控件(TextBox):Form1和Form2分别添加一个TextBox控件,用于显示计算结果。
(3) 菜单栏控件(MenuStrip):在Form1和Form2中分别添加MenuStrip控件,并修改该控件中的ToolStripMenuItem菜单项的Text属性为机型转换。该控件可以实现两个窗体之间的相互转换。

(1)主窗体Form1.cs文件中的代码

using System;
using System.Windows.Forms;
namespace Windows计算器
{public partial class Form1 : Form{private string Op;private double Op1;private double Op2;private double result;public Form1(){InitializeComponent();}private void Form1_Load(object sender, EventArgs e){}//数字键1private void BtNumber1_Click(object sender, EventArgs e){textBox1.Text = textBox1.Text + "1";Op1 = System.Convert.ToDouble(textBox1.Text);            }//数字键2private void BtNumber2_Click(object sender, EventArgs e){textBox1.Text = textBox1.Text + "2";Op1 = System.Convert.ToDouble(textBox1.Text);    }//数字键3private void BtNumber3_Click(object sender, EventArgs e){textBox1.Text = textBox1.Text + "3";Op1 = System.Convert.ToDouble(textBox1.Text);   }//数字键4private void BtNumber4_Click(object sender, EventArgs e){textBox1.Text = textBox1.Text + "4";Op1 = System.Convert.ToDouble(textBox1.Text);    }//数字键5private void BtNumber5_Click(object sender, EventArgs e){textBox1.Text = textBox1.Text + "5";Op1 = System.Convert.ToDouble(textBox1.Text);    }//数字键6private void BtNumber6_Click(object sender, EventArgs e){textBox1.Text = textBox1.Text + "6";Op1 = System.Convert.ToDouble(textBox1.Text);   }//数字键7private void BtNumber7_Click(object sender, EventArgs e){textBox1.Text = textBox1.Text + "7";Op1 = System.Convert.ToDouble(textBox1.Text);   }//数字键8private void BtNumber8_Click(object sender, EventArgs e){textBox1.Text = textBox1.Text + "8";Op1 = System.Convert.ToDouble(textBox1.Text);    }//数字键9private void BtNumber9_Click(object sender, EventArgs e){textBox1.Text = textBox1.Text + "9";Op1 = System.Convert.ToDouble(textBox1.Text);    }//数字键0private void BtNumber0_Click(object sender, EventArgs e){textBox1.Text = textBox1.Text + "0";Op1 = System.Convert.ToDouble(textBox1.Text);   }//加功能private void BtAdd_Click(object sender, EventArgs e){Op = "+";Op2 = Op1;textBox1.Text = "";}//减功能private void BtSubtract_Click(object sender, EventArgs e){Op = "-";Op2 = Op1;textBox1.Text = "";}//乘功能private void BtMult_Click(object sender, EventArgs e){Op = "*";Op2 = Op1;textBox1.Text = "";}//除功能private void BtDivision_Click(object sender, EventArgs e){Op = "/";Op2 = Op1;textBox1.Text = "";}  //%private void BtRemedial_Click(object sender, EventArgs e){Op = "%";Op2 = Op1;textBox1.Text = "";}//Del功能private void BtDel_Click(object sender, EventArgs e){if (textBox1.Text.Length >= 1){textBox1.Text = textBox1.Text.Substring(0, textBox1.Text.Length - 1);}if (textBox1.Text.Length == 0){ textBox1.Text = "";}             }//小数点功能private void BtComma_Click(object sender, EventArgs e){if (textBox1.Text.IndexOf(".") < 0)textBox1.Text += ((Button)sender).Text;else{}}//等于功能private void BtDebgyu_Click(object sender, EventArgs e){switch (Op){case "+":result = Op2 + Op1;break;case "-":result = Op2 - Op1;break;case "*":result = Op2 * Op1;break;case "/":if (Op2 == 0){Console.WriteLine("错误,被除数不能为0!");}else{result = Op2 / Op1;}break;case "%":result = Op2 % Op1;break;case "^":int m; double n;m = 1; n = Op2;while (m + 1 <= Op1){n = n * Op2;m++;}result = n;break;}textBox1.Text = System.Convert.ToString(result);}//sin功能private void Btsin_Click(object sender, EventArgs e){Convert.ToDouble(Op1);textBox1.Text = System.Convert.ToString(Math.Sin(Op1 * Math.PI / 180));}//con功能private void Btcos_Click(object sender, EventArgs e){Convert.ToDouble(Op1);textBox1.Text = System.Convert.ToString(Math.Cos(Op1 * Math.PI / 180));}//tan功能private void Bttan_Click(object sender, EventArgs e){Convert.ToDouble(Op1);textBox1.Text = System.Convert.ToString(Math.Tan(Op1 * Math.PI / 180));}//阶乘功能private void BtFactorial_Click(object sender, EventArgs e){int i, j;i = 1; j = 1;while (i <= Op1){j *= i;i++;}textBox1.Text = System.Convert.ToString(j);}//平方功能private void BtSquare_Click(object sender, EventArgs e){textBox1.Text = System.Convert.ToString(Op1 * Op1);}//立方功能private void BtCube_Click(object sender, EventArgs e){textBox1.Text = System.Convert.ToString(Op1 * Op1 * Op1);}//πprivate void BtPI_Click(object sender, EventArgs e){textBox1.Text = textBox1.Text + Math.PI;Op1 = System.Convert.ToDouble(textBox1.Text);}//清屏功能private void BtClear_Click(object sender, EventArgs e){textBox1.Text = "";Op = "";Op1 = 0;Op2 = 0;result = 0;}//幂运算private void BtPower_Click(object sender, EventArgs e){Op = "^";Op2 = Op1;textBox1.Text = "";}//10^xprivate void BtIndex_Click(object sender, EventArgs e){int a, b;a = 1; b = 1;while (a <= Op1){b *= 10;a++;}textBox1.Text = System.Convert.ToString(b);}//Logprivate void BtLog_Click(object sender, EventArgs e){textBox1.Text = System.Convert.ToString(Math.Log10(Op1));}//lnprivate void BtLn_Click(object sender, EventArgs e){textBox1.Text = System.Convert.ToString(Math.Log(Op1));}private void 机型转换ToolStripMenuItem_Click(object sender, EventArgs e){Form2 stu = new Form2();this.Hide();stu.ShowDialog();this.Close();}}
}

(2)主窗体Form2.cs文件中的代码

using System;
using System.Windows.Forms;
namespace Windows计算器
{public partial class Form2 : Form{private string Op;private double Op1;private double Op2;private double result;public Form2(){InitializeComponent();}private void Form2_Load(object sender, EventArgs e){}private void BtNumber1_Click(object sender, EventArgs e){textBox1.Text = textBox1.Text + "1";Op1 = System.Convert.ToDouble(textBox1.Text);}private void BtNumber2_Click(object sender, EventArgs e){textBox1.Text = textBox1.Text + "2";Op1 = System.Convert.ToDouble(textBox1.Text);}private void BtNumber3_Click(object sender, EventArgs e){textBox1.Text = textBox1.Text + "3";Op1 = System.Convert.ToDouble(textBox1.Text);}private void BtNumber4_Click(object sender, EventArgs e){textBox1.Text = textBox1.Text + "4";Op1 = System.Convert.ToDouble(textBox1.Text);}private void BtNumber5_Click(object sender, EventArgs e){textBox1.Text = textBox1.Text + "5";Op1 = System.Convert.ToDouble(textBox1.Text);}private void BtNumber6_Click(object sender, EventArgs e){textBox1.Text = textBox1.Text + "6";Op1 = System.Convert.ToDouble(textBox1.Text);}private void BtNumber7_Click(object sender, EventArgs e){textBox1.Text = textBox1.Text + "7";Op1 = System.Convert.ToDouble(textBox1.Text);}private void BtNumber8_Click(object sender, EventArgs e){textBox1.Text = textBox1.Text + "8";Op1 = System.Convert.ToDouble(textBox1.Text);}private void BtNumber9_Click(object sender, EventArgs e){textBox1.Text = textBox1.Text + "9";Op1 = System.Convert.ToDouble(textBox1.Text);}private void BtNumber0_Click(object sender, EventArgs e){textBox1.Text = textBox1.Text + "0";Op1 = System.Convert.ToDouble(textBox1.Text);}private void BtComma_Click(object sender, EventArgs e){if (textBox1.Text.IndexOf(".") < 0)textBox1.Text += ((Button)sender).Text;else{}}private void BtDebgyu_Click(object sender, EventArgs e){switch (Op){case "+":result = Op2 + Op1;break;case "-":result = Op2 - Op1;break;case "*":result = Op2 * Op1;break;case "/":result = Op2 / Op1;break;               }textBox1.Text = System.Convert.ToString(result);}private void BtAdd_Click(object sender, EventArgs e){Op = "+";Op2 = Op1;textBox1.Text = "";}private void BtSubtract_Click(object sender, EventArgs e){Op = "-";Op2 = Op1;textBox1.Text = "";}private void BtMult_Click(object sender, EventArgs e){Op = "*";Op2 = Op1;textBox1.Text = "";}private void BtDivision_Click(object sender, EventArgs e){Op = "/";Op2 = Op1;textBox1.Text = "";}private void BtClear_Click(object sender, EventArgs e){textBox1.Text = "";Op = "";Op1 = 0;Op2 = 0;result = 0;}private void 机型转换ToolStripMenuItem_Click(object sender, EventArgs e){Form1 stu = new Form1();this.Hide();stu.ShowDialog();this.Close();}}
}

(3)Program.cs代码

using System;
using System.Windows.Forms;
namespace Windows计算器
{static class Program{/// <summary>/// 应用程序的主入口点。/// </summary>[STAThread]static void Main(){Application.EnableVisualStyles();Application.SetCompatibleTextRenderingDefault(false);Application.Run(new Form1());}}
}

C#-Windows计算器相关推荐

  1. windows计算器

    using System; using System.Drawing; using System.Windows; using System.Windows.Forms; using System.C ...

  2. GitHub日收7000星,Windows计算器项目开源即爆红!

    说起此番微软开源 Windows 计算器,有道是"春风得意马蹄疾,一日'摘星' 7000+"-- 整理 | 仲培艺 来源 | CSDN(ID:CSDNnews) 微软又来给自己拥抱 ...

  3. 重磅!GitHub 日收 7000 星, Windows 计算器项目开源即爆红!

    机器之心编译 开源计算器意味着任何人都可以为改善这一 app 贡献代码,但微软会在实现新的功能原型.用户界面变动之前对它们进行评估或者审核代码. 开源地址: https://github.com/Mi ...

  4. 程序员计算器_GitHub 日收 7000 星,Windows 计算器项目开源即爆红!

    说起此番微软开源 Windows 计算器,有道是"春风得意马蹄疾,一日'摘星' 7000+"-- 微软又来给自己拥抱开源的决心送"证明素材"了! 昨日,微软官宣 ...

  5. 开源大法好,Windows 计算器又添两项新功能

    根据微软负责 Notepad 和 Windows 计算器的高级项目经理 Dave Grochocki 透露的消息,Windows 计算器目前正在开发两项开发者呼声很高的新特性: 始终显示在其它应用之上 ...

  6. 微软这次开源的是 Windows 计算器

    微软宣布在 MIT 许可下开源了 Windows 计算器(Windows Calculator). Windows Calculator 是一个用 C++ 编写的现代 Windows 应用,其提供了标 ...

  7. 苹果调整App Store政策;国内首个5G+8K超高清国产化白皮书发布;Windows计算器移植到到 Linux|极客头条

    整理 | 郑丽媛 头图 | CSDN 下载自东方 IC 「极客头条」-- 技术人员的新闻圈! CSDN 的读者朋友们早上好哇,「极客头条」来啦,快来看今天都有哪些值得我们技术人关注的重要新闻吧. 国内 ...

  8. GitHub 日收 7000 星,Windows 计算器项目开源即爆红!

    说起此番微软开源 Windows 计算器,有道是"春风得意马蹄疾,一日'摘星' 7000+"-- 微软又来给自己拥抱开源的决心送"证明素材"了! 昨日,微软官宣 ...

  9. 重新认识Windows计算器Calc(MatLab计算替代品)——你所不知道的细节

     笔者:IBMInfo78@126.com Windows 计算器Calc(Windows 7版本)是一个常用的工具,也是一款非常专业.优秀的基础计算程序.它有四种计算场景,分别为:标准型.科学型.程 ...

  10. 对数计算的实现方式(在windows计算器、OneNote、Python和Java中)

    1.在windows计算器中: 利用换底公式实现: 2.在OneNote中: 开启"自动计算数学表达式" 找到:"选项"->"高级"- ...

最新文章

  1. 对quake3源代码的学习与研究初步的计划
  2. sun m5000 snapshot
  3. php指定长度 分割整形,php指定长度分割字符串str_split函数用法示例
  4. 20211005 Hermite矩阵及几个性质
  5. loadrunner基础知识问答(转)
  6. 数字系统设计学习之VHDL输入设计
  7. minus sql oracle,在T-SQL中实现Oracle的MINUS集合运算符
  8. ups容量计算和配置方法_UPS电源选择与电池容量计算
  9. 移动web开发之flex布局笔记
  10. CMD命令备份驱动和安装驱动
  11. linux如何查看隐藏进程中勒索病毒,.FileFuck勒索病毒删除+数据恢复(HiddenTear变体)...
  12. 手机抓包软件:charles安装及教程
  13. 关于CSS Reset 那些事(一)之 历史演变与Normalize.css
  14. 宣化上人:诸病从何来?
  15. 网站源码、模板分享(前端)
  16. 5. C++ 抽象类
  17. 蓝桥杯矩形切割python求解
  18. 来免费领养blog绿豆蛙宠物吧,和QQ宠物差不多
  19. Java编程内存分析简要
  20. PHP编辑器常用快捷键(PhpStorm、Sublime_text)

热门文章

  1. 毕设全记录——探索 JavaBDD
  2. 笔记本电脑开不了机怎么重装系统?小熊U盘重装win7系统教程
  3. 宿舍管理系统简单的增删改查
  4. python将linux时间戳转换,Unix时间戳转换(python)
  5. 求教origin拟合蠕变柔量(burgers模型)。
  6. matlab使用parpool加速蒙特卡洛仿真
  7. 判断访问浏览器的类型
  8. PHP+MySQL民宿酒店管理系统源码 财务管理 设备管理 报表中心等
  9. vue实现点击图片放大显示功能
  10. 偏见:人工智能辅助决策的隐患