C#基础视频教程4.3 如何编写简单的计算器
我们接着往下改,为了让这个计算器更加实用,我们要像官方的计算器一样可以接着计算(你算出来一笔数据之后,可以接着累加累减,我们暂时不考虑加括号,优先级之类的,因为绝大部分情况下我们打开计算器就是为了进行简单的四则运算),当然我们这个需要每次算完之后点击一下接着计算(微软官方的是计算之后,再次按数字键默认就重头开始计算,类似于点击了清除,再次按加减乘除键就接着计算,类似于点击了接着计算),读者可以自己思考如何做到更智能,更自动
再添加撤销按钮(退格键),要做一些处理,因为如果已经没有东西了你就不能再去退格了(也要判断当前是要退格A还是退格B),从这一小节"接着计算"和"撤销"两个功能可以看到,由于前面我们已经把整个逻辑流程梳理的比较清晰了,这里只要额外增加爱一些else if判断就可以了,读者可以自己尝试从头开始写一个计算器,看看自己最后的整个程序结构乱不乱,好不好改。
我们还可以添加向量的点乘和叉乘的功能,为了跟现有的简单计算器分开,可能应该新建一些文本框来输入输出(或许还应该添加矩阵运算,三点求圆心,求面积求体积之类的,那就不放在这里谈了,讲下去讲不完)
我们还可以添加进制转换的功能(由于时间限制,我们并不会把整个计算器做的非常完整,大部分功能只是测试可用就行)
把前面的角度弧度转换实现出来(他的业务逻辑跟进制转换很相似,所以可以归到一起)
或许还应该响应鼠标键盘的事件(你键盘按数字键,等同于按按钮),还可以增加人民币大写转换(学会使用别人的类),语音播放(学会移植别人的代码)等等功能,在此不一一详细介绍,感兴趣的读者可以看本节提供的附件代码研究别人怎么做的,有哪些优缺点(正如本教程第一节介绍的,C#不管在哪个领域都有大量的现成范例可以参考,看懂别人的,博采众长,修修改改做出适合自己的,这正是C#该干的事情)
总结:本节课程比较长,因为是第一个入门范例,所以讲的很细,一共分成了三个部分。后面的介绍会越来越粗略(给思路,给代码,重点介绍一下,剩下的自己琢磨)。有以下几个点要领会:
1 基本控件的使用,理解C#是怎么把界面做出来的(按钮,文本框,暂时不要去研究复杂的界面设计,交互方式)
2 表现层和运算层分开的思维方式(把跟数据相关的所有功能提取到一个类里,不断完善自己的类库)
3 测试要改进要完善自己的代码是否困难,移植别人的代码,复制别人好的设计要怎么做
更多教学视频和资料下载,欢迎关注以下信息:
我的优酷空间:
http://i.youku.com/acetaohai123
我的在线论坛:
http://csrobot.gz01.bdysite.com/
问题交流:
QQ:910358960
C#基础视频教程4.3 如何编写简单的计算器的更多相关文章
- C#基础视频教程4.2 如何编写简单的计算器
用过VB6或者早期代码的人都应该能感觉到,C#目前也没看出来有什么特别之处,所谓的面向对象也没有什么体现.所以我们需要在原有基础上重写一份代码,然后比较两种做法的优缺点.我们在项目上右击添加一个Fun ...
- C#基础视频教程4.1 如何编写简单的计算器
要学会基本的窗体控件(button,textbox,label这种,以及他们的重要属性),每个控件的命名要符合规范(例如一般文本框都会重命名txtXXXXX,按钮都会重命名btnXXXXX) 为了 ...
- C#基础视频教程5.1 如何编写简单的超级热键
我们上一节介绍了编写简单计算器,实际上也是出于实用角度(这个计算器只要你肯改,肯定能做的比微软自带的计算器好用).这一节介绍做简单的超级热键(所谓的超级热键是指自定义快捷键的功能) 超级热键的最关键一 ...
- C#基础视频教程5.3 如何编写简单的超级热键
跟前面一章讲解计算器一样,到最后一小节,我们总是要把代码规整好,让整个程序显得非常简洁,先做个文件夹把我们自定义的类库都放进去 然后我们开始整理Form1里面的代码,为了实现超级热键的功能,我们应 ...
- C#基础视频教程7.5 如何编写简单游戏
有一些BUG需要处理,比如小鸟太高或者太低都应该报错(不然直接掉到窗口下面去了),这个方法跟前面的HitTest应该独立开来,而不是掺和在一起 测试确实可以检测是否超过边界(如果要非常精确,那么就 ...
- C#基础视频教程7.3 如何编写简单游戏
前面我们大致实现了鸟的一圈轨迹(其实如果你不做这个,就用两个矩形块的碰撞检测代替也可以),跟所有前面的教程一样,草稿打完了就要设计封装成一个类.至少到目前为止我们已经知道了鸟的属性和方法,先不要管方法 ...
- C#基础视频教程7.2 如何编写简单游戏
前面一小节我们实现了简单的碰撞检测,但是实际上游戏的对象并不是一个标准的矩形(小鸟是一个不规则的物体,其实碰撞的管道也是不规则物体),所以如果真的要做的比较完美,我们自己要写一个方法,能够导入一个图像 ...
- C#基础视频教程5.2 如何编写简单的超级热键
我们前面已经理解了如何使用官方的代码实现鼠标键盘的监控,其实还差一点,因为他的代码只能捕捉单个的按键,而其实我们要的是组合键.什么是组合键呢?比如我想定义同时按下WIN+C是去执行屏幕截图.这只要理解 ...
- C#基础视频教程7.4 如何编写简单游戏
接下来我们实现整个的游戏流程,当点击开始游戏,则需要三个事情开始运行 1 小鸟初始化并往下掉(当然还是可以用按钮让他飞一下) 2 每隔一定时间从左侧产生一个管子(宽度和高度随机,产生周期2000ms左 ...
随机推荐
- GPFS 安装测试
简介 GPFS(General Parallel File System ,GPFS) 是 IBM 公司第一个共享文件系统,起源于 IBM SP 系统上使用的虚拟共享磁盘技术( VSD ).作为这项技 ...
- 51nod1218 最长递增子序列 V2
看见标签推荐顺便就做了吧 记$f[i], g[i]$为$i$的含$i$的前缀最长递增子序列和后缀递增子序列 只要满足$f[i] + g[i] == LIS + 1$,那么$i$就是可能的 对于$i$而 ...
- thread_local变量(转)
转自:https://www.cnblogs.com/pop-lar/p/5123014.html thread_local变量是C++11新引入的一种存储类型.它会影响变量的存储周期(Storage ...
- 【8.23校内测试】【贪心】【线段树优化DP】
$m$的数据范围看起来非常有问题??仔细多列几个例子可以发现,在$m<=5$的时候,只要找到有两行状态按位$&$起来等于$0$,就是可行方案,如果没有就不行. #include<i ...
- 2038: [2009国家集训队]小Z的袜子(hose) (莫队算法)
题目链接: http://www.lydsy.com/JudgeOnline/problem.php?id=2038 专题练习: http://acm.hust.edu.cn/vjudge/conte ...
- Tasker 中文版(4.6u2)
http://www.anzhi.com/soft_1868913.html Tasker绝对称得上是Android系统的神器之一,与Auto Memory Manager不同,Tasker不是加速型 ...
- STN1110 Multiprotocol OBD to UART Interpreter
http://www.obdsol.com/stn1110/ Safe, secure bootloader. Reflash the firmware in the field, even over ...
- 【转】为 OSCHINA 聚会搞的一个小抽奖程序
http://www.oschina.net/code/snippet_12_7605 在线演示: http://www.oschina.net/r.html
- Codeforces Round #FF (Div. 1) B. DZY Loves Modification
枚举行取了多少次,如行取了i次,列就取了k-i次,假设行列单独贪心考虑然后相加,那么有i*(k-i)个交点是多出来的:dpr[i]+dpc[k-i]-i*(k-i)*p 枚举i取最大值.... B. ...
- system.data.sqlite.dll
记录下最新的system.data.sqlite.dll下载地址和官网:http://system.data.sqlite.org