新的Calculator的规范作业
这是开学来第一次写随笔,这一次的作业是对上一次作业的修改,对于上一次作业,在学长老师的帮助下,我重新修改了下代码,将.h文件分成了一个Scan类文件和一个Print类文件,虽然这样看起来没什么变化,但是这看起来就比较清晰明了。
修改后的代码主要是以下这些:
在.cpp中main 函数中的主要代码是:
/************************************************************
文件名:calculator.cpp
作者:031502331
时间:2016/3/26
博客名:Sxiaopeng
作用:处理字符串,并且输出数据
***********************************************************/
#include<iostream>
#include<string>
#include "Scan.h"
#include "Print.h"
using namespace std;
int main()
{
/*创建一个Scan类的对象 a;*/
Scan a;
/*创建一个Print类的对象 b;*/
Print b;
/*声明字符串 ;*/
string input;
/* 输入字符串 ;*/
cin >> input;
/*调用Scan类中的方法处理字符串;*/
a.ToStringQueue(input);
/*调用Print类中的方法输出队列;*/
b.PrintStringQueue();
return 0;
}
在Scan类的文件里,主要代码是:
#ifndef __SCAN_H__
#define __SCAN_H__
#include<iostream>
#include<string>
#include<queue>
using namespace std;
int count=0; /*创建全局变量,来计算一个数的有几位数*/
queue<string>key;/*设全局的队列queue*/
/************************************************************
文件名:Scan.h
作者:031502331
时间:2016/3/26
博客名:Sxiaopeng
作用:处理main函数传来的数据
***********************************************************/
//创建Scan的类
class Scan
{
/*定义一个处理字符串的函数*/
public:
void ToStringQueue(string input);
};
//对函数进行封装
void Scan::ToStringQueue(string input)
{
int l=input.length(); /*测出字符串的长度*/
string tmp="";
for (int i=0; i<l; i++)
{
/*如果数字的位数超过10 就产生错误;*/
if (count>10)
{
cout<<"Error"<<endl;
break;
}
/*判断是否有字符*/
if (input[i]=='-' || input[i]=='+' || input[i]=='(' || input[i]==')' || input[i]=='/' || input[i]=='*')
{
count=0;
/*将已有的数据存入队列*/
if (tmp!="")
{
key.push(tmp);
}
/*置空*/
tmp="";
tmp+=input[i];
/*讲一个一个不同于数字的运算符存入队列*/
key.push(tmp);
tmp=""; /*再次置空*/
}
else if (input[i]>=0||input[i]<=9) /*判断是数字*/
{
count++; /*计算连续数字的个数*/
tmp+=input[i]; /*将连续数字存在一起*/
continue;
}
}
key.push(tmp); /*处理最后面的数字传入队列*/
tmp="";
}
#endif
在Print类的文件里,主要代码是:
#ifndef __PRINT_H__
#define __PRINT_H__
#include<iostream>
#include<string>
#include<queue>
#include"Scan.h"
using namespace std;
/************************************************************
文件名:Print.h
作者:031502331
时间:2016/3/26
博客名:Sxiaopeng
作用:输出Scan类传来的数据
***********************************************************/
//创建一个Print的类
class Print
{
/*在类中定义一个输出队列的方法*/
public:
void PrintStringQueue();
};
//对Print的类中的方法进行封装
void Print::PrintStringQueue()
{
if (count<=10)
{
/*判断key队列是否为空*/
while (!key.empty())
{
cout<<key.front()<<endl; /*一个一个的输出*/
key.pop(); /*删除最先那个;因为queue队列是front in front out。*/
}
}
}
#endif
我所建立的工程:

对于本次作业,我再次明白了代码规范的作用,给人清晰,让人看起来舒服。关键是代码的规范更容易让人明白你代码的作用。所以本次作业是很有必要的。继续加油!!
新的Calculator的规范作业的更多相关文章
- ES6新特性以及一些规范
1.let:使变量成为块级变量,类似于C++,java类的变量 b = 2 if (b == 2) { let c = 2; } console.log(c) // 报错,因为c是一个块级变量,只存在 ...
- 作业配置规范文档[MS SQL]
作业配置规范文档(MS SQL) 文档类型 MS SQL数据库作业配置规范文档 创建日期 2015-07-30 版本变化 V3.0 修改记录 修改人 修改日期 版本 修改描述 潇湘隐者 2015-08 ...
- Flutter 1.17 新 Material motion 规范的预构建动画
老孟导读:在 Flutter 1.17 发布大会上,Flutter 团队还发布了新的 Animations 软件包,该软件包提供了实现新的 Material motion 规范的预构建动画. 软件包 ...
- Day4 - Python基础4 迭代器、装饰器、软件开发规范
Python之路,Day4 - Python基础4 (new版) 本节内容 迭代器&生成器 装饰器 Json & pickle 数据序列化 软件目录结构规范 作业:ATM项目开发 ...
- Python基础4 迭代器、装饰器、软件开发规范
本节内容 迭代器&生成器 装饰器 Json & pickle 数据序列化 软件目录结构规范 作业:ATM项目开发 1.列表生成式,迭代器&生成器 列表生成式 孩子,我现在有个需 ...
- Python之迭代器、装饰器、软件开发规范
本节内容 迭代器&生成器 装饰器 Json & pickle 数据序列化 软件目录结构规范 作业:ATM项目开发 1.列表生成式,迭代器&生成器 列表生成式 孩子,我现在有个需 ...
- 再探CSS 中 class 命名规范
一直以来我的CSS 的 class命名都是比较随意,有时采用驼峰式.有时采用下划线,好像没有什么统一的标准,想到什么英文单词就拿过来用,这对于自己瞎写的小项目无伤大雅,遇到冲突的问题可稍加调整改变即可 ...
- IOS开发-代码规范
代码风格的重要性对于一个团队和项目来说不言而喻.网上有许多 Objective-C 的代码风格,但这份简洁而又最符合苹果的规范,同时有助于养成良好的代码习惯,也是我们团队一直遵循的代码风格. 写法没有 ...
- 第六篇 SQL Server代理深入作业步骤工作流
本篇文章是SQL Server代理系列的第六篇,详细内容请参考原文. 正如这一系列的前几篇所述,SQL Server代理作业是由一系列的作业步骤组成,每个步骤由一个独立的类型去执行.每个作业步骤在技术 ...
随机推荐
- 《锋利的JQ》摘抄(一) jq基础篇
前言:第一次写博客有点紧张233333,我会在博客里放一下在赌这本书过程中遇到的一些有用的知识点,希望等帮助到大家.好了正题开始(只要是我不知道该说啥了= =) 一,资源(在w3cfuns资源中可以 ...
- starshot常见问题(New)
Element组件网址: http://element-cn.eleme.io/#/zh-CN/component/message Layer组件网址: https://www.layui.com/d ...
- ARM Linux驱动篇 学习温度传感器ds18b20的驱动编写过程
ARM Linux驱动篇 学习温度传感器ds18b20的驱动编写过程 原文地址:http://www.cnblogs.com/NickQ/p/9026545.html 一.开发板与ds18b20的入门 ...
- C中级 - 文件辅助操作
引言 - 业务有点麻烦 C 功能很强大, 同样书写起来会谨慎(拖泥带水). 不妨通过一个小问题来描述裹脚的 C 需求: 用 C 创建一个文件! 难点在于 1. 文件路径切割成 目录 + 文件名 2. ...
- VS2015 安装XAN
How to install XNA in Visual Studio 2015 (Preview) How can I install the templates and the the frame ...
- PPAS通过DBLink,访问Oracle数据库
磨砺技术珠矶,践行数据之道,追求卓越价值 回到上一级页面: PostgreSQL基础知识与基本操作索引页 回到顶级页面:PostgreSQL索引页 作者 高健@博客园 luckyjackga ...
- pandas:apply和transform方法的性能比较
1. apply与transform 首先讲一下apply() 与transform()的相同点与不同点 相同点: 都能针对dataframe完成特征的计算,并且常常与groupby()方法一起使用. ...
- Linux 和 Windows 之间共享文件之 samba
导语 如果对windows有过实际操作技巧的人都会明白,在windows下的文件共享加上网络驱动器映射是多么方便的体验,甚至比ftp更加的简单,就像本地多了一块可与他人交流的硬盘一样. 问题 由于性能 ...
- File System Object(FSO对象)A
FSO对象模型包含在Scripting 类型库 (Scrrun.Dll)中,它同时包含了Drive.Folder.File.FileSystemObject和TextStream五个对象: 1.Dri ...
- CSS盒模型 flex
用于网页布局,PC的话,兼容性不够,慎用,手机端的话,神器 整理部分通用的,可以直接复制的,省得下次再写一遍 注意,设为 Flex 布局以后,子元素的float.clear和vertical-alig ...