在第三作业中自己忽略了对代码的注释,因此在此次附加作业上进行补充。
Scan.cpp
#include "Scan.h"
#include <iostream>
using namespace std;
Scan::Scan(void)
{
//set 容器里添加四则运算的符号元素//
charset.insert('+');
charset.insert('-');
charset.insert('*');
charset.insert('/');
charset.insert ('(');
charset.insert(')');
}
queue<string> Scan::ToStringQueue(string input)
{
queue<string> strs; //建立队列 strs
string temp=""; //定义一个空字符串 temp
for (unsigned int i=0; i<input.size(); i++) //对输入的字符串逐个检索
{
if (temp.size()>10) //输入的字符串中的某个字符超过10位
{
cout<<temp<<":超出10位"<<endl;
queue<string> 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;
}
main.cpp
/********************************
Author:chenjiaquan Date:2016/02/23
********************************/
/* run this program using the console pauser or add your own getch, system("pause") or input loop */
#include <iostream>
#include <string>
#include "Scan.h"
#include "Print.h"
using namespace std;
int main()
{
string input; //定义字符串
cin>>input; //输入字符串
Scan scan;
Print print;
print.show(scan.ToStringQueue(input));
cin.get();
cin.get();
return 0; //函数返回值
}
所有评论(0)