刚看到第三次作业时,首先映入眼帘的陌生词汇是类。心里不免一怔,毕竟还没接触过c++中的类,马不停蹄上慕课网看视频——c++远征封装篇。在视频中老师说明了类和对象的定义,视频看了一遍又一遍才大体知道类和对象的概念和使用。
继续看题目发现自己还未接触过queue的用法,通过百度知道了queue中如front、push、pop⋯⋯的用法以及建立queue。
在输入的方面,对于string的使用,我通过在慕课网学习,自己能够正确利用这个“利器”。对于四则运算式子的分离,可发了难,通过询问,在表哥的点播下我试着将数字和符号分为两类,用set放所有符号,再对字符串逐个判断是否为符号,再string一个空字符串,对其clear,push。并逐步放进队列。
主要代码如下:
Scan.cppqueueScan::ToStringQueue(string input){queue strs; //建立队列 strsstring temp=""; //定义一个空字符串 tempfor (unsigned int i=0; i 10) //输入的字符串中的某个字符超过10位 { cout< <<":超出10位"< rs; //定义一个空队列 rs return rs; } if (charset.find(input[i])!= charset.end()) //字符串中的第i个字符不为四则运算中的符号 { if (temp!="") //字符串temp不为空 { strs.push(temp); //将字符串temp中的元素加入队列strs temp.clear(); //将字符串temp清空 } temp.push_back(input[i]); //在字符串temp尾部添加该字符 strs.push(temp); temp.clear(); //将字符串temp清空 } else { temp += input[i]; //将该字符拼接到 temp后 }}if (temp!="") //字符串temp不为空{ strs.push(temp); //将字符串temp中的字符加入队列strs temp.clear();}return strs;}Scan.h#include #include #include using namespace std;class Scan{private:set charset;public:Scan(void);~Scan(void);queue ToStringQueue(string input);};