上周C#的第一节winform课结束后老师布置了一个计算器的作业。由于之前学过C++所以语法方面都没什么问题,只是以前的代码练习都不怎么多,所以也想趁着这次学习语言的机会多练习。这是我的第一篇博客,若有什么不当之处,请多指教。

我做的这个计算器是模仿的win10,大部分功能都实现了。比如连续按操作符(单目、双目)可以一直计算下去,不是只能简单的1+1之后必须按=出结果。进行完一次运算后(双目的按=算完成,单目按操作符就算完成),可以不需要按C,直接点击任意一个数字按钮或者小数点算重来。

有一些我发现了的功能没实现,比如win10计算器=之后再按=可以继续之前的运算。还有复合运算+=、-=这些。因为我把+、-、*、/和=统一处理了,所以连续按这几个运算符就认为是按错了重新选择。

界面就只改了下背景颜色,不怎么精致。如图。

主要思路是按下一个算术运算符之后实际上是先进行上一次的运算,然后将指针指向当前运算符。所以初始运算为+,初始总和为0,这样当初始的时候输入第一个操作数之后再按一个算术运算符实际上是进行了一次“0+第一个操作数”的运算所以屏幕没变。

后台代码如下:

namespace WindowsFormsApp1
{public partial class Form1 : Form{enum Operator2 { Plus, Subtract, Multiply, Divide }//enum Operator1{Radical, Square, Reverse }int op2 = 0;//双目运算符指针double sum = 0;//总和bool pressedBI = false, pressedU = false;//按过双目、单目运算符bool again = false;public Form1(){InitializeComponent();}void CalculateBI(double second){switch (op2){case 0:sum += second; break;case 1:sum -= second; break;case 2:sum *= second; break;case 3:sum /= second; break;}}private void number_Click(object sender, EventArgs e)//数字点击事件{if (pressedBI || pressedU){if (again) { sum = 0; op2 = 0; again = false; }textBox1.Text = "0";pressedBI = pressedU = false;}Button b = (Button)sender;if (textBox1.Text != "0"){if (textBox1.Text.Length < textBox1.MaxLength)textBox1.Text += b.Text;}else  textBox1.Text = b.Text;}private void Uoperator_Click(object sender, EventArgs e)//单目运算符点击事件{pressedU = true;double Uresult = 0, num = Convert.ToDouble(textBox1.Text);Button b = (Button)sender;switch (b.Text){case "√":Uresult = Math.Sqrt(num); break;case "x²":Uresult = num * num; break;case "¹/x":Uresult = 1 / num; break;}textBox1.Text = Convert.ToString(Uresult);if (pressedBI){sum = Uresult; again = true;}}private void BIoperator_Click(object sender, EventArgs e)//双目运算符、=点击事件{if (again) again = false;if (!pressedBI){CalculateBI(Convert.ToDouble(textBox1.Text));textBox1.Text = Convert.ToString(sum);}Button b = (Button)sender;switch (b.Text){case "+":op2 = (int)Operator2.Plus; break;case "-":op2 = (int)Operator2.Subtract; break;case "×":op2 = (int)Operator2.Multiply; break;case "÷":op2 = (int)Operator2.Divide; break;case "=":again = true; break;}pressedBI = true;}private void button11_Click(object sender, EventArgs e)//小数点{if (pressedBI || pressedU){if (again) { sum = 0; op2 = 0; again = false; }textBox1.Text = "0.";pressedBI = pressedU = false;}int a = textBox1.Text.IndexOf('.');if (a == -1){if (textBox1.Text.Length < textBox1.MaxLength)textBox1.Text += '.';}}private void backspace_Click(object sender, EventArgs e){if (!pressedBI && !pressedU){string s = textBox1.Text;if (s.Count() > 1)textBox1.Text = s.Remove(s.Count() - 1, 1);else textBox1.Text = "0";}}private void C_Click(object sender, EventArgs e){sum = 0;op2 = 0;textBox1.Text = "0";}private void CE_Click(object sender, EventArgs e){if (again) { sum = 0; op2 = 0; }textBox1.Text = "0";}}
}

C#新手,有什么不对的地方,欢迎指正。

C#窗体实现的仿WIN10标准计算器相关推荐

  1. java swing计算机_使用java swing仿window7标准计算器界面

    完整代码 ----- package com.lfd.view; import java.awt.BorderLayout; import java.awt.Color; import java.aw ...

  2. python+tkinter仿制win10标准型计算器(中文版)完美教学

    前言 马上就要实习了,而我却没有拿得出手的项目..哎实力不够啊.还有六个月时间,先从简单开始吧,一步一个脚印,大家一起加油! "设计很难,模仿不易."这是我创作计算器时内心的独白. ...

  3. C#——简单的计算器(仿Windows 10计算器)

    问题描述 运用WPF技术,模仿Windows 10系统中计算机器(Calculator)程序,开发一个类似程序. 问题分析 注: MS:记忆当前显示的数字(Memory Save) MC:清除记忆的数 ...

  4. C#——《C#语言程序设计》实验报告——Windows桌面编程——简单的计算器(仿Windows 10计算器)

    一.实验目的 熟悉使用WPF进行界面编程的基本过程: 掌握WPF布局.控件.事件的使用. 二.实验内容 运用WPF技术,模仿Windows 10系统中计算机器(Calculator)程序,开发一个类似 ...

  5. 如何用计算机快速计算方法有哪些,win10快速打开计算器工具的两种方法(图文)...

    windows10系统内置许多小工具,比如常见的计算器,一般需要使用的时候大家都会在开始菜单-附件里找到它,这样就不太方便了,有什么办法能快速打开它?大家可以将计算器固定在任务栏,或者使用命令窗口输入 ...

  6. java简单计算器课程设计_java仿windows简易计算器课程设计 源码+报告

    [实例简介] java仿windows简易计算器课程设计 源码+报告 课直接运行. [实例截图] [核心代码] Java课设-简易计算器 └── Java课设-简易计算器 ├── Java课程设计.d ...

  7. 仿win10系统UI界面纯html网页网站后台UI界面

    仿win10系统UI界面纯html网页网站后台UI界面 一款经典仿win10系统UI界面纯html网页网站后台UI界面,效果超炫 演示地址:http://www.phprr.com/show-312

  8. 戴尔win10桌面 计算机,戴尔笔记本上win10的计算器在哪

    其它网友回答: 开始的附件里找,要不就进控制面板! 其它网友回答: 去控制面板里看看试试 其它网友回答: 附件.控制面板都可以找得到. 其它网友回答: 七月底,微软正式发布了新一代Windows10正 ...

  9. android仿windows phone界面,安卓仿win10桌面Win 10 Launcher

    安卓仿win10桌面Win 10 Launcher是一款安卓手机启动器工具,它让你手机桌面变得像 Windows 10一样,注意不是 Windows Phone 或者 Windows 10 Mobil ...

最新文章

  1. matplotlib hist 绘制直方图 bar 绘制条形图 API
  2. Spring Arm Component
  3. Python实现进程同步和通信
  4. ASP.NET页面间传值方式--zt
  5. 6种编写程序代码的方法
  6. Pandas数据探索分析,分享两个神器!
  7. DOM元素的大小和位置
  8. Hadoop生态系统常用组件导图
  9. unity如何实现图片透视_如何用java实现图片与base64转换
  10. mac 中的 zip 和 unzip 命令
  11. Exponential family: 指数分布族
  12. 使用Sugar制作数据可视化大屏的操作过程
  13. Leetcode--打劫家舍
  14. 查看服务器所有文件大小,查看服务器文件夹下内存大小
  15. Syntax error parameterized types are only available if sourc
  16. 计算机基础知识比赛主持稿,计算机基础技能大赛.doc
  17. 刺激战场怎么战斗服务器响应超时,绝地求生刺激战场网络延迟高怎么办 网络延迟解决方法...
  18. python网络安全设计_专为渗透测试人员设计的 Python 工具大合集
  19. python:脑残服务员和脑残和顾客上线了
  20. 如何关闭“若要接收后续 google chrome 更新,您需使用 windows 10 或更高版本”

热门文章

  1. Makefile基础教程
  2. 国产化存储的趋势和监控
  3. proteus四人抢答器_74HC147+373+4511数字四路抢答器电路Proteus仿真设计与调试
  4. Kad算法模拟测试程序
  5. GoF设计模式(十二) - 享元模式
  6. HDHCMS模板建立与栏目绑定的方法
  7. Prism.Wpf框架中WindowStartupLocation的问题
  8. 三星N9109W刷机教程(线刷官方固件rom包)
  9. SAP批次双单位CWM的系统实现
  10. 车间调度问题总结笔记二——AGV调度