基于C#的简单计算器

Haggard

发布日期: 2019-05-07 19:55:19 浏览量: 543
评分:
star star star star star star star star star star
*转载请注明来自write-bug.com

一、实验要求与学习目标

1.1 实验要求

  • 参照Windows提供的计算器工具,设计一个与之类似的程序

  • 基本要求:实现“普通运算”功能,支持连续运算,如连续输入“2+3×5”后点击“等号”按钮进行运算其结果为25.

  • 附加要求

    • 支持“科学运算”功能,即输入表达式时遵循运算符号的优先原则,连续输入“2+3×5”后点击“等号”按钮进行运算其结果为17;
    • 支持数字键盘(小键盘)输入功能(焦点不在文本框内时也支持键盘输入);

1.2 学习目标:

  • 熟悉.NET的编程方法,掌握项目的创建与使用及安装

  • 熟悉C#编程语言,字符串使用、自定义类、自定义类库等

  • 熟悉Windows应用程序类编程、事件驱动编程

二、设计思路

在项目中设计两个个计算类CCalculator.cs 和 SCalculator.cs,分别包含“普通计算”和“科学计算”功能,即根据输入数学运算表达式字符串,返回计算结果。直接在项目中调用该类,输出计算结果。

三、程序运行效果

普通运算模式

科学运算模式

四、实验总结

通过本次实验,我遇到了很多问题,在解决问题的过程中学习到了很多。第一次做计算器,本来以为挺简单的,但是出乎意料,麻雀虽小,五脏俱全,问题挺多的,其中一个原因是我接触C#不久缘故。

通过同学的帮助和自己google遇到的问题,大部分问题迎刃而解。

  • 窗口最大化和最小化的问题,把FormBorderStyle 从默认的Sizable 设置为Fixed3D,这样做用户就不能自由改变窗口的大小了,然后将MaximizeBox 和MinimizeBox 设置为false,问题搞定

  • 结果显示问题,为了使得界面好看,我是仿照windows上的计算器设计的,我认为这样子的话人机交互的界面就更加人性化了,符合大部分用户的操作习惯。同时也模仿这个计算机的按键输入和结果输出,说得简单做得难,修改了多次才达到一致的效果

  • 多按键同一个事件时的快捷设置,二十多个按键,一个一个来太慢了,问了问同学可以选择多个按键后在事件中选择一个方法就可以了,这样方便很多

  • 键盘响应事件,我用的是keydown,除了回车键,其他没有问题,我就纳闷了,从同学那里知道是焦点问题,于是问题好办了,把焦点设置在等于号上,那么每次回车都会自动运算了,至于怎么使焦点始终在这上面,在我已有代码上改似乎比较麻烦,我就把每个按键添加Enter事件,只要回车,焦点都到等于号上了,包括下方的两个radiobutton。当然,也可以另外弄了“隐藏”的按键,放在某个东西的后面,焦点固定在这里,对应计算事件,每次回车后都会计算了

  • 第一次用radiobutton 通过查询资料简单的搞定了,这么就能切换普通运算模式和科学运算模式了

  • 科学运算结果,我本来想用学数据结构时写的方法做,觉得麻烦,于是google了下,发现使用datatable这个类可以快捷的计算结果,实在是太方便了,一开始运算有警告,于是写了个简单的demo才发现返回值原来是object,类型转换后问题搞定了

  • 按键颜色,我的按键当鼠标放在上面和离开时都有颜色变化的,通过查询资料,知道不只有Color类,还有个SystemColors类的颜色,于是效果能做到和预期一样了

还有挺多问题的,就不一一列举了。总之,我通过本次试验学习到了很多我以前不知道的东西,又有了挺大的进步。

上传的附件 cloud_download 基于C#的计算器.zip ( 98.49kb, 8次下载 )
error_outline 下载需要6点积分

发送私信

所有的道别里,我还是最喜欢明天见

13
文章数
12
评论数
最近文章
eject