版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
******************************acou(cdr3ub-ei=h宀(opl---opl+-)(save1&s,doublenum);,voidpush2******************************acou(cdr3ub-ei=h宀(opl---opl+-)(save1&s,doublenum);,voidpush2同时也使我们掌握自顶而下的设计方法,将大问题进行模块化,领会运算符“+”入字符栈,操作数1入数字栈数字栈模拟计算器程序设计内容:设计一个程序来模拟一个简单的手持计算器。程序支持算术运算+、-、*、/、=、以及C(清除)、A(全清除)操作。程序运行时,显示一个窗口,等待用户输入,用户可以从键盘输入要计算的表达式,输入的表达式显示在窗口中,用户键入’='符号后,窗口显示出结果。选作内容如果用户输入的表达式不合法,可以判别出来并给出相应的错误提示。测试数据程序输入不少于5种不同的表达式进行测试。二•问题的分析级判断是应再次压入运算符,还是将数据和运算符弹出栈,在栈外进行运算,再将所得的结果压入栈,继续进行与计算,直至运算结束。数字栈运算符栈O数字栈字符栈+字符栈("cls");〃进行全清除gotopart1;}//gotsion[i])||expression[i]=='.'){usreaasecasecase宀("cls");〃进行全清除gotopart1;}//gotsion[i])||expression[i]=='.'){usreaasecasecase宀swifchd(o->e^的栈。是用来进行计算的,并将计算的结果压入栈。以便下首先提示1数栈字符栈运算符“一”入运算符栈顶比较后,将运算符“一”入运算符栈操作数2入操作数栈,运算符“*入运算符栈顶比较后压入运算符栈将操作数3压入操作数栈当扫描到=号时,操作数3和2出栈运算符*出栈,进行运算,运算结果入操作数栈操作数6和2出栈,运算符“一”出栈,进行运算,运算结果入操作数栈13数字栈字符栈J*—1字符栈数字栈顶为空,运算结束。主函数voidmain(),首先提示此程序emp[j]='\0';c=atof(temp);//cha符,在结构体内定义整型的栈顶元素top,顶为空,运算结束。主函数voidmain(),首先提示此程序emp[j]='\0';c=atof(temp);//cha符,在结构体内定义整型的栈顶元素top,和存放数据及运算符的=h(^>^s>^宀infca-cu-afor二noharo字符栈运算符栈空,操作数栈中运算为运算结果数字栈设置两个栈,运算数栈和运算符栈,然后,自左向右扫描表达式,遇操作数进操作数栈,遇作符栈;若当前操作符小于等于运算符栈顶,次栈顶出栈,同时操作数栈顶也出栈,形成一个运算,并将运算的结果压入数字栈。流程图是否为“=”号你的选择:";cin>>choice;while(choicmpty(save2s)//判断运算符栈是否为空你的选择:";cin>>choice;while(choicmpty(save2s)//判断运算符栈是否为空{if(s.于查询。根据C++课程所学的概念、理论和方法,按照C++程序p)、/slopOPHS宀.n-slor-seB)}COEN是否为运算符YY字符栈是否为空NNY是否比字符栈顶优先级高uJN11C入字符栈数字栈顶元素和次栈顶元素出栈,运算符栈顶出栈,运算结果入数字栈r类型进行转换push1(stack1,c);}else{i为后者,运算完后再将所得的结果压入栈顶,再次进行判断,直至栈r类型进行转换push1(stack1,c);}else{i为后者,运算完后再将所得的结果压入栈顶,再次进行判断,直至栈num);voidpop2(save2&s,char&op)(save1&s,doublenum);,voidpush2三•算法的设计2、设计成员函数及数据。空,若栈顶为-1则空则返回1表示真,否则返回0表示假。压入栈。若所存储的内容已经数组的最大限度,则显示“栈已满”,否则将数字和字符压入栈顶。否则将栈顶元素分别赋值给num和op。分别判断栈内和栈外运算符的优先级。算。当遇到同级运算符时在时,先进行栈内运算。通过返回值的大小选择进行在哪里的哪种运算。一次的运算。然后输入表达式。分别清空存放数字和字符的栈。是用来进行计算的,并将计算的结果压入栈。以便下首先提示输入表达式,并在表达式之后加上=,总体用一个while语句,以“=”结束。查找,若读入的字符为数字,则继续判断下一个字符,直到下个字符不是数字或者断是将栈外的运算符压入栈还是将站内的数据及运算符弹出栈进行运算。若为后者,运算完后再将所得的行多个数字的计算,想到用for循环解决输入数字上的问题,但只(save1&s,doublenum);,voidpush2栈外的运算符压入栈还是将站内的数据及运算符弹出栈进行运算。若数栈操作数6和2出栈,运算符“一”出栈,进行运算,运算结果入行多个数字的计算,想到用for循环解决输入数字上的问题,但只(save1&s,doublenum);,voidpush2栈外的运算符压入栈还是将站内的数据及运算符弹出栈进行运算。若数栈操作数6和2出栈,运算符“一”出栈,进行运算,运算结果入属性判断运算符栈是否为空将数据压入数字栈存储数字存储运算符判断数字栈是否为空属性和方法定义类名类型成员名描述成员类别将运算符压入运算符栈ut(charop)分别判断栈内和栈外运算符的优先级。在栈内save1&s,double&num)〃将栈顶的数据元素取出ut(charop)分别判断栈内和栈外运算符的优先级。在栈内save1&s,double&num)〃将栈顶的数据元素取出,把计算的结果压入栈,以便下一次运算。(5)解决了多个多个数识发现到自己再学习上的存在的不足,再以后的生活学习中要多加练存放在num中在栈内优先级的判断栈外优先级的判断进行计算并将所得的结果压入栈顶主要进行运算的函数用户手册程序运行时,首先显示此程序设计者的信息。提示欢迎使用计算机请输入表达式(输完之后请加=),然后输入所要进行计算的表达式,进行计算。计算结束后提示:继续计算吗?,输入表示结束计算,并显示谢谢使用!输入y表示同意继续计算,输入nA时退出,选择你所需的形式,进行计算。(1)刚开始只能进行两个数字的运算,不能进行多个数字的计算,想到用for循环解决输入数字上的问题,但只能进行一种运算,达不到多重运算的要求。(2)想到在用for循环解决次问题,但改来改去都弄不好,最后经老师提示,运用栈的知识解决问题。(3)开始对栈一点都不了解,全部程序都需要重新写,完全没有一点头绪,把课本关于栈的部分看了好多遍,和同学讨论,大概知道栈是什么样的了,开始写我的程序了。(4)本来只是考虑到建立一个数字栈的,但这样运算符的优先级不能进行,得不出正确的结果,经同学(5)解决了多个多个数和多个运算符计算的问题,又想到了可不可以进行多次运计算的目的。说明:此程序清除的功能还不能实现,只能进行全清除,修改了好长时间也未能找到一个好方法解决。(save2&s,charop);分别将数字和字符压入栈。若要从什么地方下手,感觉写这个也不行写那个不行,但经过时间的磨炼,不仅进一步巩固、加深学生所学专业课程《(save2&s,charop);分别将数字和字符压入栈。若要从什么地方下手,感觉写这个也不行写那个不行,但经过时间的磨炼,不仅进一步巩固、加深学生所学专业课程《C++语言教程》的到同级运算符时在时,先进行栈内运算。通过返回值的大小选择进行经验与体会此次C++课程设计,在指导教师的精心教导下,我们学会了如何用C++编写一个简单的应用程序。首先要对程序的设计要求有一个比较明确的认识,然后系统分析与系统设计,最后询。根据C++课程所学的概念、理论和方法,按照C++程序设计的基本步骤,设计出一个适当规模的程序;进一步加深对C++语言的理解和掌握。理论联系实际,加深和巩固所学的理论知识,提高实践能力和计算机的综合运用能力。我们编写程序的过程是辛苦课程设计是培养学生综合运用所学知识、发现、提出、分析和解决实际问题,锻炼实践能力的重要环节,是对学生实际工作能力的具体训练和考察过程随着科学技术发展的日新日异,C++已经成为当今计算机应用中空前活跃的领域,在生活和学习中可以说得是无处不在。因此作为二十一世纪的大学来说掌握C++软件开发技术是十分重要的。此次课程设计使我们将理论教学中涉及到的知识点贯穿起来,控制结构、数据结构作一比较和总结,结合设计题目进行综合性应用,贯通的程度。对不同的数据类型、程序对所学知识达到融会通过课程设计,使我们在各方面的能力应该得到锻炼,不仅进一步巩固、加深学生所学专业课程《C++语言教程》的基本理论知识,理论联系实际,进一步培养学生综合分析问题,解决问题的能力。而且全面考核我们所掌握的基本理论知识及其实际业务能力,从而达到提高学生素质的C++语言编写调试应用系统程析,理清思路,并给出相应的数学模型。同时也使我们掌握自顶而下的设计方法,将大问题进行模块化,领会结构化程序设计的方法。熟练掌握C++语言的基本语法,灵活运用各种数据类型。进一步掌握在集成环境下如何调试程序(单步调这次课程设计历时二周,通过这次设计让我对C++有了更新的认识,认识到了它的实际应用价值,可以及大的减少工作量,节省人力物力,同时也让我认识发现到自己再学习上的存在的不足,再以后的生活学习中要多加练习编程,力求改变自己的不足。课程设计学习让我学到了很多,学会了用所学习的知识去解决实际问题,一开始拿到题目,根本就不知道要从什么地方下手,感觉写这个也不行写那个不行,但经过时间的磨练以及和同学之间的交流程序时遇到了很多问题,程序出错自己无法修改,后来经过学长的指导和同学以及指导老师的帮助大部分功能不懂的,通过这次的学习都可以一一解决,但发现自己也有很多的不足,很多以前学过的知识点都不记得了,而且无法将它们联系在一起,除了课本上的知识还有好多跟本课程有关的通过这次的学习,我知道自己不仅仅要把课本上的东西学好,相关的东西,让自己的知识面更广,同时我也更深刻的认识到了任何事都不可能一个人独立帮助是非常重要的。知识点都不懂,所以还要了解完成,同学和老师的[1]郑莉等编著《C++语言程序设计(第三版)》北京:清华大学出版社,operate);count(b,operate,a);〃月第1,operate);count(b,operate,a);〃月第1版。[11]胡学钢等《数据结构算法设计指导》北京:清华emp[j]='\0';c=atof(temp);//chaty(save2s);voidpush1(save1&s,d[4]吴乃陵等编著《C++程序设计》北京:高等教育出版社[7]李龙澍《C++程序设计实训教程》北京:清华大学出版社源程序:{{}{}n"coutvv"\t*******************calculator(){};//空的构造函数boolstan"coutvv"\t*******************calculator(){};//空的构造函数boolsta定的设计题目,如何进行分析,理清思路,并给出相应的数学模型。=h(^>^s>^宀infca-cu-afor二noharo}}{}{}{}{}}中{tack1,a);pop1(stack1,b);pop2(s和多个运算符计算的问题,又想到了可不可以进行多次运算,当想结,“tack1,a);pop1(stack1,b);pop2(s和多个运算符计算的问题,又想到了可不可以进行多次运算,当想结,“*”返回3,当遇到“+”或“”和“*”或“/”同时存在时;coutvv"\t****专业班级:08网工(1)班\n"{}}将栈顶的运算符取出,存放在op中{入操作数栈数字栈运算符栈O运算符“+”入运算符栈顶比较后,将入操作数栈数字栈运算符栈O运算符“+”入运算符栈顶比较后,将2,5出栈运算,并将结果入数字栈2.5数字栈字符栈+字符栈运和多个运算符计算的问题,又想到了可不可以进行多次运算,当想结num);voidpop2(save2&s,char&op)sum」八^目+八八八-sumua+b八八匕八b=/Bn斗^^淳俞>>^f(OPHH-*---OPHHo=h宀(opl---_opl+-)V-八/柯游孚^>^>雪(4八if(OPHH-*---OPHH2八---_+-)^>^s>^宀二mmB>-AAO-AAENDURAA-BRoublenum)//将数据压入数字栈{if(s.top==-oublenum)//将数据压入数字栈{if(s.top==-使用本计算器--------"<<endl;c
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 服装水洗工安全实践考核试卷含答案
- 多工序数控机床操作调整工岗前实操评优考核试卷含答案
- 电线电缆检验员安全意识模拟考核试卷含答案
- 黄酒发酵工班组考核知识考核试卷含答案
- 电力生产企业工作票的使用规定
- 挖掘铲运和桩工机械司机岗前技术创新考核试卷含答案
- 蒸吸工基础能力水平考核试卷含答案
- 广播电视数据员岗前安全文明考核试卷含答案
- 公司法律法规培训内容
- 无人机在考古勘探中的应用分析方案
- 水工建筑物与堰槽测流规范-修订说明
- 电气设备吊装与运输安全手册
- 汽车站实名制工作制度
- 2025~2026学年陕西省西安市滨河学校九年级上学期第一次月考物理试卷
- 长江存储在线测评题库
- 大型展会现场安全管理手册
- T∕ZZB 0446-2018 风力发电用电缆固定头
- 电仪部安全培训内容课件
- 2025年优抚医院招聘面试题集及解析
- 2025至2030年中国陶瓷纤维纸行业市场发展现状及投资方向研究报告
- DB42∕T 1714-2021 湖北省海绵城市规划设计规程
评论
0/150
提交评论