- 2
- 0
- 约1.01万字
- 约 11页
- 2016-11-28 发布于北京
- 举报
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
您可能关注的文档
最近下载
- YC_T 199-2011 卷烟企业清洁生产评价准则.pdf VIP
- 《形势与政策》结课论论国际形势对中国发展所带来的影响.docx VIP
- 江苏省徐州市等3地2025-2026学年高一上学期1月期末学情检测数学试题含答.pdf VIP
- 小儿肺手术治疗方案选择的专家共识(2025版).docx VIP
- 物性表_索尔维 Veradel PESU VW-10200 RP,RFP,RSFP.pdf VIP
- 江苏省徐州市等3地2025-2026学年高一上学期期末考试英语试卷及答案.pdf VIP
- 烟草面试题目及答案.pdf VIP
- 《北京交通大学论文分类办法》(试行).pdf VIP
- 深度解析(2026)《YCT 590-2021卷烟工业企业设备综合效率测评导则》.pptx VIP
- 2024-2025学年苏教版六年级(上)期末数学试卷及答案.docx VIP
原创力文档

文档评论(0)