




下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
简易四则运算计算器计算机工具地历史而言,中国古代最早采用地一种计算工具叫筹策,又叫做算筹,这种算筹多用竹子制成,也有用木头,兽骨充当材料的,大约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. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025-2030中国汽艇市场营销战略与投资盈利预测研究报告
- 2025-2030中国污染监测系统行业市场深度调研及竞争格局与投资研究报告
- 2025-2030中国水醇凝胶行业市场现状供需分析及投资评估规划分析研究报告
- 专升本思政理论体系试题及答案
- 2025-2030中国水族箱行业市场深度调研及价值评估与投资前景研究报告
- 2025-2030中国水处理设备行业市场发展分析及发展趋势与投资研究报告
- 2025-2030中国氰甲烷市场深度调查与未来前景预测分析研究报告
- 大数据时代的图书管理员试题及答案
- 2025-2030中国气泡水市场投资效益与供需平衡趋势研究报告
- 2025-2030中国气体分析仪器行业市场发展分析及发展趋势与投资研究报告
- (二模)长春市2025届高三质量监测(二)语文试卷(含答案)
- 2025-2030年中国铸造生铁市场发展现状及前景趋势分析报告
- 课件-2025年春季学期 形势与政策 第一讲-加快建设社会主义文化强国9
- 《智能家居培训教程》课件
- 多元艺术融合创造性舞蹈知到智慧树章节测试课后答案2024年秋南京艺术学院
- 病历的书写基本规范培训讲座课件
- 2024-2030年中国矿热炉用开堵眼机行业发展状况规划分析报告
- 【MOOC】电子线路设计、测试与实验(一)-华中科技大学 中国大学慕课MOOC答案
- 新增供应商准入制度
- 制造业数字化车间与智能化生产流程实施方案
- 水泥稳定碎石在填筑路面基层中的应用
评论
0/150
提交评论