我们接着往下改,为了让这个计算器更加实用,我们要像官方的计算器一样可以接着计算(你算出来一笔数据之后,可以接着累加累减,我们暂时不考虑加括号,优先级之类的,因为绝大部分情况下我们打开计算器就是为了进行简单的四则运算),当然我们这个需要每次算完之后点击一下接着计算(微软官方的是计算之后,再次按数字键默认就重头开始计算,类似于点击了清除,再次按加减乘除键就接着计算,类似于点击了接着计算),读者可以自己思考如何做到更智能,更自动

 

再添加撤销按钮(退格键),要做一些处理,因为如果已经没有东西了你就不能再去退格了(也要判断当前是要退格A还是退格B),从这一小节"接着计算"和"撤销"两个功能可以看到,由于前面我们已经把整个逻辑流程梳理的比较清晰了,这里只要额外增加爱一些else if判断就可以了,读者可以自己尝试从头开始写一个计算器,看看自己最后的整个程序结构乱不乱,好不好改。

 

我们还可以添加向量的点乘和叉乘的功能,为了跟现有的简单计算器分开,可能应该新建一些文本框来输入输出(或许还应该添加矩阵运算,三点求圆心,求面积求体积之类的,那就不放在这里谈了,讲下去讲不完)

 

我们还可以添加进制转换的功能(由于时间限制,我们并不会把整个计算器做的非常完整,大部分功能只是测试可用就行)

 

把前面的角度弧度转换实现出来(他的业务逻辑跟进制转换很相似,所以可以归到一起)

 

或许还应该响应鼠标键盘的事件(你键盘按数字键,等同于按按钮),还可以增加人民币大写转换(学会使用别人的类),语音播放(学会移植别人的代码)等等功能,在此不一一详细介绍,感兴趣的读者可以看本节提供的附件代码研究别人怎么做的,有哪些优缺点(正如本教程第一节介绍的,C#不管在哪个领域都有大量的现成范例可以参考,看懂别人的,博采众长,修修改改做出适合自己的,这正是C#该干的事情)

 

总结:本节课程比较长,因为是第一个入门范例,所以讲的很细,一共分成了三个部分。后面的介绍会越来越粗略(给思路,给代码,重点介绍一下,剩下的自己琢磨)。有以下几个点要领会:

1 基本控件的使用,理解C#是怎么把界面做出来的(按钮,文本框,暂时不要去研究复杂的界面设计,交互方式)

2 表现层和运算层分开的思维方式(把跟数据相关的所有功能提取到一个类里,不断完善自己的类库)

3 测试要改进要完善自己的代码是否困难,移植别人的代码,复制别人好的设计要怎么做

 

 

更多教学视频和资料下载,欢迎关注以下信息:

我的优酷空间:

http://i.youku.com/acetaohai123

 

我的在线论坛:

http://csrobot.gz01.bdysite.com/

 

问题交流:

QQ:910358960

邮箱:acetaohai123@163.com

 

 

 

C#基础视频教程4.3 如何编写简单的计算器的更多相关文章

  1. C#基础视频教程4.2 如何编写简单的计算器

    用过VB6或者早期代码的人都应该能感觉到,C#目前也没看出来有什么特别之处,所谓的面向对象也没有什么体现.所以我们需要在原有基础上重写一份代码,然后比较两种做法的优缺点.我们在项目上右击添加一个Fun ...

  2. C#基础视频教程4.1 如何编写简单的计算器

    要学会基本的窗体控件(button,textbox,label这种,以及他们的重要属性),每个控件的命名要符合规范(例如一般文本框都会重命名txtXXXXX,按钮都会重命名btnXXXXX)   为了 ...

  3. C#基础视频教程5.1 如何编写简单的超级热键

    我们上一节介绍了编写简单计算器,实际上也是出于实用角度(这个计算器只要你肯改,肯定能做的比微软自带的计算器好用).这一节介绍做简单的超级热键(所谓的超级热键是指自定义快捷键的功能) 超级热键的最关键一 ...

  4. C#基础视频教程5.3 如何编写简单的超级热键

    跟前面一章讲解计算器一样,到最后一小节,我们总是要把代码规整好,让整个程序显得非常简洁,先做个文件夹把我们自定义的类库都放进去   然后我们开始整理Form1里面的代码,为了实现超级热键的功能,我们应 ...

  5. C#基础视频教程7.5 如何编写简单游戏

    有一些BUG需要处理,比如小鸟太高或者太低都应该报错(不然直接掉到窗口下面去了),这个方法跟前面的HitTest应该独立开来,而不是掺和在一起   测试确实可以检测是否超过边界(如果要非常精确,那么就 ...

  6. C#基础视频教程7.3 如何编写简单游戏

    前面我们大致实现了鸟的一圈轨迹(其实如果你不做这个,就用两个矩形块的碰撞检测代替也可以),跟所有前面的教程一样,草稿打完了就要设计封装成一个类.至少到目前为止我们已经知道了鸟的属性和方法,先不要管方法 ...

  7. C#基础视频教程7.2 如何编写简单游戏

    前面一小节我们实现了简单的碰撞检测,但是实际上游戏的对象并不是一个标准的矩形(小鸟是一个不规则的物体,其实碰撞的管道也是不规则物体),所以如果真的要做的比较完美,我们自己要写一个方法,能够导入一个图像 ...

  8. C#基础视频教程5.2 如何编写简单的超级热键

    我们前面已经理解了如何使用官方的代码实现鼠标键盘的监控,其实还差一点,因为他的代码只能捕捉单个的按键,而其实我们要的是组合键.什么是组合键呢?比如我想定义同时按下WIN+C是去执行屏幕截图.这只要理解 ...

  9. C#基础视频教程7.4 如何编写简单游戏

    接下来我们实现整个的游戏流程,当点击开始游戏,则需要三个事情开始运行 1 小鸟初始化并往下掉(当然还是可以用按钮让他飞一下) 2 每隔一定时间从左侧产生一个管子(宽度和高度随机,产生周期2000ms左 ...

随机推荐

  1. JavaSE1

    <The Pragmatic Programmer><The Mythical Man-month><Clean Code><The Clean Coder& ...

  2. RxSwift 系列(一)

    为什么使用RxSwift? 我们编写的代码绝大多数都涉及对外部事件的响应.当用户点击操作时,我们需要编写一个@IBAction事件来响应.我们需要观察通知,以检测键盘何时改变位置.当网络请求响应数据时 ...

  3. Vue 2.0学习(五)v-bind及class与style绑定

    DOM元素经常会动态地绑定一些class类名或style样式. 基本用法 <div id="app"> <a v-bind:href="url" ...

  4. 【BZOJ 4403】 4403: 序列统计 (卢卡斯定理)

    4403: 序列统计 Time Limit: 3 Sec  Memory Limit: 128 MBSubmit: 653  Solved: 320 Description 给定三个正整数N.L和R, ...

  5. [HDU5965]扫雷

    [HDU5965]扫雷 题目大意: 一个\(3\times n(n\le10000)\)的扫雷,第\(2\)排没有雷.告诉你第\(2\)排上的数,问有几种埋雷的方案? 思路: 动态规划. 将\(1,3 ...

  6. bzoj 1086 树分块

    将树分成一些块,做法见vfleaking博客. /************************************************************** Problem: 108 ...

  7. php -- php读取sqlserver中的datetime出现的格式问题

    php连接sqlserver2005时,读取出来的数据是01 15 2014 12:00AM, 也就是说日期的格式是MM DD YY hh:mmAM 那如何把它转变成24小时制,且显示的格式为YY-M ...

  8. OpenAPI安全防护

    1,开放API可能存在的数据安全问题 (1)数据窃取 通常体现为:钓鱼网站,拦截,伪装,截包 (2)数据篡改 中间被拦截,以代理的方式拦截数据,修改数据 (3)数据泄露 爬虫抓取核心数据 2,解决数据 ...

  9. asp.net调用存储过程1

    1,传入参数,传出参数 public int GetTeam1Id(string userId)        {            int team1ID = -1;            st ...

  10. VMware中网络设置之NAT

    当完成VMwareWorkStation安装之后,网络连接中会多出两个网络连接,分别是VMnet1和VMnet8,如下图所示: 整个机器的结构就可以抽象成:VMware虚拟机系统(虚拟网卡vmnet0 ...