四则运算4 WEB(结对开发)

在第三次实验的基础上,teacher又对此提出了新的要求,实现网页版或安卓的四则运算。

 

结对开发的伙伴:

博客名:Mr.缪

姓名:缪金敏

链接:http://www.cnblogs.com/miaojinmin799/

 

详细网页四则运算要求:

1、生成的题目中计算过程不能产生负数,也就是说算术表达式中如果存在e1-e2的子表达式,那么结果大于等于0;

2、生成的题目中如果存在形式如e1/e2的子表达式,那么其结果应该是真分数。

3、每道题目中出现的运算符个数不超过3个,括号不做详细要求。

问题分析:

在第三次实验的基础上,要求把C++语言转换成java语言,即把cpp文件程序转换为java,jsp文件。但由于C和java在全局变量和栈的应用上有一定的不同,在对栈的使用中由于出栈和读取栈顶元素都为Object对象转换起来比较麻烦,所以我们在原先cpp文件中栈的应用改成了数组来实现压栈入栈。因为是网页版的所以就会使用jsp,html与java文件之间的数据交换,我们通过session,request和调用返回函数等方法来实现数据交互。

所遇困难:

1、在使用java中的栈时,出栈元素难以转换为所要类型。

2、jsp之间传递数组返回nill.

3、jsp与java之间的数据交互。

解决办法:

1、因为是顺序栈,所以直接使用数组来实现栈的所有功能

2、使用session来传递数组

3、在class文件中书写一个返回函数,在new生成对象时自动传递数组

前cpp文件:

复制代码
  1 #include<iostream>
  2 #include<string>
  3 #include<sstream>
  4 #include<time.h>
 5 #include<iomanip>  6 #include<fstream>  7 #define MAX 100  8 using namespace std;  9  10 stringstream formula; //当前算式  11 string buffer[MAX]; //缓冲区数组  12 int TopNumber; //上限  13 int BaseNumber; //下限  14 int IsMulDlvExist; //是否有乘除  15 int Amount; //操作数的个数  16 int BracketNum; //括号个数  17 int LBraket[2]; //左括号的位置  18 int RBraket[2]; //右括号的位置  19 int IsNeg; //是否有负数  20 int IsRem; //是否有余数  21 int IsBra; //是否有括号  22 int IsRep; //是否重复  23 float Result[MAX]; //正确结果数组  24 char lastOp; //记录上个运算符是否为除号  25  26 //优先级数组  27 char prior[7][7] = {  28 { '>', '>', '<', '<', '<', '>', '>' },  29 { '>', '>', '<', '<', '<', '>', '>' },  30 { '>', '>', '>', '>', '<', '>', '>' },  31 { '>', '>', '>', '>', '<', '>', '>' },  32 { '<', '<', '<', '<', '<', '=', ' ' },  33 { '>', '>', '>', '>', ' ', '>', '>' },  34 { '<', '<', '<', '<', '<', ' ', '=' }  35 }; 

转载于:https://www.cnblogs.com/qwer111/p/5352087.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值