附加作业
稍微规范了一点吧。。。
Scan.h
/* * File: Scan.h * Author: fewdan * * Created on 2016年2月24日, 下午7:59 */#ifndef SCAN_H#define SCAN_H#include #include #include using namespace std;class Scan{public: queue ToStringQueue (string input);private: /* 键盘输入的字符串 */ queue s; /* 当前处理数字长度 */ int count; /* 输入的字符串中是否有不满足的条件的数字 */ bool failed;};#endif /* SCAN_H */
Scan.cpp
/* * File: Scan.cpp * Author: fewdan * * Created on 2016年2月24日, 下午7:59 */#include "Scan.h"#include #include #include using namespace std;/************************************************* Description: 将键盘输入的待处理字符串,处理成规定的字符串队列 Input: 待处理字符串 Output: Return: 字符串队列 Others: *************************************************/queue Scan::ToStringQueue(string input){ failed = 0; count = 0; string temp = ""; for (int i = 0 ; i < input.size() ; i++) { /* get number */ if (input[i] >= '0' && input[i] <= '9') { temp += input[i]; count++; /* 数字长度大于10 */ if (count > 10) { failed = 1; break; } } else { /* 处理小数 */ if (input[i] == '.')//decimal { temp += '.'; continue; } /* 数字+运算符 number and operator */ if (temp != "") { /* 压入数字 */ count = 0; s.push(temp); /* 压入运算符 */ temp = input[i]; s.push(temp); temp = ""; /* 清空临时变量 */ } else { /* continual operator */ temp = input[i]; s.push(temp); temp = ""; } } } /* last number */ if (temp != "") s.push(temp); /* 数字不符合要求 */ if (failed) { /* 清空队列 */ while (s.size()) s.pop(); /* 压入错误信息 */ s.push("Error!!!!!!!!!!!!!!!!!!"); } return s;}
Print.h
/* * File: Print.h * Author: fewdan * * Created on 2016年2月24日, 下午8:06 */#ifndef PRINT_H#define PRINT_H#include #include #include using namespace std;class Print {public: void Myprint (queue s);};#endif /* PRINT_H */
Print.cpp
/* * File: Print.cpp * Author: fewdan * * Created on 2016年2月24日, 下午8:06 */#include "Print.h"#include #include #include using namespace std;/************************************************* Description: 将得到的字符串队列输出 Input: 字符串数列 Output: 输出字符串数列 Return: Others: *************************************************/void Print::Myprint(queue s){ while (s.size()) { cout< <
main.cpp
/* * File: main.cpp * Author: fewdan * * Created on 2016年2月24日, 下午7:58 */#include #include #include #include "Scan.h"#include "Print.h"using namespace std;int main (){ /* 输入类 */ Scan IN; /* 输出类 */ Print OUT; /* 临时变量,输入字符串 */ string tempin; /* 中间变量,传递字符串队列 */ queue tempqueue; cin>>tempin; tempqueue=IN.ToStringQueue(tempin); OUT.Myprint(tempqueue); return 0;}