TUhjnbcbe - 2025/5/22 18:51:00
实战项目--用winform动手写一个“计算器”实战项目旨在交流学习,欢迎在评论区交流意见。简介:分享一个简单的软件项目---自己动手写一个“计算器”。先展示效果:项目开发环境:VisualStudiowinform开发开发语言:C#demo功能:Windows窗体程序实现计算器功能PS:其他版本的VS开发步骤基本一样首先,打开VisualSdudio,新建一个winform工程左上角:文件-新建-项目选择VisualC#的Windows窗体应用(.NETFramework),名称位置自己设定即可然后点击确定接着弹出的窗体设计界面就可以用来进行程序界面设计了:在左侧工具箱中,拖出需要的按钮,改变其大小和显示标签,如下图所示这里设定了0~9的数字按键,加减乘除的基本运算按键还有“=”号和清除键“C”,这里按照个人实际需求设计即可,此例只是示范。然后拖入一个TextBox控件,调整大小和整体布局,使得界面看起开相对规范:PS:TextBox的属性栏里面,应当将字体改大,以便显示,显示顺序应改为RightToLeft功能布局颜色等按照自己的需求做一下调整,界面就搞定了下面代码实现功能:表示最终结果,中间结果的值的变量在开头先定义清楚,然后后面在每个按键的触发事件中填入内容即可。感觉挺简单的算法,自己写的时候还是费了些脑经,多次修改测试后,圆满实现效果。至此项目介绍完毕,项目中的数学计算还是挺有意思的下面上源码:usingSystem;usingSystem.Collections.Generic;usingSystem.ComponentModel;usingSystem.Data;usingSystem.Drawing;usingSystem.Linq;usingSystem.Text;usingSystem.Threading.Tasks;usingSystem.Windows.Forms;namespacecalculator{publicpartialclassForm1:Form{publicForm1(){InitializeComponent();}doubleValue=0;//最终值doublevalue=0;//中间值int[]number=newint[10];//设定输入数据位数不超过10位intK=0;//位数intflag=0;//0:加1:减2:乘3:除privatevoidbutton0_Click(objectsender,EventArgse){value=0;//清空中间值number[K]=0;K++;//位数增加for(inti=0;iK;i++){value+=number*System.Math.Pow(10,K-i-1);//乘方:10的K次方}//Value=Value+value;textBox1.Text=value.ToString();//显示}privatevoidbutton1_Click(objectsender,EventArgse){value=0;//清空中间值number[K]=1;K++;//位数增加for(inti=0;iK;i++){value+=number*System.Math.Pow(10,K-i-1);//乘方:10的K次方}//Value=Value+value;textBox1.Text=value.ToString();//显示}privatevoidbutton2_Click(objectsender,EventArgse){value=0;//清空中间值number[K]=2;K++;//位数增加for(inti=0;iK;i++){value+=number*System.Math.Pow(10,K-i-1);//乘方:10的K次方}//Value=Value+value;textBox1.Text=value.ToString();//显示}privatevoidbutton3_Click(objectsender,EventArgse){value=0;//清空中间值number[K]=3;K++;//位数增加for(inti=0;iK;i++){value+=number*System.Math.Pow(10,K-i-1);//乘方:10的K次方}//Value=Value+value;textBox1.Text=value.ToString();//显示}privatevoidbutton4_Click(objectsender,EventArgse){value=0;//清空中间值number[K]=4;K++;//位数增加for(inti=0;iK;i++){value+=number*System.Math.Pow(10,K-i-1);//乘方:10的K次方}//Value=Value+value;textBox1.Text=value.ToString();//显示}privatevoidbutton5_Click(objectsender,EventArgse){value=0;//清空中间值number[K]=5;K++;//位数增加for(inti=0;iK;i++){value+=number*System.Math.Pow(10,K-i-1);//乘方:10的K次方}//Value=Value+value;textBox1.Text=value.ToString();//显示}privatevoidbutton6_Click(objectsender,EventArgse){value=0;//清空中间值number[K]=6;K++;//位数增加for(inti=0;iK;i++){value+=number*System.Math.Pow(10,K-i-1);//乘方:10的K次方}//Value=Value+value;textBox1.Text=value.ToString();//显示}privatevoidbutton7_Click(objectsender,EventArgse){value=0;//清空中间值number[K]=7;K++;//位数增加for(inti=0;iK;i++){value+=number*System.Math.Pow(10,K-i-1);//乘方:10的K次方}//Value=Value+value;textBox1.Text=value.ToString();//显示}privatevoidbutton8_Click(objectsender,EventArgse){value=0;//清空中间值number[K]=8;K++;//位数增加for(inti=0;iK;i++){value+=number*System.Math.Pow(10,K-i-1);//乘方:10的K次方}//Value=Value+value;textBox1.Text=value.ToString();//显示}privatevoidbutton9_Click(objectsender,EventArgse){value=0;//清空中间值number[K]=9;K++;//位数增加for(inti=0;iK;i++){value+=number*System.Math.Pow(10,K-i-1);//乘方:10的K次方}//Value=Value+value;textBox1.Text=value.ToString();//显示}//加privatevoidbutton10_Click(objectsender,EventArgse){//运算if(flag==0){Value=Value+value;}elseif(flag==1){Value=Value-value;}elseif(flag==2){Value=Value*value;}elseif(flag==3){Value=Value/value;}flag=0;//标记运算符textBox1.Text=Value.ToString();//显示value=0;K=0;}//减privatevoidbutton11_Click(objectsender,EventArgse){//运算if(flag==0){Value=Value+value;}elseif(flag==1){Value=Value-value;}elseif(flag==2){Value=Value*value;}elseif(flag==3){Value=Value/value;}flag=1;//标记运算符textBox1.Text=Value.ToString();//显示value=0;K=0;}//乘privatevoidbutton12_Click(objectsender,EventArgse){//运算if(flag==0){Value=Value+value;}elseif(flag==1){Value=Value-value;}elseif(flag==2){Value=Value*value;}elseif(flag==3){Value=Value/value;}flag=2;//标记运算符textBox1.Text=Value.ToString();//显示value=0;K=0;}//除privatevoidbutton13_Click(objectsender,EventArgse){//运算if(flag==0){Value=Value+value;}elseif(flag==1){Value=Value-value;}elseif(flag==2){Value=Value*value;}elseif(flag==3){Value=Value/value;}flag=3;//标记运算符textBox1.Text=Value.ToString();//显示value=0;K=0;}//清空privatevoidbutton14_Click(objectsender,EventArgse){Value=0;value=0;K=0;flag=0;textBox1.Text=0;}//结果显示privatevoidbutton15_Click(objectsender,EventArgse){//运算if(flag==0){Value=Value+value;}elseif(flag==1){Value=Value-value;}elseif(flag==2){Value=Value*value;}elseif(flag==3){Value=Value/value;}textBox1.Text=Value.ToString();//显示value=0;K=0;}}}