第三次附加作业

github链接

在第三作业中自己忽略了对代码的注释,因此在此次附加作业上进行补充。

 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; //函数返回值
}
posted @ 2016-03-24 12:12  ChenEver  阅读(144)  评论(0)    收藏  举报