游戏电视苹果数码历史美丽
投稿投诉
美丽时装
彩妆资讯
历史明星
乐活安卓
数码常识
驾车健康
苹果问答
网络发型
电视车载
室内电影
游戏科学
音乐整形

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
  加减乘除外加括号嵌套,常规的字符串处理复杂度太高了。想要完美解决,可能相当于要做一个小型的编译器了。
  那要如何来解决呢?我们下节继续。

京东居家开学季线上首发松下致儒导光板护眼灯全方位守护孩子用眼近日,全国多地陆续进入开学季。为了给学生们打造更加优质的学习、生活环境,京东居家开启2023开学季活动,携手松下、LINSYKIDS、黑白调学习时光、水星家纺等众多品牌,带来护……ChatGPT竟写出毁灭人类计划书,还给出相应Python代羿阁发自凹非寺量子位公众号QbitAI网红AIChatGPT,又被网友们玩出了新花样!这次,在一位工程师的诱导下,ChatGPT竟写出了毁灭人类的计划书。……01岁的宝宝奶量有多少?你是否在过度喂养?宝宝从一出生开始就开启了吃喝拉撒的生活,对于新手爸妈最头疼的可能就是宝宝吃的问题了。因为宝宝不会说话,不知道宝宝是吃饱了还是没吃饱。一方面担心没吃饱营养不良,另一方面又担心吃多……这几种食物对甲状腺结节不友好,即使爱吃也要管住嘴甲状腺是人体一个很重要的内分泌器官,对人体的新陈代谢和生长发育起到促进作用,情绪对甲状腺的影响是非常大的,有很多人长期情绪不畅,焦虑,有事自己憋着,导致气机郁滞,从而长了甲状腺……客家人的世界影响力,你想象不到近代以来,客家人总是活跃于中国的政治舞台金庸在小说中塑造了不少反清复明的武侠人物,结局是归隐南洋的渤泥国。这并非完全是金庸的虚构,历史上在南洋岛屿上确实曾有华人理想国,创……李白死于酒精中毒唐代大诗人李白作为唐代一哥,时代顶流,在盛唐拥有众多的粉丝,放眼大唐的天下,没有谁不认识李白。然而就这么一个家喻户晓的超级大明星,竟然在唐肃宗上元三年的一个夜里死去了,且死因不……中共最早期的中央政府组织中国共产党最早成立的政府组织,是中华苏维埃共和国中央政府,其组织机构是:主席:毛泽东副主席:项英张国焘主席团委员:毛泽东项英张国焘朱德张闻天博古周恩来瞿秋白刘……迄今为止选美历史上的最高排名巴拉圭环球小姐巴拉圭超模NadiaFerreiraNadiaFerreira,1999年5月10日出生于巴拉圭的比亚里卡,身高1米75,是巴拉圭的时尚模特和选美超模。早在2015……中国最后一个太监是谁,有后代吗?中国最后一个太监,是出生于天津静海县西双塘村的孙耀庭老人,这里同时也是清末著名的大太监小德张的故乡,孙老人出生那年正值光绪二十八年,晚清已步入灭亡的倒计时。和普通百姓一样……东风不与周郎便,铜雀春深锁二乔今天天来给大家介绍一下小乔这个英雄。是周瑜的妻子,在历史上也是沉鱼落雁之容,闭月羞花之貌。在王者荣耀这个游戏里面也是非常的厉害,先来简单的介绍一下她的技能。被动:被动:小……NBA著名的死亡缠绕小卡狗哥只是小场面,乔丹被一群人缠绕NBA中有一个著名的词,叫做死亡缠绕,指的是防守球员紧贴进攻球员,用尽一切办法,在不犯规的前提下进行防守干扰,就好像藤蔓缠绕住对方一样。今天就一起来看看NBA中那些著名的……百年风华正茂,英雄出少年,看抗日战争时期的六大抗日小英雄胸怀千秋伟业,百年恰是风华正茂。今天是六一儿童节,中国有句老话:自古英雄出少年。在抗日救亡的战争时期,中华民族同样涌现出了一批少年英雄。在国家和民族危亡的时刻,他们跟父辈一起,……
黄永胜说徐向前曾被俘虏,不然哪来这么多钱财,真实情况是怎样的徐向前一辈子打了很多仗,最危险的一次就是率领的西路军作战,最终数万战士只活下几千人,徐向前本身也是一路乞讨才回到组织身边。一位共和国的统帅居然弄到这种程度,这在我党历史上……偷偷藏不住校服路透照爆光,赵露思元气满满,十足的小甜妹8月28日,由赵露思陈哲远主演的《偷偷藏不住》校服路透照曝光。赵露思饰演元气女高中生桑稚,陈哲远饰演腹黑帅哥段嘉许。赵露思齐刘海加高马尾元气十足,隔着屏幕都能感受到甜妹的……春日里的中国梅景早登场,待与君相见央广网大连3月23日消息(见习记者王松)走进大连旅顺樱花园(原二三景区),烂漫花海还未开放,却有一股清香扑面而来,追随花香转入梅园,原来这里的梅花已悄然盛开。近日,记者从园区了……1881年,清政府在英国购了一块地,面积16。7平,上面立了2016年,在一个风和日丽的下午,英国的一个学习摄影的中国留学生带着自己的朋友,打算去学校附近拍摄一些风景照。在他们行进的路上,经过了一片墓地,墓地葬着的人基本上都是英国……龙说夜郎丨汉阙出现在墓葬,不仅关乎身份,还有更深层的寓意以文物立足,以史料为盾,虎视牂牁,鹰瞵万峰,解读历史。贵州省金沙县后山乡汉墓的墓室东侧前端,出土一块伏羲女娲画像石。在墓室西侧对称处,同样出土一块正方形画像石,长宽……化工装备大发展5432022年湖北荆州造全国最大6。35米口科技兴国装备强国看化工装备十年大发展赞盛世中华繁荣富强(根据网络资讯收集整理,欢迎讨论补充指正)我国最大的大重型高端阀门制造基地蝶阀也叫翻板阀,是……鸦片战争,清政府到底输在了哪?文秦慕风说到世界战争,鸦片战争是一个绕不过去的坎。鸦片战争,甚至改变了世界的格局,也可以说对于推翻中国几千年的封建帝制,起着推波助澜的作用!但是,战争总是残酷的,不……DPU后,英伟达又搞了个QPU来源:内容来自公众号NVIDIA英伟达,谢谢。量子处理单元(QPU)是量子计算机的大脑。它利用电子或光子等粒子的行为来进行特定类型的计算,其速度远快于当今计算机的处理器。……历代秦王中,这5位贡献最大秦襄公(?公元前766年)秦国被正式列为诸侯国的第一任国君。公元前776年秦襄公迁都汧邑(今陕西陇县东南)公元前771年护送周平王东迁,封为诸侯。秦一方面加强与周王室的关系另一……鱼是人类祖先前几天,有一条新闻惊呆了我们,若是小道消息,我们一笑置之,可偏偏是科学院的研究员公布的,这不信都不行了,经过N年的研究,发现我们搞错了祖先,一直以为人类是猴子演化过来,结果发现……欧冠巴塞罗那VS国际米兰,诺坎普重振雄风?巴塞罗那VS国际米兰巴萨对阵国米的这几个关键点,你可要注意喽。首先,在巴萨主席拉波尔塔公开支持欧超联赛以后,巴萨在欧冠赛场上的判罚就没占到什么便宜。从之前对阵拜仁跟……药企争相布局医美是热点or大趋所势?除了地产公司,一大批药企也来分医美一杯羹了,你们准备好了吗?那么,到底哪些药企来了?他们进入医美行业市场策略如何?财务表现如何?面临的问题又有哪些?请看《泛美研究》……
友情链接:易事利快生活快传网聚热点七猫云快好知快百科中准网快好找文好找中准网快软网