从零学编程2-做个工资计算器

回顾上一篇:从零学编程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》进阶必读,入门算了.别说我毁兴趣

……去图书馆转转你会有发现的.

有句话不假:

技术越高越自由.

与君共勉.

版权声明:本文为博主原创文章,未经博主允许不得转载。

时间: 2024-12-06 10:14:56

从零学编程2-做个工资计算器的相关文章

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

一哥们闲暇之余想学编程,博主作为"会装系统的人"自然脱不了干系,这哥们名字叫鹰,初中文化,对于电脑的认识属于只会上网听歌看电影,差点忘了他强调过CF玩的不错. 那就教起吧. 主人公两枚: 鹰:从零学编程的哥们 我:从零教编程的作者 !!注意为了便于新手理解,使用大量的便于理解的语句,不代表本人知识水平.我怎么会告诉你Windows启动过程呢.(- o -)~ 开始我们的故事 我:今天让我们写一封电子情书. 鹰:我听说过,但是网上说得太复杂了- 我:会非常简单的.先下载个编程工具.就用我

零基础学编程:你可以的!

好多人都在担心零基础能学编程吗?可以学会.学好吗? 我的回答是:可以.零基础可以学会编程,但你在学习前应该明白两点,或者说你应该做的有两点:一是你要找个好的平台,二是自己要下定决心,要坚持下去. 好的平台指的就是培训机构.找一个好的培训机构,找一批教学经验丰富的老师,可以让你达到事半功倍的效果. 尚学堂有一批优秀的老师,从技术到生活,从专业思想逻辑到追求,指导每位学员,零基础入学到专业人士并非遥不可及.     我是在尚学堂学习的,这里的老师教学经验都很丰富,都有过项目开发经验,老师也都很负责,

小白快速变大神,零基础菜鸟应该怎么学编程

最近,在交流群里经常有苦逼小白问怎样学编程,对编程有兴趣但无从下手,这是个庞大到让大神们"无言以对"的命题.在知乎.CSDN等论坛上,许多同行也对此类问题进行了探讨,小编就其中认可度较高的回答进行了整理,以望给纠结的菜鸟们一些帮助,也欢迎大神们补充和拍砖. 1.决定学,要有兴趣并且是真正的下定决心 兴趣和耐心是老生常谈的话题,小编不在此唠叨,只要记住一点,现在程序员工资差异很大,有能力的程序员享受高薪,但只是略懂的伪程序员可能找不到工作,如果想靠敲代码生存生活,就在兴趣的基础上认真学习

零基础学编程:零基础学HTML+CSS (第3版) 完整pdf扫描版

零基础学编程:零基础学HTML+CSS(第3版)站在零基础学习的角度,以通俗易懂的语言,结合丰富多彩的实例,来帮助初学者学习和掌握HTML语言和CSS样式设计.本书列举了大量的小型实例.综合实例,并包含3个项目案例,内容详尽.实例丰富.叙述清晰.本书主要分为四篇:第一篇为第1-9章,讲解了网页文字.字体.表格.段落.超级链接.图像.表单.框架.多媒体等技术:第二篇为第10-11章,对DIV+CSS的语法和相关属性进行了详细的解释和说明:第三篇为第12~20章,详细介绍了CSS的字体.文本.背景.

「雕爷学编程」Arduino动手做(12)——霍尔磁力模块

37款传感器和模块的提法,在网络上广泛流传,其实Arduino能够兼容的传感器模块肯定是不止37种的.鉴于本人手头积累了一些传感器与模块,依照实践出真知(动手试试)的理念,以学习和交流为目的,这里准备逐一做做实验,不管能否成功,都会记录下来---小小的进步或是搞不定的问题,希望能够抛砖引玉. [Arduino]66种传感器模块系列(专业资料+实验代码+图形仿真) 实验之十二:数字霍尔磁力传感器模块 霍尔效应所谓霍尔效应,是电磁效应的一种,指磁场作用于载流金属导体.半导体中的载流子时,产生横向电位

「雕爷学编程」Arduino动手做(13)——触摸开关模块

37款传感器和模块的提法,在网络上广泛流传,其实Arduino能够兼容的传感器模块肯定是不止37种的.鉴于本人手头积累了一些传感器与模块,依照实践出真知(动手试试)的理念,以学习和交流为目的,这里准备逐一做做实验,不管能否成功,都会记录下来---小小的进步或是搞不定的问题,希望能够抛砖引玉. [Arduino]66种传感器模块系列(专业资料+实验代码+图形仿真) 实验之十三:数字触摸开关传感器模块 触摸模块 1.工作电压:DC 3-5V 2.主要器件:运放,三极管 3.尺寸:长45mmX宽18m

「雕爷学编程」Arduino动手做(14)——倾斜角度模块

37款传感器和模块的提法,在网络上广泛流传,其实Arduino能够兼容的传感器模块肯定是不止37种的.鉴于本人手头积累了一些传感器与模块,依照实践出真知(动手试试)的理念,以学习和交流为目的,这里准备逐一做做实验,不管能否成功,都会记录下来---小小的进步或是搞不定的问题,希望能够抛砖引玉. [Arduino]66种传感器模块系列(专业资料+实验代码+图形仿真) 实验之十四:倾斜传感器模块(角度开关) SW-520D滚珠震动开关 铜壳镀金 振动开关 防跌角度开关 尺寸:5MM*12MM(直径*高

我为什么学编程?

学习编程认真的算起来已经有2个多月了,实际上只有一个多月时间是认真学,其余时间是找借口或者说是心情不好,而不去学.总的来说已经是开始入门了.前几天一直以为自己笨,学了很长时间什么都没学会.可是昨天无意间看了学习Java的视频,感觉也没有那么难(我是从c语言开始学起的,看的是郝斌的视频和在网上买的C Primer Plus(第五版)中文版),除此之外,还发现那个老师打的代码不 规范,至少是不漂亮!!! 好了,言归正传!我在上初中时,我的一个远房叔叔就送了我一本谭浩强写的<C语言程序设计>,可是我

为什么要学编程呢?

为什么要学编程?  不知道大家有没有感受到云计算的威胁?我已经深深的感受到了来自公有云的威胁,虽然国内云环境还不成气候,但威胁无时不在. 按照当前的发展趋势,运维,或者说中级运维的需求会越来越少,为什么会这样?因为随着自动化程度的提高,尤其像docker这样的容器技术的发展,更多的运维沦为操作工,而这是初级运维的事,我花5k请一个应届生能操作得很好,而且还听话,我干嘛要花15k去雇你. 然而,也并非所有运维都沦为操作工,那些在某一领域有深入研究的专家,在需要他的地方,永远是块宝,这样的人,无须我