Calculator(1.0)
Calculator(1.0)
解题过程中遇到的困难
- 对于c++中类和对象的使用不够明确,看了c++的视频教程学会了用类和对象来写程序。
- 不会使用
<queue>,在网上查阅资料,初步了解了<queue>的用法。 - 实在用不来指针orz,在对输入的数据进行处理时,只好全程用数组。
- 处理数字时,一开始对于一位以上数字的处理过于繁琐,问了同学才知道
<string>可以相加,这样就可以方便地存储一位以上的数字。 - 忽略了对小数点的处理,在判断数字或符号时加上一个对小数点的处理就行了。
- 代码规范,用alt+F8调了缩进,然后按照规范调了一下代码。
代码
Scan.h
#pragma once
#include <iostream>
#include <queue>
#include <string>
using namespace std;
class Scan
{
private:
queue <string> q;
bool error;
public:
Scan();
void ToStringQueue (string input); /*对输入的数字或符号进行处理并存到队列中*/
queue <string> ReturnQueue(); /*返回处理后得到的队列*/
bool IsError(); /*用于在数字超出十位时报错*/
};
Print.h
#pragma once
#include <iostream>
#include <queue>
#include <string>
using namespace std;
class Print
{
public:
void print (queue<string>q); /*用于输出处理后的队列*/
};
Scan.app
#include "Scan.h"
using namespace std;
Scan::Scan()
{
error = false;
}
void Scan::ToStringQueue(string input)
{
int i;
string a , b;
for(i = 0;i < input.size();i++)
{
if((input[i] < '0' || input[i] > '9') && input[i]!='.')
{
a = input[i];
q.push(a);
a = "";
}
else
{
b = input[i];
a = a + b;
if(a.size() > 10)
{
error = true;
}
if (i == input.size() - 1)
{
q.push(a);
a = "";
}
else
if(input[i+1]!='.')
{
if(input[i+1] < '0' || input[i+1] > '9')
{
q.push(a);
a = "";
}
}
}
}
}
queue <string> Scan::ReturnQueue()
{
return q;
}
bool Scan::IsError()
{
return error;
}
Print.cpp
#include "Print.h"
using namespace std;
void Print::print(queue<string>q)
{
for(;q.empty() == false;)
{
cout << q.front() << endl;
q.pop();
}
}
main.cpp
#include "Scan.h"
#include "Print.h"
#include <iostream>
#include <string>
using namespace std;
int main()
{
Scan scan;
Print print;
string input;
cin >> input;
scan.ToStringQueue (input);
if(scan.IsError() == false)
print.print(scan.ReturnQueue());
else
cout << "超过十位啦!";
return 0;
}
Calculator(1.0)的更多相关文章
- 作业45//Calculator::3.0
计算器 github 我的天我到底要写什么 一,2.0及2.6的改动 做了计算部分 加入了判断输入是否合法 合法的定义是算式符合`数字+运算符+数字+运算符+数字`的格式 其中`"-&quo ...
- CVSS3.0打分学习
打分计算器: Common Vulnerability Scoring System Version 3.0 Calculator: https://www.first.org/cvss/calcul ...
- [C++ Calculator 项目] 初试
Calculator V1.0 注:这是一个C++计算器项目的初始部分. 大体功能简介: 能够输入一串数学表达式 逐字符扫描,提取数字和符号得到一组队列 逐行输出提取的符号与数字 实现代码如下: sc ...
- 蓝桥杯练习系统— 算法训练 Beaver's Calculator
问题描述 从万能词典来的聪明的海狸已经使我们惊讶了一次.他开发了一种新的计算器,他将此命名为"Beaver's Calculator 1.0".它非常特别,并且被计划使用在各种各样 ...
- 蓝桥杯 Beaver's Calculator
问题描述 从万能词典来的聪明的海狸已经使我们惊讶了一次.他开发了一种新的计算器,他将此命名为"Beaver's Calculator 1.0".它非常特别,并且被计划使用在各种各样 ...
- Java实现 蓝桥杯 算法训练 Beaver's Calculator
试题 算法训练 Beaver's Calculator 问题描述 从万能词典来的聪明的海狸已经使我们惊讶了一次.他开发了一种新的计算器,他将此命名为"Beaver's Calculator ...
- [转]在Eclipse中使用JUnit4进行单元测试(初级篇)
首先,我们来一个傻瓜式速成教程,不要问为什么,Follow Me,先来体验一下单元测试的快感! 首先新建一个项目叫JUnit_Test,我们编写一个Calculator类,这是一个能够简单实现加减乘除 ...
- .Net 中的反射(动态创建类型实例) - Part.4
动态创建对象 在前面节中,我们先了解了反射,然后利用反射查看了类型信息,并学习了如何创建自定义特性,并利用反射来遍历它.可以说,前面三节,我们学习的都是反射是什么,在接下来的章节中,我们将学习反射可以 ...
- 在Eclipse中使用JUnit4进行单元测试(高级篇)
通过前2篇文章,您一定对JUnit有了一个基本的了解,下面我们来探讨一下JUnit4中一些高级特性. 一.高级Fixture 上一篇文章中我们介绍了两个Fixture标注,分别是@Before和@Af ...
随机推荐
- Java生成随机验证码
package com.tg.snail.core.util; import java.awt.Color; import java.awt.Font; import java.awt.Graphic ...
- hrbust1841再就业(状态压缩dp)
本人刚学压缩dp,只能对这些水题写题解 一方面对自己的理解有加深作用 另一方面希望和各位大牛交流交流..... 如果有对状态dp不太了解的童鞋可以参考入门知识:http://wenku.baidu.c ...
- avalon复杂绑定
样式操作:ms-css-样式名=“样式值”,ms-class ms-css-width="prop"(自动补px) ms-css-height="{{prop}}%&qu ...
- iOS - CoreLocation 定位
前言 NS_CLASS_AVAILABLE(10_6, 2_0) @interface CLLocationManager : NSObject 1.CoreLocation 定位 配置 1.在 iO ...
- java时间类型的转换/获取当前时间/将时间转换成String/将String转换成时间
对于我的脑子,我已经服气了...写了N遍的东西,就是记不住...既然记不住那就记下来... 利用java获取当前的时间(String类型,年-月-日 时:分:秒) //我要获取当前的日期 Date d ...
- HTML <a> download 属性,点击链接来下载图片
Html5里面的 标签的 Download 属性可以设置一个值来规定下载文件的名称.所允许的值没有限制,浏览器将自动检测正确的文件扩展名并添加到文件 (.img, .pdf, .txt, .html, ...
- SQL Tuning / SQL 性能 优化 调优
Some key concents regarding SQL optimization predicate selectivity (column unique ratio) / cardinali ...
- Sql Server R2还有备份数据库错误
错误信息描述 该数据库是运行版本10.50.1600的服务器上备份的.该版本与此服务器(运行版本10.00.1600)不兼容.请在支持该被份的服务器上还原该数据, 或者使用与此服务器兼容的备份(M ...
- table清除样式大全
table{width:100%;text-align:center;border-collapse:collapse;border-spacing:1;border-spacing:0; }tabl ...
- python unicode转中文及转换默认编码
一. 在爬虫抓取网页信息时常需要将类似"\u4eba\u751f\u82e6\u77ed\uff0cpy\u662f\u5cb8"转换为中文,实际上这是unicode的中文编码.可 ...