专栏电商日志财经减肥爱情
投稿投诉
爱情常识
搭配分娩
减肥两性
孕期塑形
财经教案
论文美文
日志体育
养生学堂
电商科学
头戴业界
专栏星座
用品音乐

C编程案例入门计算器之一般实现

  上一节我们基本完成了界面设计和事件响应,这次我们继续来丰富功能。
  我先讲按正常的思路来实现。
  比如这样的字符输入1111
  用我们人眼人脑来计算,一看就是连加连减,而且还可以做简便运算,110就消了,结果就是112,非常容易。
  但要想让程序读懂并且能够计算正确,却不是一件容易的事,它就相当于是个刚出生的婴儿,你得教它怎么做。
  仅针对这个输入,我的思路是设置一个结果变量分别为result,初始值为0,还要记录一个上一次的符号变量lastoperator,然后不断循环,找到每一个数字,用result和lastoperator去跟这个数字做运算。大概需要这样的步骤:循环处理每个字符;如果是数字,则附加到一个变量保存;如果是运算符,将前面保存的变量转换成数字,然后用lastoperator跟result做运算,更新result值,重置变量为空;继续循环,直到所有字符处理完毕;
  按照这个思路,我编写了下面的代码:stringinputtbxInput。Text;doubleresult0;stringtemp;charlastoperator;foreach(charcininput)循环遍历每个字符{if(char。IsDigit(c))如果是数字{tempc;}else{if(!string。IsNullOrEmpty(temp))如果不是空字符{switch(lastoperator){case:resultint。Parse(temp);break;case:resultint。Parse(temp);break;}}lastoperatorc;temp;}}if(!string。IsNullOrEmpty(temp)){switch(lastoperator){case:resultint。Parse(temp);break;case:resultint。Parse(temp);break;}}
  逻辑倒是挺简单,之前没遇到过的函数我加了注释,应该不难理解。
  运行效果:
  细心的学员可能注意到,上面的代码中switch部分是一样的。对于代码相同或者是功能相似的部分,我们就提倡用函数进行封装,这样以后再使用的时候,直接调用这个函数就好了。比如,我们把上面用于计算的代码封装成下面的函数:doublecalcnormal(doubleresult,charop,stringtemp){if(!string。IsNullOrEmpty(temp))如果不是空字符{switch(op){case:resultint。Parse(temp);break;case:resultint。Parse(temp);break;}}returnresult;}
  函数的声明:doublecalcnormal(doubleresult,charop,stringtemp)返回类型函数名变量类型及变量名
  这样在程序中,我们直接调用函数名的方式就好了。优化后的代码:stringinputtbxInput。Text;doubleresult0;stringtemp;charlastoperator;foreach(charcininput)循环遍历每个字符{if(char。IsDigit(c))如果是数字{tempc;}else{resultcalcnormal(result,lastoperator,temp);lastoperatorc;temp;}}resultcalcnormal(result,lastoperator,temp);
  代码精简了不少,看起来也很清晰。实际执行结果,跟之前一样。
  函数,可以说是编程中的重中之重。我们经常听说很多经验丰富的老程序员,开发效率胜过十个新手,就是因为老程序员积累了丰富的类库,里面涵盖了各种各样的函数,这些函数都是经历过几年甚至十几年千万次的调用,通过无数次修改与Bug修复千锤百炼过的。想要什么功能就是一堆函数的组合,效率当然高了。拿我来说,我用C开发了10多年,从一开始就慢慢建设并丰富自己的开发库,以前我开发出一个产品,可能需要12年的时间才能成型。现在,基于类库,开发出类似的产品,可能只需要2个月。当然类库的磨练也不是一蹴而就的,我现在的类库,至少经历了3次架构级别的调整。有点扯远了,归根结底一句话,编程也要学会积累。
  回到我们的功能。虽然有了一些进展,能够实现了连加连减,但是乘法和除法我们并没有涉及到,并且还有更复杂的,比如括号嵌套,这种:(12(222))222
  加减乘除外加括号嵌套,常规的字符串处理复杂度太高了。想要完美解决,可能相当于要做一个小型的编译器了。
  那要如何来解决呢?我们下节继续。

部落冲突圣诞节温馨冬夜场景皮肤赏析,有史以来最好看的场景大家好,我是北辰远COC。这期小编带大家一起赏析圣诞节温馨冬夜场景皮肤。目前国服还未上线,国际服已于16日下午四点上线。接下来小编按照场景细节,场景对比等方面做一个分析。小编认为温钱包还可以抢救一下!年末福利,王者世冠66卡帮你省钱啦每到年末,钱包刚鼓起来就又扁下去了!我猜让你钱包掏空的清单里肯定也有王者的一份功劳?别慌,今年王者推出了世冠66卡,你的钱包说不定还可以抢救一下世冠66卡是什么?它有多大的优惠?这王者荣耀,貂爆流吕布,刀刀万血护盾厚但是随着玩家们不断的尝试,终于在赛季末结束前,研究出了一套吕布最强的出装玩法!铭文是8个传承,2个红月1个狩猎,9个隐匿10个虚空!出装是抵抗鞋,破魔刀,暴烈之甲,破军和纯净苍穹!知否盛明兰被骂,其实挺冤枉的!首发于公众号是阿瑞同学写知否剧评的时候,我发现一个很有意思的现象,就是很多人不能接受盛明兰身上的强者属性,就各种诋毁。觉得她赢到最后主要是因为编剧给她开了金手指还有祖母这样的人物给黄斌汉锂矿拍卖价回落!只为更猛的上涨而已选择大于努力,炒股更是选择方向大于一根筋。现在各大制造业,各大传统产业,甚至互联网产业,都遇到了瓶颈。时代过去了就过去了,而新能源时代刚大爆发,各方资金抢布局是正常的,因为你不布局事关阿里!芯片巨头宣布重磅决定,外媒这是自讨苦吃如今,全球芯片行业不仅正在遭遇下行周期,而且还面临着美方出口限制新规的影响,很多芯片企业受到了重大影响,甚至一些芯片巨头开始调低营收预期裁员自救等。不管是英特尔高通英伟达等美企,还老詹30分9板4助,威少三双,湖人大胜掘金,詹姆斯411数据更新今天湖人主场迎战丹佛掘金队,詹姆斯出战36分钟20投13中狂砍30分9篮板4助攻2抢断,投篮手感相当丝滑,罚球4中3,三分球4投1中,命中率25稍显不足,戴维斯打了上半场7投4中得被指篡改经济数据文在寅前助手恐遭调查新华社北京12月18日电韩国审计部门官员17日说,正考虑是否对前总统文在寅时期的经济首席秘书洪长杓发起调查,以查明文在寅政府是否存在篡改经济数据的行为。这是2021年3月1日,韩国与近20家机构面对面,这场版权交易沙龙透露哪些信息?每经编辑赵博渊7月13日,由成都市文产办四川省投资基金业协会指导,成都市文化产业发展促进中心成都天府文创金融科技有限公司成都科技企业孵化器协会主办,成都市天府文创股权投资基金管理有3秒生成行程卡纪念版疯传!小心隐私信息可能泄露!据小强热线消息2022年12月13日0时通信行程卡正式下线一些有仪式感的网友赶在零点前截了个图,留作纪念(图片来源微博截图)与此同时一项名为行程卡纪念版的新型服务也随即在朋友圈流行电池供电不插线世界首款真无线电视将在CES亮相今天,初创科技公司Displace宣布,将在CES2023上,推出全球首款真正的无线电视。据悉,这款名叫DisplaceTV的电视没有电线或端口,采用电池进行供电,并有一个无线单元
冬奥会媒体餐厅火了!厨师是机器人,会炸薯条炒牛河煮馄饨本文转载自21世纪英文报,已获授权据新华社消息,近日北京冬奥会主媒体中心启用,位于地下的智慧餐厅则成了国内外媒体记者的网红打卡地。就餐人员在媒体餐厅体验智能送餐服务。新华社记者贺长游戏才能拯救世界!坦克世界全新活动上线有人说过,众多的电影题材当中,唯有灾难片能让人看完之后再审视一波人类自身。笔者看到这句话之后,想了一下,确实是如此!就从我自己最近看的一部电影,一部来自挪威的灾难影片北海浩劫。这部游戏王卡组分享水晶机巧!金童玉女东方四圣兽各位决斗者,大家好,这里是社长!今天要给各位决斗者介绍的卡组是水晶机巧!水晶机巧下级怪兽造型为金童玉女东方四圣兽。第一眼竟然看成了柚子凤凰碰到黄金国就打断他的腿!本期水晶机巧继承玻克雷汤普森要回归了,他会顶替谁出任首发呢说到克雷汤普森,大家应该都不会陌生他就是勇士的水花兄弟,有着单节37分的NBA单节得分记录,有着14个三分球的NBA单场三分球记录,不需要长时间持球联盟的顶级3D。克雷汤普森,19当年那些国产单机游戏,有生之年,还能看到它们的单机续作么?2008年那一年,上市的国产单机游戏新作只有10款,而前一年这个数字是25款。其实早在2002年以后,国产单机的数量就开始呈现出逐年下降的迹象,经典IP相继戛然而止,单机大厂们纷纷颠覆!这16个你认为健康的生活方式,其实真的没那么健康!饭后喝酸奶消食血脂高不能吃鸡蛋黄喝粥能养胃这些耳熟能详的养生建议,是不是感觉亲朋好友一直这么强调。现在告诉你这些你认为健康的生活方式,其实没你想得那么健康,坑了几辈人!健康饮食篇1东阿镇访古东阿镇访古秦鹏程冬天夜长太阳懒,白天值班到岗晚。闲暇之余奔东阿,寻访故居到衙前。狼溪河水泛清波,永济桥上有奇观。青石桥栏悄无声,石狮石猴活灵现。怀抱幼狮雄风在,史书刊载五百年。碧波处在淡水水域的海鸥岛,因外形轮廓相似而得名,其实并没有海鸥海鸥岛没有海鸥?是真的吗?真的,其实海鸥岛这一带的水域是淡水,离海边还有距离。之所以称之为海鸥岛,完全是因为从空中俯视,整个岛屿的样子就象一只展翅的海鸥。当然,也用不着遗憾,能历尽秋冬男生加分穿搭一件格子衬衫就能搞定hello!我是右右,好久不见呀!这次右右带来满满干货分享哦!男生衣橱就不是很单调白黑灰这些基础颜色,换来换去就是那些款式,没新意!过年回家想想相个好亲,一定要准备一件格子衬衫!让上古卷轴5天际速通纪录又被打破,比原先缩短1分钟上古卷轴5天际速通纪录又被打破了,这回是11122,比之前的纪录提升了一分钟。大型游戏的速通主要依靠经验,天际的通关标准是击败主线BOSS奥杜因。玩家nucular打破了上个月自己长征七号运载火箭已经完成总装,今年将先后发射两艘天舟货运飞船IT之家1月23日消息,根据中国航天科技集团消息,2022年我国将完成载人航天6次重大任务,发射长征七号长征五B长二F等运载火箭。目前,长七运载火箭已经完成总装,长二F遥十五运载火
友情链接:快好找快生活快百科快传网中准网文好找聚热点快软网