




如果您无法下载资料,请参考说明:
1、部分资料下载需要金币,请确保您的账户上有足够的金币
2、已购买过的文档,再次下载不重复扣费
3、资料包下载后请先用软件解压,在使用对应软件打开
数据结构实验二报告 第一篇:数据结构实验二报告数据结构实验二报告——简单计算器姓名:王稀宾班级:06111106学号:1120111699一实验目的按照四则运算加、减、乘、除、幂(^)和括号的优先关系和惯例,编写计算器程序。二实验内容要求:从键盘输入一个完整的表达式,以回车作为表达式输入结束的标志。输入表达式中的数值均为大于等于零的整数。中间的计算过程如果出现小数也只取整。三程序设计程序模块:1输入模块,输入多项式;2计算模块,根据输入内容,判断分析,计算出结果;3输出模块,输出计算结果。定义结构创建结点:typedefstruct{doubledata[50];inttop;}OPND_Stack;//运算符结构体typedefstruct{chardata[50];inttop;}OPTR_Stack;主函数部分:voidmain(){chara[80];intm;charb[80];printf(“============简易计算器============n”);printf(“[四则运算.如:-1+(2+3)*9/(-2)-6].n请输入一个表达式:n”);while(1){gets(a);strcpy(b,a);while(1){intp;m=strlen(a);p=Can(a,m);if(p==0)break;printf(“输入错误.请从新输入表达式:n”);gets(a);strcpy(b,a);}printf(“=*=*=*=*=*=*表达式结果=*=*=*=*=*=*n”);printf(“该表达式的结果为:n%s=%-10.3lfn”,b,EvaluateExpression(a));printf(“=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*n”);printf(“继续使用[四则运算.如:-1+(2+3)*9/(-2)-6]..n请再输入一个表达式:n”);}}四程序调试分析1在四则混合运算中,运算符号的优先级比较难判断。2心得体会:我对编程是有很浓厚兴趣的。在编程的过程中,我深深地体会到力不从心—有些知识没能深入地理解和掌握以及VC++的许多功能没能探索和了解使我编程时有好多的思想运用不上(如设计一个美观的操作界面)。另外,我也感受到了数据结构的重要性,有了结构才能将好的思想付诸实践。同时经过查询资料了解到栈由多种运用方法,其中包括栈的顺序存储结构和链式存储结构,栈是计算表达式的经典应用。数据结构中的许多结构都是很经典思想,只有把编程语言和数据结构都熟练掌握的情况下,才能做出一些很好的作品。在编程过程中,虽然有时候是很发闷的,尤其是程序无错但结果不对,但是在完成一个完整的程序时所带来的喜悦是其它事情所不能替代的。我很喜欢编程,即使我的知识和能力有限,但我相信经过努力,一切皆有可能。五用户使用说明按要求正确输入表达式即可得到结果。六程序运行结果附程序清单#include#include#include//算符优先级表charFirst[7][7]={//'+','-','*','/','(',')','^'/*'+'*/'>','>','','','>','','','>','>','>','','','>','>','>','','','>','>','>','>','>','>',/*')'*/'','','>','>','>','','charOP[7]={'+','-','*','/','(',')','#'};//数据结构体typedefstruct{doubledata[50];inttop;}OPND_Stack;//运算符结构体typedefstruct{chardata[50];inttop;}OPTR_Stack;//初始化运算符栈函数voidInitStack_R(OPTR_Stack*a){a->top=-1;}//初始化数据站函数voidInitStack_D(OPND_Stack*a){a->top=-1;}//运算符进栈函数voidPush_R(OPTR_Stack*a,charb){a->top++;a->data[a->top]=b;}//数据进栈函数voidPush_D(OPND_Stack*a,doubleb){a->top++;a->data[a->top]=b;}//取运算符栈顶符函数voidGetTop_R(OPTR_Stack*a,char*b){*b=a->data[a->top];}//取数据栈顶数函数voidGetTop_D(OPND_Stack*a,double*b){*b=a->data[a->top];}//判断数据是否为运算符函数intIn(chara,char*s){for(inti=0;iif(a==s[i])re

增梅****主啊
实名认证
内容提供者


最近下载
贵州省城市管理行政执法条例.doc
贵州省城市管理行政执法条例.doc
一种基于双轨缆道的牵引式雷达波在线测流系统.pdf
一种基于双轨缆道的牵引式雷达波在线测流系统.pdf
一种胃肠道超声检查助显剂及其制备方法.pdf
201651206021+莫武林+浅析在互联网时代下酒店的营销策略——以湛江民大喜来登酒店为例.doc
201651206021+莫武林+浅析在互联网时代下酒店的营销策略——以湛江民大喜来登酒店为例.doc
用于空间热电转换的耐高温涡轮发电机转子及其装配方法.pdf
用于空间热电转换的耐高温涡轮发电机转子及其装配方法.pdf
用于空间热电转换的耐高温涡轮发电机转子及其装配方法.pdf