博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
附加作业3
阅读量:5118 次
发布时间:2019-06-13

本文共 3598 字,大约阅读时间需要 11 分钟。

附加作业

稍微规范了一点吧。。。

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;}

转载于:https://www.cnblogs.com/Coolaaa/p/5321470.html

你可能感兴趣的文章
[转载]加密算法库Crypto——nodejs中间件系列
查看>>
zoj 2286 Sum of Divisors
查看>>
OO5~7次作业总结
查看>>
如何判断主机是大端还是小端(字节序)
查看>>
Centos7 日志查看工具
查看>>
使用Xshell密钥认证机制远程登录Linux
查看>>
OpenCV之响应鼠标(三):响应鼠标信息
查看>>
Android 画图之 Matrix(一)
查看>>
List<T>列表通用过滤模块设计
查看>>
【模板】最小生成树
查看>>
设计模式之结构型模式
查看>>
poj2569
查看>>
使用pygal_maps_world.i18n中数据画各大洲地图
查看>>
sql server必知多种日期函数时间格式转换
查看>>
jQuery EasyUI 的下拉选择combobox后台动态赋值
查看>>
timeline时间轴进度“群英荟萃”
查看>>
python if else elif statement
查看>>
网络编程
查看>>
文本隐藏(图片代替文字)
查看>>
java面试题
查看>>