附加作业题目

第三次作业

mygithub:sonnypp

这是开学来第一次写随笔,这一次的作业是对上一次作业的修改,对于上一次作业,在学长老师的帮助下,我重新修改了下代码,将.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的规范作业的更多相关文章

  1. ES6新特性以及一些规范

    1.let:使变量成为块级变量,类似于C++,java类的变量 b = 2 if (b == 2) { let c = 2; } console.log(c) // 报错,因为c是一个块级变量,只存在 ...

  2. 作业配置规范文档[MS SQL]

    作业配置规范文档(MS SQL) 文档类型 MS SQL数据库作业配置规范文档 创建日期 2015-07-30 版本变化 V3.0 修改记录 修改人 修改日期 版本 修改描述 潇湘隐者 2015-08 ...

  3. Flutter 1.17 新 Material motion 规范的预构建动画

    老孟导读:在 Flutter 1.17 发布大会上,Flutter 团队还发布了新的 Animations 软件包,该软件包提供了实现新的 Material motion 规范的预构建动画. 软件包 ...

  4. Day4 - Python基础4 迭代器、装饰器、软件开发规范

    Python之路,Day4 - Python基础4 (new版)   本节内容 迭代器&生成器 装饰器 Json & pickle 数据序列化 软件目录结构规范 作业:ATM项目开发 ...

  5. Python基础4 迭代器、装饰器、软件开发规范

    本节内容 迭代器&生成器 装饰器 Json & pickle 数据序列化 软件目录结构规范 作业:ATM项目开发 1.列表生成式,迭代器&生成器 列表生成式 孩子,我现在有个需 ...

  6. Python之迭代器、装饰器、软件开发规范

    本节内容 迭代器&生成器 装饰器 Json & pickle 数据序列化 软件目录结构规范 作业:ATM项目开发 1.列表生成式,迭代器&生成器 列表生成式 孩子,我现在有个需 ...

  7. 再探CSS 中 class 命名规范

    一直以来我的CSS 的 class命名都是比较随意,有时采用驼峰式.有时采用下划线,好像没有什么统一的标准,想到什么英文单词就拿过来用,这对于自己瞎写的小项目无伤大雅,遇到冲突的问题可稍加调整改变即可 ...

  8. IOS开发-代码规范

    代码风格的重要性对于一个团队和项目来说不言而喻.网上有许多 Objective-C 的代码风格,但这份简洁而又最符合苹果的规范,同时有助于养成良好的代码习惯,也是我们团队一直遵循的代码风格. 写法没有 ...

  9. 第六篇 SQL Server代理深入作业步骤工作流

    本篇文章是SQL Server代理系列的第六篇,详细内容请参考原文. 正如这一系列的前几篇所述,SQL Server代理作业是由一系列的作业步骤组成,每个步骤由一个独立的类型去执行.每个作业步骤在技术 ...

随机推荐

  1. C++ 函数的二义性

    函数二义性是一种编译时发生的错误,造成二义性调用的原因 是在函数匹配时两个或多个函数提供的匹配一样好,编译时找 不到唯一的最佳匹配. 列: #include <iostream> usin ...

  2. CentOS7 安装.netcore 2 部署应用出现An assembly specified in the application dependencies manifest (xxx.deps.json)

    # dotnet xxx.dll Error: An assembly specified in the application dependencies manifest (xxx.deps.jso ...

  3. apple remote desktop

    下面就是重点了: 1.下载v 3.7.2版本 :http://pan.baidu.com/s/1jGmrhuI   密码:vg2r 序列号: XARD-030-000-N-LXC-RP7-FBX-23 ...

  4. 2017-2018-1 20155318 《信息安全系统设计基础》第九周课下实践——实现mypwd

    2017-2018-1 20155318 <信息安全系统设计基础>第九周课下实践--实现mypwd 相关知识 man -k 查找含有关键字的内容 与管道命令结合使用:man -k k1 | ...

  5. 20155327 2017-2018-2 《Java程序设计》第9周学习总结

    20155327 2017-2018-2 <Java程序设计>第9周学习总结 URL类 URL类是java.net包中的一个重要的类,URL的实例封装着一个统一资源定位符,使用URL创建对 ...

  6. JavaScript总结(七)

    JavaScript表单编程 表单是Web上与用户进行交互的主要界面.则我们需要掌握如何访问用户输入的表单数据,校验用户输入的正确性显得至关重要. ♞ 对Form元素进行脚本编写 ✍ 获取表单的应用 ...

  7. SQL Server 的通用分页显示存储过程(转载)

    http://database.51cto.com/art/200512/12923.htm 建立一个 Web 应用,分页浏览功能必不可少.这个问题是数据库处理中十分常见的问题.经典的数据分页方法是: ...

  8. 关于SDK-manager中我们需要下载哪些?

    废话少说,直接看图说话…… 图片取自博客文章——链接跳转:点击跳转

  9. parewise算法性能优化

    在<接口自动化测试框架-AIM>这篇博客中,提到了parewise算法. 这次对其进行性能优化,共3点. 一. 因为笛卡尔积和两两拆分,是有序的. 就保证了两两拆分后的每列都是相同位置的元 ...

  10. react学习(一)组件

    react这个东西,说实话,我刚刚接触一个月不到.感觉这玩意很颠覆我以前的前端开发 比方说,可能,整个项目,并没有一个html文件 比方说,以前我们写前端代码,分的清清楚楚,html里面就是放dom, ...