回顾上一篇:从零学编程1-写一封情书

做个工资计算器

主人公两枚:
鹰:从零学编程
我:从零教编程

我:阿鹰问你个问题,你喜欢做贡献吗?
鹰:不喜欢.
我:囧.OK,那我们换个问法,你喜欢钱吗?
鹰:喜欢!!!有钱我就可以买CF神器了,我跟你说啊最近粗了一把狙..
我:
OK,OK我们聊钱(强颜欢笑中)

大家都喜欢钱,但是钱的本质是什么呢?上过高中的都知道,它是商品交换的产物.商品不可能大街上去捡.就算是大街上去捡垃圾,那也是付出了劳动,清洁了环境不是吗?所以金钱的来源,就是做贡献.只有为社会做出了贡献的人,才会得到社会的金钱奖励.

每天算算账是个好习惯,如果入不敷出,就想想怎么正当地去赚钱而不是去借,当然你也可以使用花呗…你天天算账用别人的计算器是不是很烦?
鹰:是啊,我最喜欢上次你教我的写情书的黑色背景了.
我:要的就是这句话.今天我们一起来DIY一个能算加减乘除的计算器.
首先我们建立一个新的工程,上个上次有讲过,起个有意义的名字放在记得住又不太碍眼的地方,阿鹰别放桌面上!:

先输出一段代码:

#include <iostream>using std::cout;
using std::cin;
using std::endl;int main()
{cout<<"输入表达式:"<<endl;char run;float fNumberA,fNumberB; float fResult=0;return 0

你有没有注意到和上次代码的不同.
鹰:好多不同的.这次我们是不是要用cin?

你学得真快,前面有

using std::cin;

是因为我们这次要用到cin.既然cout是输出,那么cin就是输入咯.
箭头指向哪里就是把东西传到哪里.比如

cin>>A;
cout<<B;

箭头指向A,说明把我们输入的内容送到a里面.
箭头指向cout,说明把B中的内容送到cout,这里的cout也就是我们的屏幕咯.

注意:尽量不要使用这么短的没有什么明确意义的名字,防止自己编程把自己先搞晕了.
这里A,B需要先跟系统打个招呼,说明一下自己占地多少才能用.
比如

    char Yin;

我们申请了一个名字叫Yin的char类型变量.
下面我们连续申请了fNumberA,fNumberB两个float类型的变量.并且申请了一个名为fResult的变量还给它等于了一个0.

    float fNumberA,fNumberB; float fResult=0;

char 型变量占地很小只能放一个英文字符.或者一个简单的+-*/的符号.
这是一张ASCII码表,里面的每一个字符东西都可以用一个char类型的变量来放.

我们的计算机正是利用了这个特点:它只能放一个字符.

int main()
{cout<<"输入表达式:"<<endl;char run;float fNumberA,fNumberB; float fResult=0;    cin>>fNumberA;//第一个数字放在这里cin>>run;//当输入一个符号的时候系统会自动把符号放在这里cin>>fNumberB;//符号后面的东西会被自动放在这里.cout<<fResult;return 0;
}

例如当我们输入:

12+2

12因为是第一个输入的数字会在输入+的一瞬间被挤到fNumberA中,
+会被放在char型的变量run中.
加号后面的数字会在回车的瞬间被挤到fNumberB中.

这样我们需要的东西:第一个数字,符号和第二个数字都被我们记录起来了.
它们分别是:
fNumberA
run
fNumberB

接下来有趣的事情即将发生,我们该怎么让系统按照不同的运算符(run)而做不同的四则运算呢?
我们需要用到判断.这不难:

switch(你需要判断的东西)
{//上个大括号,让switch知道自己的判断范围.case '+':{//这里放加的运算;break;//运行完了上面的操作就不判断了.如果没有break就会把下面的一条一条全执行下去.}case '-':{//这里放减的运算break;}
default:{//如果不是上面的情况,就这么做,你也可以空下来,就是什么也不做,或者提示一下用户你的运算符输入错啦cout<<"您好,您输入的运算符无效,请重新输入\r\n";//  \r\n是回车的另一种表示.// 它属于>格式化输出<你可以通过搜索引擎得到更多知识break;}}
  1. 在每个判断后面放一个break用于执行后跳出判断.
  2. 每个char类型要被两个单引号夹住
  3. case后面要加冒号,我就经常忘,结果各种报错信息.

这里你不需要使用using std::switch.因为switch属于自带的.而cin,cout属于没有自带的.当你需要更多功能的时候你就需要使用不同的,什么是呢?就是计算机高手奉献自己已经完成的功能代码,就像我每天给你发的示例代码一样.这里std就是一个非常常用的输入输出库.

下面就是目前我们的代码:

#include <iostream>using std::cout;
using std::cin;
using std::endl;int main()
{cout<<"输入表达式:"<<endl;char run;float fNumberA,fNumberB; float fResult=0;    cin>>fNumberA;cin>>run;cin>>fNumberB;switch(run){case '*'://两个单引号夹一个char类型{fResult=fNumberA*fNumberB;  break;}case '/':{if (fNumberB==0){break;}fResult=fNumberA/fNumberB;break;}case '+':{fResult=fNumberA+fNumberB;break;}case '-':{fResult=fNumberA-fNumberB;break;}default:{break;}}cout<<fResult;cin>>fResult;return 0;
}

效果如图:

如果你对每次只能计算一次而遗憾,不就是需要循环计算吗?
在计算机中它的名字就叫”循环”.它有很多种样式.一种简便的样式是:

int iNumberA=0;while(条件)
{
iNumber=iNumber+1;
}

我们将我们的计算器的主体:
1. 输入
2. 判断
这两部分放在while的大括号中.
只要把条件改成1就会永远执行下去.别担心你可以用额外的break跳出这个循环.或者手动去点关闭

目前我们的代码成了下面这个样子:

int main()
{cout<<"输入表达式:"<<endl;char run;float fNumberA,fNumberB; float fResult=0;    while(1){cin>>fNumberA;cin>>run;cin>>fNumberB;switch(run){//那一大堆判断 }cout<<fResult;//相较于之前,这里删去了cin>>fResult因为我们没有必要让它继续帮助我们卡住屏幕以便于观察了.}return 0;
}

最终效果:

我们的计算器已经可以做多个算式而不必每次退出了.

后记:

这是本系列的第二篇也是最后一篇.为什么不继续介绍呢?因为新手已经入门了.学习者该去寻找更多的有趣的知识了.这已经超出我的能力范围.
古语有云:

取法乎上,仅得其中;取法乎中,仅得其下;取法乎下,一无所得.

上面我们使用的是C++语言.

如果这两篇文章使你对编程产生了兴趣,那就赶快去学吧.
找一本通俗易懂的书籍.趣味优先.

《嗨翻C语言》据名字来说还好.
《谭浩强先生的C++语言教程》千年圣品教材,有它的道理.
《C++ Primer》进阶必读,入门算了.别说我毁兴趣
……去图书馆转转你会有发现的.

有句话不假:

技术越高越自由.

与君共勉.

从零学编程2-做个工资计算器相关推荐

  1. 从零学编程1-写一封情书

    一哥们闲暇之余想学编程,博主作为"会装系统的人"自然脱不了干系,这哥们名字叫鹰,初中文化,对于电脑的认识属于只会上网听歌看电影,差点忘了他强调过CF玩的不错. 那就教起吧. 主人公 ...

  2. 学编程能做什么工作 五大行业任你选

    在平时跟小伙伴们的交流中,大家问的比较多的一个问题就是:学了编程能干什么? 学泥瓦工可以码砖头.学裁缝能做衣服,这个都有明确的方向.那我们学编程能从事那些工作呢?码农?岂止是码农!而且大家太小看码农了 ...

  3. 学编程能做什么工作?这5种高大上的工作你喜欢么,赶紧收藏!

    在平时跟小伙伴们的交流中,大家问的比较多的一个问题就是: 学了编程能干什么? 学泥瓦工可以码砖头.学裁缝能做衣服,这个都有明确的方向.那我们学编程能从事哪些工作呢? 码农? 岂止是码农!而且大家太小看 ...

  4. 学编程能做什么工作?这5种高大上的工作你喜欢么!

    在平时跟小伙伴们的交流中,大家问的比较多的一个问题就是:学了编程能干什么? 学泥瓦工可以码砖头.学裁缝能做衣服,这个都有明确的方向.那我们学编程能从事哪些工作呢?码农?岂止是码农!而且大家太小看码农了 ...

  5. “8 岁学编程,做了近 40 年程序员,我总结了 15 条经验宝典”

    [CSDN 编者按]在国内,从事软件开发在10年以上的程序员几乎是少之又少,在CSDN发布的<2021-2022 中国开发者调查>报告中,有48.56的用户从事的编程年限在1-5年,11- ...

  6. Wolf从零学编程-用Python打造简单加密程序(八)

     分类: Python写加密程序(7)  版权声明:本文为博主原创文章,转载请注明出处和链接. 目录(?)[+] 本篇是最后一篇,加密小程序已经做完了,也可以打包带走. 这篇列出了几个改进,我的目的是 ...

  7. 给自己的学习任务1:做一个工资计算器app

    规则参照这里 https://www.anxin.com/tools/wuxianyijinacitykunshan/ http://www.gerensuodeshui.cn/view/2018-0 ...

  8. 用C语言(keil c)给8051单片机编程来做一个LCD计算器(proteus仿真)

    源代码很简单, 直接给部分电路图效果(125*25=3125):

  9. 学计算机编程我有什么好处,学编程到底有什么好处?我发现了这三个秘密!

    乔布斯:每个人都应该学习编程,因为它将教会你如何思考. 最近,和家长聊起了孩子学编程前后的变化. 这位家长告诉我,孩子学编程前后变化真的很大,起初孩子的积极性不怎么好,但学了编程之后,各方面得到了很好 ...

最新文章

  1. 深浅拷贝、函数、内置函数、文件处理、三元运算、递归
  2. python详细安装教程linux-Python 环境安装步骤
  3. spring中@Transaction注解解析
  4. C/C++从源代码到生成可执行程序的过程详解!
  5. Chrome调试大全--转载
  6. js中字符串转换为数字
  7. 有参组装新转录本cufflinks_转录本组装软件StringTie的使用说明
  8. mysql输入错误怎样更正_HotDB MySQL 篇| MySQL 源码系列的补充与更正
  9. 前端学习(3079):vue+element今日头条管理-数据筛选处理
  10. 通过HttpModule实现IP地址屏蔽功能
  11. google搜索url参数总结
  12. 版本控制工具的必要性、作用、分类和发展历程
  13. mqtt等待来自服务器响应超时,等待来自服务器的响应时超时 (32000) at org.eclipse.paho.client.mqttv3.interna...
  14. 【C语言小游戏】学生信息管理系统
  15. adb连接的2种方式,有线(USB线)和无线
  16. 【学习笔记】域名资源记录(Resource Record)
  17. python将视频转为图片
  18. English Learning - L2 第 9 次小组纠音 辅音 [s] [z] [ʃ] [ʒ] [h] [ʧ] [ʤ] 2023.3.25 周六
  19. 涓滴意念--java基础
  20. 回文联对联大全_回文联大全,有趣回文对联大全

热门文章

  1. 这2万字的前端基础知识查漏补缺,请你收藏好
  2. 搞懂分布式技术14:Spring Boot使用注解集成Redis缓存
  3. 中南大学刘嘉忆(刘路)论文--破解西塔潘猜想.pdf
  4. 手写内存池以及原理代码分析【C语言】
  5. 十年盘点,Revit二次开发这条路不易
  6. RevitBIM数据库V6.0版插件-橄榄山+住建部BIM数据库:
  7. 使用WinNTSetup重装系统
  8. python k线 形态识别 人工智能_用Python结合人工智能尝试预测股票,下一个股神就是你...
  9. 三子棋(九宫棋)的C语言实现
  10. html 元素响应,jQuery动态添加html元素后,响应事件的问题记录