700字范文,内容丰富有趣,生活中的好帮手!
700字范文 > C# Windows窗体应用程序设计综合实例------简易计算器的实现

C# Windows窗体应用程序设计综合实例------简易计算器的实现

时间:2020-01-30 22:13:47

相关推荐

C# Windows窗体应用程序设计综合实例------简易计算器的实现

简易计算器的实现(C#)

欢迎观看本期的博文,本期博文的目的是做一个简单的计算器,我将从布局分析、整体布局、代码实现等几个方面进行阐述并与大家交流。(文末有源代码)

布局分析

整体布局

1.打开vs,创建一个新的Windows form项目。

2.按照布局分析,从工具箱拖动相应控件。可以先将from的大小调整一下,所写代码中的size为624,568.可以根据自己的情况进行界面大小设置。

3.给每个控件更改text属性。按照布局分析的结果来看,需要2个textbottom和14个bottom控件。分别按照布局分析命名。

4.整体布局的效果如下:

总结:可以根据自己的习惯来进行布局和命名,在修改name属性时应做到见名知义。例如加法按钮的name属性可以改bottom/sum。

添加代码

在本次综合实例中,包括加减乘除的实现、输入输出、小数点、等于、清空、回退一个的代码。下面就以几个比较重要部分的代码讲具体的实现过程吧。

加减乘除的实现:

一共四种运算,在用户随意输入数据并进行随意运算时,能准确地计算结果。所以整体就会有两种选择,一种是if-else嵌套或者用switch-case语句。在这里,为了方便编写且形成容易看出的逻辑关系,我们采用switch-case来写。

(此处不代表真正的代码,仅做为示例)

switch(a){case'+':------------case'-':------------case‘*’:------------case‘/’:-----------}

然而考虑到在实际的应用中出现其他非正常的操作,例如并不输入符号的情况,我们就需要进行判定。也就是说单纯用switch-case语句是不能完全满足实际的应用。需要在外面嵌套一个if-else语句进行判定

真实的代码如下:

private void button4_Click(object sender, EventArgs e) //加减乘除{//事件源转换为按钮Button btn = sender as Button;//上次按了数字if (prev == 1){txttop.Text += btn.Text;//进行显示拼接switch (prevysf){case "+":zjjg = zjjg + Convert.ToDecimal(txtbottom.Text); //计算上次运行的结果break;case "-":zjjg = zjjg - Convert.ToDecimal(txtbottom.Text); //计算上次运行的结果break;case "*":zjjg = zjjg * Convert.ToDecimal(txtbottom.Text); //计算上次运行的结果break;case "/":zjjg = zjjg / Convert.ToDecimal(txtbottom.Text); //计算上次运行的结果break; }txtbottom.Text = zjjg.ToString();}//上次按了运算符else{if (txttop.Text != ""){string s = txttop.Text;s = s.Substring(0, s.Length - 1);s = s + btn.Text;txttop.Text = s;}else{txttop.Text = txtbottom.Text + btn.Text;}}//点击了运算符prev = 2;//记录下运算符prevysf = btn.Text;}

清空的代码:

private void button9_Click(object sender, EventArgs e) //清空{txttop.Text = "";txtbottom.Text = "";prevysf = "+";prev = 0;zjjg = 0;}

等于的代码:由于结果需要符号和输入决,所以跟前面一样,真是的代码如下

private void button11_Click(object sender, EventArgs e) //等于{//上次按了数字if (prev == 1){txttop.Text += "=";//进行显示拼接 //事件源转换为按钮Button btn = sender as Button;switch (prevysf){case "+":try{zjjg = zjjg + Convert.ToDecimal(txtbottom.Text); //计算上次运行的结果}catch (Exception){zjjg = 0;}break;case "-":zjjg = zjjg - Convert.ToDecimal(txtbottom.Text); //计算上次运行的结果break;case "*":zjjg = zjjg * Convert.ToDecimal(txtbottom.Text); //计算上次运行的结果break;case "/":zjjg = zjjg / Convert.ToDecimal(txtbottom.Text); //计算上次运行的结果break;default:zjjg = 0;break;}txtbottom.Text = zjjg.ToString();prevysf = "";prev = 2;}if (txtbottom.Text=="0."){txtbottom.Text = "";prevysf = "";prev = 2;} }

具体其他的代码,文末有源代码相关链接,供下载学习使用。

运行示例

运行后,我们输入7+8,可以看到,在下一栏的结果栏可以看到结果15.当然,其他的运算也是同样的道理进行检验。

这样一个简易的计算器就完成了,有觉得可以改进的小伙伴也可以在源代码的基础上去改进,实现更多功能。

如果对你有帮助的话,请多多支持,有问题欢迎小伙伴在评论区留言或者私信。

本期源代码:

链接:/s/1xVreom1EWg7YxWgoJ5L1_A

提取码:4ygg

ps:最近准备考研,更新得比较慢,进度落下一大堆,后面也就这个情况了,尽量一周更新两篇有用的东西。希望谅解。祝各位学习的小伙伴更上一层楼。成功的人总是会伴随着各种挑战与困难的,加油.

敬请期待下一期,有兴趣的小伙伴可以关注一下。

下期预告:

1.C#核心语法(二)&&俄罗斯方块的设计与编写

2.纪念日管理系统&&python从安装到卸载(二)

其他系列不定时定量更新。

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。