2015利用的和堆栈编程思想实现数学四则运算计算结果.docVIP

  • 2
  • 0
  • 约1.01万字
  • 约 11页
  • 2016-11-28 发布于北京
  • 举报

2015利用的和堆栈编程思想实现数学四则运算计算结果.doc

2015利用的和堆栈编程思想实现数学四则运算计算结果

  在数学的四则运算表达式写入a.txt中,例如:   其运算的结果要写入b.txt中,例如   初探思路:   利用getline读取文件中每行,并保存在string中,然后按数字和运算符拆分成两个vector。   第一次遍历,把*、/、%等运算符等级高的运算   剩下的就循环遍历运算+和-,直到vector中的第二个字符是=,把第一个字符的结果存入一个answer中,   执行上面相同的操作,计算每行的表达式,把结果存入answer中   最后把answer的结果存入到b.txt中 ? 附上代码: 1 // Demo.cpp : 定义控制台应用程序的入口点。 2 // 3 4 #include stdafx.h 5 #include iostream 6 #include fstream 7 #include string 8 #include vector 9 #include deque 10 #include stdio.h 11 12 using namespace std; 13 14 15 void writeAnswer(vectorint iAnswer) 16 { 17 ofstream ofs(b.txt); 18 for(vectorint::size_type ix = 0; ix != iAnswer.size(); ix++) 19 { 20 ofs iAnswer[ix] \n; 21 } 22 ofs.close(); 23 } 24 25 void countAnswer(vectorint iAnswer,vectorint iVec,vectorchar cVec) 26 { 27 for (vectorchar::size_type iy = 0; iy != cVec.size(); iy++) 28 { 29 vectorchar::size_type t = cVec.size(); 30 switch (cVec[iy]) 31 { www.ipb.cc 32 case *: 33 iVec[iy] *= iVec[iy + 1]; 34 iVec.erase(iVec.begin() + iy + 1); 35 cVec.erase(cVec.begin() + iy); 36 iy--; 37 break; 38 case /: 39 iVec[iy] /= iVec[iy + 1]; 40 iVec.erase(iVec.begin() + iy + 1); 41 cVec.erase(cVec.begin() + iy); 42 iy--; 43 break; 44 case %: 45 iVec[iy] %= iVec[iy + 1]; 46 iVec.erase(iVec.begin() + iy + 1); 47 cVec.erase(cVec.begin() + iy); 48 iy--; 49 break; 50 } 51 } 52 53 int n; 54 n = iVec[0]; 55 for (vectorchar::size_type ix = 0; ix != cVec.size(); ix++) 56 { 57 vectorchar::size_type t = cVec.size(); 58 switch(cVec[ix]) 59 { 60 case +: 61 n += iVec[ix + 1]; 62 break; 63 case -: 64 n -= iVec[ix + 1]; 65 break; 66

文档评论(0)

1亿VIP精品文档

相关文档