版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、2013年12月实训报告,实训小组成员:,易鑫 邹恒锐 祝安苇 王文珍,目录,表达式计算器简介,小组成员主要分工,主要代码及代码展示,成员代码讲解,程序截图展示,表达式计算器,计算器在当今社会的应用无处不在,大到政府、公司,小到家庭个人,计算器已经广泛应用到了社会的方方面面。 但是,常用计算器的功能不够丰富,比如我们手机上的计算器程序,只能进行简单的加减乘除的运算,而且要一个数字一个数字的进行输入,功能差而且效率低。表达式计算器这它可以任由你输入一串算式,其中可以包含加减乘除、括号、三角函数等各种运算符,而且括号可以多重嵌套,计算数据位双精度型,精确度较高。,小组分工,易鑫:括号匹配等函数的编
2、写,以及文档PPT制作。 邹恒锐:进行运算函数的编写,以及整体流程。 祝安苇:四则运算函数和atof函数的编写。 王文珍:差错检测函数的编写。,用到的数据结构类型: 顺序栈 typedef struct SElemType * base; SElemType * top; int stacksize; SqStack; InitStack(N);存数据 InitStack(S);存运算符和括号 typedef struct int *q; int *h; int size; pos; 存括号位置 q为前括号; h为后括号;,主要函数,input(SqStack 进行按位置的运算过程,设计思路,
3、输入表达式,判断正确性,分离符号与数字到栈S与栈N,并且判断符号是否出错,找括号并排序,否 输出错误信息,栈N数字存入数组num,按序进行运算,输出结果,除数为0 输出错误信息,截图,Status TellError_1(SqStack S) SqStack temp; InitStack(temp); int left=0; int right=0; SElemType n; while(S.top != S.base) Pop(S,n); if(n = () left+; if(n = ) right+; Push(temp,n); while(temp.top != temp.base)
4、 Pop(temp,n); Push(S,n); if(left=right) return TRUE; else return FALSE; /判断括号是否对齐,Status TellError_2(SqStack N) if(*(N.base)= |*(N.top-1)= |*(N.base)=.|*(N.top-1)=.) return ERROR; SElemType *p = N.base; while(p!=N.top-1) if(*p= /判断符号是否正确,Status TellError_3(SqStack N) if(StackEmpty(N) return ERROR; e
5、lse return OK; /判断是否不存在数字 Status TellError_4(char *a) int len = strlen(a); for(int i=0;ilen-1;i+) if(ai=1|ai=2|ai=3|ai=4|ai=5|ai=6|ai=7|ai=8|ai=9|ai=0) /判断数字接括号无运算符的错误,Status TellError_3(SqStack N) if(StackEmpty(N) return ERROR; else return OK; /判断是否不存在数字 Status TellError_4(char *a) int len = strlen
6、(a); for(int i=0;ilen-1;i+) if(ai=1|ai=2|ai=3|ai=4|ai=5|ai=6|ai=7|ai=8|ai=9|ai=0) /判断数字接括号无运算符的错误,Status atof(SqStack N,double *a) SElemType *p=N.base; char c100; int i=0; int j=0; while(p!=N.top) if(*p!= ) ci+=*p; else ci=0; aj+=atof(c); i=0; p+; if(p=N.top) ci=0; aj+=atof(c); i=0; return OK; /数字栈N
7、转换为数字存入数组a,double Operate_arith(double temp1,char symbol,double temp2) switch(symbol) case +: return temp1+temp2; case -: return temp1-temp2; case *: return temp1*temp2; case /: return temp1/temp2; case : return pow(temp1,temp2); /进行单个四则运算,Status findsymbol_q(int /找到N中的前括号,Status TellError_5(SqStack
8、 S,double *num) Int start = 0; while(S.base + start != S.top) int pos_c; if(*(S.base +start)=/) pos_c = GetChaPos(S,start); if(numpos_c=0) return ERROR; start+; return OK; ,double Operate(SqStack ,double Operate_pos(int start,int ,else if(S.base + start != S.base + end ,else double temp1; double tem
9、p2; int c_pos; c_pos = GetChaPos(S,start); temp1 = numc_pos; temp2 = numc_pos+1; numc_pos = Operate_arith(temp1,*(S.base+start),temp2); for(int i=c_pos+1;inum_len-1;i+) numi = numi+1; num_len-; Pop(S,start); sym_len-; int e,s; end-; s=start; return Operate_pos(s,end,S,num,num_len,sym_len); ,else if(
10、*(S.base+start)=) double temp1; double temp2; int c_pos; c_pos = GetChaPos(S,start); temp1 = numc_pos; temp2 = numc_pos+1; numc_pos = Operate_arith(temp1,*(S.base+start),temp2); for(int i=c_pos+1;inum_len-1;i+) numi = numi+1; num_len-; Pop(S,start); sym_len-; int e,s; end-; s=start; return Operate_pos(s,end,S,num,num_len,sym_len); /进行按位置的运算过程,else if(*(S.base+start)=) double temp1; double temp2; int c_pos; c_pos = GetChaPos(S,start); temp1 = numc_pos; temp2 = numc_pos+1; numc_pos = Operate_arith(temp1,*(S.base+start),temp2); for(int i=
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年AI客服训练师:用户情绪的AI识别与响应训练
- 医学教学查房的标准化评价指标
- 广西财经学院《运营管理》2024 - 2025 学年第一学期期末试卷
- 安全管理人员培训难点突破
- 医学影像云平台的多中心协同架构
- 《外贸单证缮制任务书》-学习任务五
- 医学影像PBL跨学科课程设计
- 医学基金会资助项目的利益冲突披露
- 湘西市重点中学2026届高一下生物期末综合测试试题含解析
- 变速器厂环保台账办法
- 对外汉语教学概论
- 2025川渝地区雄激素性秃发中医外治法应用专家共识解读 课件
- 2025-2026学年外研版高二英语上学期必刷常考题之完形填空
- 生猪饲料购销合同范本
- 2026中国医疗数据中心建设标准与云计算应用前景预测
- 计算机垃圾清理
- 监理质量评估报告(自来水)
- 机修钳工中级模拟练习题(含答案)
- 医院药事法律法规培训
- 2025年二级企业人力资源管理师考试(专业能力)经典试题及答案一
- 大型冷却塔结构设计规范详解
评论
0/150
提交评论