下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
简易四则运算计算器计算机工具地历史而言,中国古代最早采用地一种计算工具叫筹策,又叫做算筹,这种算筹多用竹子制成,也有用木头,兽骨充当材料的,大约270枚一束,放在布袋里可随身携带。直到今天仍在使用的住算盘,是中国古代计算工具领域中的另一项发明明代时的住算盘已经与现代的住算盘几乎相同。世纪初,西方国家的计算工具有了较大的发展。英国数学家纳尔发现了“纳皮尔算筹”;英国牧师奥却德发明了圆柱形对数计算尺,这种计算尺不仅能做加减乘涂,乘方和开方运算,甚至可以计算三角函数,指数函数和对数函数。这些计算工具不仅带动了计算的发展,也为现代计算器发展尊定了良好的基础,成为现代社会应用广泛的计算工具,如手机,操作系统上附带的多功能计算器。项目设计目的掌握模块的划分;掌握结构体定义;掌握栈的操作;掌握函数的定义;掌握栈的基本操作;掌握VC的基本绘图库;掌握鼠标的响应操作;目设计内容设计一个含有界面的计算器,输入一个包含括号的表达式,使用栈数据类型实现整数的四则运算操作,开方运算。项目设计要求根据分析,系统要求实现以下几点基本功能:可通过按钮输入数字、运算符;能通过按钮实现退格、清除功能;实现加、减、乘、除、开方运算功能;实现括号运算;显示运算结果;良好的交互界面。项目详细设计功能模块图根据系统功能要求,主要含有四大模块,分别是计算器界面设计模块、计算器按键控制模块、四则混合运算模块、计算器记忆处理模块。计算器界面设计模块:调用 VC图形系统函数和字符函数画出计算器的界面,包括 24个按钮和一个文本输入框。计算机按键控制模块:计算器通过键盘按键值的判断,执行相应的操作,如接收数字输入等。计算器计算处理模块。计算处理模块主要完成可以包括括号的表达式运算,运算包括加,减,乘,除、开方。计算处理模块在按键控制模块中被调用执行。处理模块是通过栈来实现的,分别定义了两个顺序栈,一个用来存放操作符栈,一个用来存放操作数栈。计算器记忆处理模块。记忆处理模块使计算其具有记忆功能。记忆当前输入的表达式,给出一个最后的运算结果。可以清楚部分或全部记忆的值。图简易计算器模块图数据结构该系统主要的数据有操作符集,用一维数组存放;存放操作符的优先级关系集,操作符的优先级关系用一个二维数组来体现;另外定义两个栈,一个用来存放操作符,一个用来存放操作数。charops[7]={'+','-','*','/','(',')','#'};intcmp[7][7]={{2,2,1,1,1,2,2},{2,2,1,1,1,2,2},{2,2,2,2,1,2,2},{2,2,2,2,1,2,2},{1,1,1,1,1,3,0},{2,2,2,2,0,2,2},{1,1,1,1,1,0,3}};typedefstruct{charelem[Stack_Size];inttop;}SeqStack;typedefstruct{intelem[Stack_Size];inttop;}SeqStackOperand;系统流程图图 系统流程图主要算法比较运算符优先级:程序里的涉及到的运算符有 7个,分别是‘ +’,‘-’,‘*’,‘/’,‘(’,‘)’,‘#’,它们之间的优先级关系用一个二维数组来存放,intcmp[7][7]={{2,2,1,1,1,2,2},{2,2,1,1,1,2,2},{2,2,2,2,1,2,2},{2,2,2,2,1,2,2},{1,1,1,1,1,3,0},{2,2,2,2,0,2,2},{1,1,1,1,1,0,3}};其中3代表‘=’,2代表‘>’,1代表‘<’,0代表不可比。charCompare(charch1,charch2){inti,m,n;charpri;intpriority;for(i=0;i<7;i++);outtextxy(310,170,"-");outtextxy(370,170,"sqrt");outtextxy(440,170,"<-");outtextxy(50,235,"3");outtextxy(115,235,"2");outtextxy(180,235,"1");outtextxy(245,235,"0");outtextxy(310,235,"*");outtextxy(375,235,"/");outtextxy(440,235,"=");按键响应操作当用户通过鼠标左键按下‘0’,‘1’,‘2’,‘3’,‘4’,‘5’,‘6’,‘7’,‘8’,‘9’,‘.’,‘+’,‘—’,‘ *’,‘/’,‘(’,‘)’,‘ =’,这些键时,字符按点击顺序在输出文本框输出;当用户点击‘<—’,表示退一格操作;当用户点击‘=’,在文本块输出表达式结果;当用户按下‘C’时,文本框清空。MOUSEMSGm;m=GetMouseMsg();;outtextxy(25,40,string);}if>290&&<=330&&>155&&<195){strcat(string,"-");setcolor(BLACK);outtextxy(25,40,string);}if>355&&<=395&&>155&&<195),n);string[n-1]='\0';bar(15,15,480,70);setcolor(BLACK);outtextxy(25,40,string);}2.operator和operand分别为运算符栈和运算数栈,OPS为运算符集合 */intExpEvaluation(char*str){inta,b,v,temp;charch,op;inti=0;SeqStackoperatordata;SeqStackOperandoperand;InitStack(&operatordata);InitStacknOperand(&operand);Push(&operatordata,'#');ch=*str++;while(ch!='#'||GetTop(&operatordata)!='#'){if(!Isoperator(ch)){temp=ch-'0';//将字符转换为十进制数ch=*str++;i++;while(!Isoperator(ch)){temp=temp*10+ch-'0';//将逐个读入运算数的各位转化为十进制数ch=*str++;i++;}PushOperand(&operand,temp);}else{switch(Compare(GetTop(&operatordata),ch)){case'<':Push(&operatordata,ch);ch=*str++;i++;break;case'=':Pop(&operatordata,&op);ch=*str++;i++;break;case'>':Pop(&operatordata,&op);PopOperand(&operand,&b);PopOperand(&operand,&a);v=Execute(a,op,b);//对a和b进行op运算PushOp
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024年度智能工厂设计与实施合同
- 二零二四年度国际货物买卖合同标的详细说明
- 2024年度科研仪器购置与技术服务合同
- 2024年度电气预埋安装工程进度付款合同
- 2024年度人力资源服务合同标的、格式与条款
- 2024年度煤炭质量检验服务合同
- 2024版标准租赁物购买合同
- 2024年度智能物流系统开发合同标的及服务细节
- 二零二四年度拍卖师聘请与管理合同
- 2024年度软件定制开发及运维服务合同
- 2023年中国石化招聘笔试真题
- 江苏省建筑与装饰工程计价定额(2014)电子表格版
- 幼儿园中班数学:《有趣的图形》 PPT课件
- (完整版)五年级数学思维拓展课程整体设计
- 精装修验房最全表格
- CRRT实施期间抗菌药物剂量调整
- 禾本科及莎草科园林植物术语图解
- 附件1:中央电大护理专业本科通科实习出科考核病历
- 高中化学趣味知识竞赛(课堂PPT)
- 卫生部城社区卫生服务中心基本标准
- 2021年考研英语真题(含答案解析).doc
评论
0/150
提交评论