




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
数据结构课程设计姓名:王宗敏班级:软件102111班学号:10211112目录:11需求分析……………21概要设计……………3□详细设计……………41调试分析……………51用户使用说明………61测试结果……………利用栈求表达式的值,可供小学生作业,并能给出分数。需求分析任务:通过此系统可以实现如下功能:此系统能够输入一个表达式,并计算该表达式的值。可以根据计算结果给出分数。能供小学生进行简单的四则运算,此外这里特别强调括号的匹配!要求:根据以上功能说明,设计运算信息,堆栈的存储结构,设计程序完成功能;概要设计在此说明每个部分的算法设计说明(可以是描述算法的流程图),每个程序中使用的存储结构设计说明(如果指定存储结构请写出该存储结构的定义)。详细代码#include"string.h"#include"stdio.h"#include"conio.h"#definemaxsize100#include"ctype.h"typedefchardatatype;typedefstruct{datatypestack[maxsize];inttop;}seqstack;voidstackinitiate(seqstack*s)s->top=0;}intstacknotempty(seqstacks){if(s.top<=0)return0;elsereturn1;}intstackpush(seqstack*s,datatypex){if(s->top>=maxsize){printf("堆栈已满无法插入!\n");return0;}else{s->stack[s->top]=x;s->top++;return1;}}intstackpop(seqstack*s,datatype*d){if(s->top<=0){printf("堆栈已空无数据元素出栈!\n");return0;}else{s->top--;*d=s->stack[s->top];return1;}}intstacktop(seqstacks,datatype*d){if(s.top<=0){printf("堆栈已空!\n");return0;}else{*d=s.stack[s.top-1];return1;}}voidexpiscorrect(charexp[],intn){seqstackmystack;inti;charc;stackinitiate(&mystack);for(i=0;i<n;i++){if(exp[i]=='(')stackpush(&mystack,exp[i]);elseif((exp[i]==')')&&stacknotempty(mystack)&&stacktop(mystack,&c)&&c=='(')stackpop(&mystack,&c);elseif((exp[i]==')')&&!stacknotempty(mystack)){printf("右括号多余左括号!\n");return;}}if(stacknotempty(mystack))printf("左括号多余右括号!\n");elseprintf("左右括号匹配正确!\n");}staticfloatans[50];staticintcount=0;staticintright=0;staticfloatyourresult[50];intpostexp(charexp[])seqstackmystack;datatypex1,x2;inti;intj=0,ls;inttop=0;intisFalse=0;intisRead=0;charoprator='';stackinitiate(&mystack);for(i=0;exp[i]!='#';i++){if(isdigit(exp[i])){top=(int)(exp[i]-48);top*=10;}else{if(isRead==0){isRead++;top/=10;stackpush(&mystack,top);oprator=exp[i];top=0;}elseif(isRead==1){stackpush(&mystack,top);if(isRead==1){isRead++;stackpop(&mystack,&x2);}stackpop(&mystack,&x1);ls=x1;x1=x2;x2=ls;x1/=10;switch(oprator){case'+':{x1+=x2;break;}case'-':{x1-=x2;break;}case'*':{x1*=x2;break;}case'/':{if(x2==0.0){printf("除数为0错!\n");isFalse=1;}else{x1/=x2;}};break;}oprator=exp[i];x2=x1;top=0;}}}if(isRead==0){isRead++;top/=10;stackpush(&mystack,top);oprator=exp[i];top=0;}elseif(isRead==1){stackpush(&mystack,top);if(isRead==1){isRead++;stackpop(&mystack,&x2);}stackpop(&mystack,&x1);ls=x1;x1=x2;x2=ls;x1/=10;switch(oprator){case'+':{x1+=x2;break;}case'-':{x1-=x2;break;}case'*':{x1*=x2;break;}case'/':{if(x2==0.0){printf("除数为0错!\n");isFalse=1;}else{x1/=x2;}};break;}oprator=exp[i];x2=x1;top=0;}if(isFalse==1)return-1;ans[count]=x1;printf("请输入您计算的结果:”);scanf("%f",&yourresult[count]);if(ans[count]==yourresult[count])right++;count++;getchar();}intmain(){inti=0;charexp[100];printf("———计算表达式———\n使用说明:\n");printf("1.请输入要计算的表达式,以#结尾,例如1+2#\n");printf("2.结束计算请输入符号$\n");printf("3.在表达式中可以运算括号,中括号口和大括号{}统一使用小括号代替()!\n");printf("4.程序输入格式错误时,将会自动结束程序,请注意格式正确!\n");printf("请输入要计算的表达式,以#结尾。结束程序输入$。\n");//c=getchar();scanf("%s",exp);while(exp[i]!='$'){expiscorrect(&exp,i);postexp(&exp);printf(" \n");printf("请输入下一个表达式,以#结尾。结束程序输入$。\n");scanf("%s",exp);//c=getchar();}printf("\n\n ******您的成绩单*******也)printf(" \n");printf("序号 正确答案 您的答案结论\n");for(i=0;i<count;i++){printf("表达式%d %.2f %.2f %s\n",i+1,ans[i],yourresult[i],ans[i]==yourresult[i]?"正确!":"错误!");}printf(" \n");printf("解答题目总共为%d道,其中\n",count);printf("正确解答%d道题,错误解答%4道题。也 *****最后得分为%d分!*****\n",right,count-right,right*100/count);printf(" \n");getchar();getchar();return0;}.计算表达.式3.在表达民让尊的表达式,.需G至酷号以随吉尾,例如工+压束中自尾&嘉就大括号<〉统-'使用小括号代替C聿输鬻意格式正确I以*结尾11.3.|i]Ant:方算的表达式,‘法刀口.在.
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年网络智能直流电源柜系统项目可行性研究报告
- 香水喷射器、粉扑及粉拍企业制定与实施新质生产力战略研究报告
- 轻小型起重设备配套件行业跨境出海战略研究报告
- 硅钢涂料行业直播电商战略研究报告
- 硅钢薄板行业跨境出海战略研究报告
- 钢铁制窗护网行业直播电商战略研究报告
- 饼干喷淋机行业直播电商战略研究报告
- 金属制地名牌、号码及类似标志行业直播电商战略研究报告
- 铁丝及铁丝网企业制定与实施新质生产力战略研究报告
- 2025年电解多维水溶项目可行性研究报告
- GB/T 26354-2025旅游信息咨询服务
- 2025年中国工业X射线检测设备行业市场集中度、企业竞争格局分析报告-智研咨询发布
- 重难点05 涉及二次函数的图形变化类问题与二次函数有关的创新类问题(2种命题预测+77种题型汇-总+专题训练+3种解题方法)(解析版)
- 第15课《青春之光》课件-2024-2025学年统编版语文七年级下册
- (正式版)HGT 22820-2024 化工安全仪表系统工程设计规范
- 双心治疗课件
- 高考写作指导:作文训练之语言的提升
- 幼儿园大班数学:《层级分类》 课件
- 工程(产品)交付后顾客满意度调查表
- 项目定标审批表
- 弱电安装安全安全技术交底
评论
0/150
提交评论