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

 

再添加撤销按钮(退格键),要做一些处理,因为如果已经没有东西了你就不能再去退格了(也要判断当前是要退格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. logging记录日志

    日志是一个系统的重要组成部分,用以记录用户操作.系统运行状态和错误信息.日志记录的好坏直接关系到系统出现问题时定位的速度.logging模块Python2.3版本开始成为Python标准库的一部分. ...

  2. android 进程优先级

    韩梦飞沙  韩亚飞  313134555@qq.com  yue31313  han_meng_fei_sha 前台进程 可见进程 服务进程 后台进程 空进程

  3. [BZOJ3142][HNOI2013]数列(组合数学)

    3142: [Hnoi2013]数列 Time Limit: 3 Sec  Memory Limit: 128 MBSubmit: 1721  Solved: 854[Submit][Status][ ...

  4. php-streams扩展学习

    一. streams是干嘛的: 用于统一文件.网络.数据压缩等类文件操作方式,并为这些类文件操作提供一组通用的函数接口. 二. stream是具有流式行为的资源对象,这个对象有一个包装类 例如: pr ...

  5. git -- 简单命令

    1.git init    当前目录初始化   2.git  status  检查当前文件状态   Changes to be committed” 这行下面的,就说明是已暂存状态 Changed b ...

  6. [转]String.Replace 和 String.ReplaceAll 的区别

    JAVA 中的 replace replaceAll 问题: 测试code System.out.println("1234567890abcdef -----> "+&qu ...

  7. TRF7970A IC Communication Interface

    General Introduction The communication interface to the reader can be configured in two ways: with a ...

  8. VisualStudio:WEB 性能测试和负载测试 入门

    背景 一直做的是中小企业应用,很少关注性能和负载这里,进来准备看一本关于并发编程的图书,为了量化的测试 WEB 环境的性能和负载,特意玩了一下 VS 提供的测试项目. 新的测试项目 新建项目 性能测试 ...

  9. 解决:解压zip文件却变成cpgz文件

    众所周知,zip是一种压缩文件格式,MAC OS默认支持的文件格式,当时偶尔当你打开zip文件想要解压时,却自动变成了cpgz文件而没有解压,再双击这个cpgz文件,Archive Utility又会 ...

  10. 用百度SDK获取地理位置和天气信息

    以下实现通过百度SDK获取地理位置和天气信息,请參考title=android-locsdk/guide/v5-0">百度开发文档 1. 在相关下载最新的库文件.将so文件的压缩文件解 ...