欢迎来到天天文库
浏览记录
ID:45617735
大小:73.14 KB
页数:9页
时间:2019-11-15
《软件技术基础-实验报告》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、《软件技术基础》实验报告学院(系):专业:班级:学号:学生姓名:2014年4月15H实验目的利用栈进行四则运算表达式的计算。DPA+B*C-D/E二、实验内容基本思路;1、用数组来定义一个运算数的堆栈2、运算数入栈函数3、运算数出栈函数4、运算数进行四则运算分析:1、定义的变量均为int型,所以只能进行整数间的四则运算。如果结果应该冇小数部分,因为输岀的结果必须是整数,所以小数部分会被自动省略。2、没冇单独为操作符定义栈,所以操作符是固定的,只能进行如:A+B*C-D/E的运算。三、算法原理V貝体的算
2、法说明:1、用数组來定义栈,并且定义栈的大小及指针。2、定义push为运算数的入栈操作;当top指针小于max时,指针上移,否则输出栈已满。3、定义pop为运算数的出栈操作;当指针不为空时,指针下移,否则输出栈为空。4、main函数中,实现变量的定义,运算数的输入,以及运算数的入栈和出栈,最后进行运算数的四则运算,输出最后的结果。四、软件设计用数组定义栈及定义栈的大小^defineMAX100/*定义堆栈大小*/intstack[MAX];/*用维数组定义堆栈*/inttop=0;/*定义堆栈指示*/
3、运算数的入栈操作intpush(inti)/*存储运算数,入栈操作*/{if(top4、置*/returnvar;/*返回栈顶元素*/}elseprintf(,zThestackisempty!,z);/*输出这是空栈*/rcturn0;主函数voidmain()/*主函数*/{intp,k,n,h;/*定义int型和字符型变量*/char1;inta,b,c,d,e;intA,B,C,D,E;printf(^mathmaticoprction:,z);/*给出提示信息运算*/printf(z,Pleaseinputthefirstnumber:z,);/*输入第一个运算数*/s5、canf(〃%d〃,&a);push(a);/*第一个运算数入栈*/printf(Z/Pleaseinputthesecondnumber/');/*输入第二运算数*/scanf("%d",&b);push(b);/*第二运算数入栈*/printf(''pleaseinputthethirdnumber:");/*输入第三个运算数*/scanf(〃%d〃,&c);push(c);/*第三个运算数入栈*/printf(,zplcascinputthefourthnumber:z,);/*输入第四个运算数6、*/scanf("%d",&d);push(d);/*第四个运算数入栈*/printf(''pleaseinputthefifthnumber:");/*输入第五个运算数*/scanf(〃%d〃,&c);push(c);/*第五个运算数入栈*/E=pop();D=pop();C=pop();/*运算数出栈*/B=pop();A=pop();k二B*C;h=D/E;n=A+k-h;/*计算多项式*/printf(,zTheresultis%d+%d*%d-%d/%d=%dz,,a,b,c,d,e,n7、);/*输出结果*/}五、实验结果结果运行正常。验证6+23*12-10/2二277El"C:UserslenovoDesktopDebug22.exe”bathmaticopretion:PleasePleasepleasepleasepleasetheresultis6+23*12-10/2=277DPressanykeytocontinueinputinputinputinputinputthethethethethefirstnunbep:6secondnumber:23thirdn8、unbep:12fourthnumber:10fifthnunbep:2微软拼音简捷半:验证:2+3*4-5/5=13"C:UserslenovoDesktopDebug22.exe"Rathnaticopretion:PleasePleasepleasepleasepleasetheresultis2+3*4-5/5=13Pressanykeytocontinueinputinputinputinputinputthethethethethe
4、置*/returnvar;/*返回栈顶元素*/}elseprintf(,zThestackisempty!,z);/*输出这是空栈*/rcturn0;主函数voidmain()/*主函数*/{intp,k,n,h;/*定义int型和字符型变量*/char1;inta,b,c,d,e;intA,B,C,D,E;printf(^mathmaticoprction:,z);/*给出提示信息运算*/printf(z,Pleaseinputthefirstnumber:z,);/*输入第一个运算数*/s
5、canf(〃%d〃,&a);push(a);/*第一个运算数入栈*/printf(Z/Pleaseinputthesecondnumber/');/*输入第二运算数*/scanf("%d",&b);push(b);/*第二运算数入栈*/printf(''pleaseinputthethirdnumber:");/*输入第三个运算数*/scanf(〃%d〃,&c);push(c);/*第三个运算数入栈*/printf(,zplcascinputthefourthnumber:z,);/*输入第四个运算数
6、*/scanf("%d",&d);push(d);/*第四个运算数入栈*/printf(''pleaseinputthefifthnumber:");/*输入第五个运算数*/scanf(〃%d〃,&c);push(c);/*第五个运算数入栈*/E=pop();D=pop();C=pop();/*运算数出栈*/B=pop();A=pop();k二B*C;h=D/E;n=A+k-h;/*计算多项式*/printf(,zTheresultis%d+%d*%d-%d/%d=%dz,,a,b,c,d,e,n
7、);/*输出结果*/}五、实验结果结果运行正常。验证6+23*12-10/2二277El"C:UserslenovoDesktopDebug22.exe”bathmaticopretion:PleasePleasepleasepleasepleasetheresultis6+23*12-10/2=277DPressanykeytocontinueinputinputinputinputinputthethethethethefirstnunbep:6secondnumber:23thirdn
8、unbep:12fourthnumber:10fifthnunbep:2微软拼音简捷半:验证:2+3*4-5/5=13"C:UserslenovoDesktopDebug22.exe"Rathnaticopretion:PleasePleasepleasepleasepleasetheresultis2+3*4-5/5=13Pressanykeytocontinueinputinputinputinputinputthethethethethe
此文档下载收益归作者所有