C#-Windows计算器
文章目录
- 系统功能描述
- 系统功能分析及实现
- (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计算器相关推荐
- windows计算器
using System; using System.Drawing; using System.Windows; using System.Windows.Forms; using System.C ...
- GitHub日收7000星,Windows计算器项目开源即爆红!
说起此番微软开源 Windows 计算器,有道是"春风得意马蹄疾,一日'摘星' 7000+"-- 整理 | 仲培艺 来源 | CSDN(ID:CSDNnews) 微软又来给自己拥抱 ...
- 重磅!GitHub 日收 7000 星, Windows 计算器项目开源即爆红!
机器之心编译 开源计算器意味着任何人都可以为改善这一 app 贡献代码,但微软会在实现新的功能原型.用户界面变动之前对它们进行评估或者审核代码. 开源地址: https://github.com/Mi ...
- 程序员计算器_GitHub 日收 7000 星,Windows 计算器项目开源即爆红!
说起此番微软开源 Windows 计算器,有道是"春风得意马蹄疾,一日'摘星' 7000+"-- 微软又来给自己拥抱开源的决心送"证明素材"了! 昨日,微软官宣 ...
- 开源大法好,Windows 计算器又添两项新功能
根据微软负责 Notepad 和 Windows 计算器的高级项目经理 Dave Grochocki 透露的消息,Windows 计算器目前正在开发两项开发者呼声很高的新特性: 始终显示在其它应用之上 ...
- 微软这次开源的是 Windows 计算器
微软宣布在 MIT 许可下开源了 Windows 计算器(Windows Calculator). Windows Calculator 是一个用 C++ 编写的现代 Windows 应用,其提供了标 ...
- 苹果调整App Store政策;国内首个5G+8K超高清国产化白皮书发布;Windows计算器移植到到 Linux|极客头条
整理 | 郑丽媛 头图 | CSDN 下载自东方 IC 「极客头条」-- 技术人员的新闻圈! CSDN 的读者朋友们早上好哇,「极客头条」来啦,快来看今天都有哪些值得我们技术人关注的重要新闻吧. 国内 ...
- GitHub 日收 7000 星,Windows 计算器项目开源即爆红!
说起此番微软开源 Windows 计算器,有道是"春风得意马蹄疾,一日'摘星' 7000+"-- 微软又来给自己拥抱开源的决心送"证明素材"了! 昨日,微软官宣 ...
- 重新认识Windows计算器Calc(MatLab计算替代品)——你所不知道的细节
笔者:IBMInfo78@126.com Windows 计算器Calc(Windows 7版本)是一个常用的工具,也是一款非常专业.优秀的基础计算程序.它有四种计算场景,分别为:标准型.科学型.程 ...
- 对数计算的实现方式(在windows计算器、OneNote、Python和Java中)
1.在windows计算器中: 利用换底公式实现: 2.在OneNote中: 开启"自动计算数学表达式" 找到:"选项"->"高级"- ...
最新文章
- 对quake3源代码的学习与研究初步的计划
- sun m5000 snapshot
- php指定长度 分割整形,php指定长度分割字符串str_split函数用法示例
- 20211005 Hermite矩阵及几个性质
- loadrunner基础知识问答(转)
- 数字系统设计学习之VHDL输入设计
- minus sql oracle,在T-SQL中实现Oracle的MINUS集合运算符
- ups容量计算和配置方法_UPS电源选择与电池容量计算
- 移动web开发之flex布局笔记
- CMD命令备份驱动和安装驱动
- linux如何查看隐藏进程中勒索病毒,.FileFuck勒索病毒删除+数据恢复(HiddenTear变体)...
- 手机抓包软件:charles安装及教程
- 关于CSS Reset 那些事(一)之 历史演变与Normalize.css
- 宣化上人:诸病从何来?
- 网站源码、模板分享(前端)
- 5. C++ 抽象类
- 蓝桥杯矩形切割python求解
- 来免费领养blog绿豆蛙宠物吧,和QQ宠物差不多
- Java编程内存分析简要
- PHP编辑器常用快捷键(PhpStorm、Sublime_text)