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 ...
随机推荐
- [转]抓取安卓APP内接口的方法--Charles
http://blog.csdn.net/yyh352091626/article/details/52759294
- Java多线程同步 synchronized 关键字的使用
代表这个方法加锁,相当于不管哪一个线程A每次运行到这个方法时,都要检查有没有其它正在用这个方法的线程B(或者C D等),有的话要等正在使用这个方法的线程B(或者C D)运行完这个方法后再运行此线程A, ...
- 使用自定义标签模拟jstl的<c:for each>标签
一.自定义标签的基本编写 下面编写一个自定义标签,它可以输出当前的时间. 1.编写标签类 类可以通过继承SimpleTagSupport类实现一个标签类编写.父类为我们提供了一些编写自定义标签的快捷的 ...
- django框架代码基础
urls.py 导入相对应的模块from django.conf.urls import url,includefrom django.contrib import adminfrom son1.vi ...
- JSON,Bean,XML,List,Map
http://blog.csdn.net/superit401/article/details/51728929 JSON-lib这个Java类包用于把bean,map和XML转换成JSON并能够把J ...
- mac 安装php7
卸载php55 brew unlink php55 brew install homebrew/php/php70 安装成功信息 To enable PHP in Apache add the fol ...
- 解决首次访问jenkins,输入默认密码之后,一直卡住问题
简介 安装系统:centos6.5 安装方式:在官网中下载jenkins.war,放到tomcat根目录下的webapps中,启动tomcat(还有一种yum在线安装的方式) 1.首次访问,出现如 ...
- Android和iOS常用命令学习(真机)
1. 安装应用: Android: adb install xxx.apk iOS: ideviceinstaller -i xxx.ipa 2. 卸载应用 Android: abd uninstal ...
- C#快捷键
home:光标所在这一行的最前面 end:光标所在这一行的最后面 pg up:光标所在这一页最前一行的前面 pg dn:光标所在这一页最后一行的最后 shift+home:光标所在这一行之前的所有代码 ...
- Tomcat(免安装版)的安装与配置
一.下载Tomcat Tomcat可以从http://tomcat.apache.org/网站下载,选择任意版本,在 Binary Distributions 下的zip包既是. 二.配置Tomcat ...