附加作业题目

第三次作业

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. iOS蓝牙开发(4.0)详解

    最近由于项目需要, 一直在研究蓝牙4.0,在这儿分享给大家, 望共同进步. 一.关于蓝牙开发的一些重要的理论概念: 1.当前ios中开发蓝牙所运用的系统库是<CoreBluetooth/Core ...

  2. MariaDB快速批量插入数据的几种办法

    前言 当要向MariaDB中插入新的数据时,以下过程会影响插入所消耗的时间:(按时间消耗长短降序排序) 将数据sync到磁盘上(它是事务结束的一部分) 添加新的键值.索引越大,更新键值所消耗的时间就越 ...

  3. jQuery带缩略图轮播效果图片切换带缩略图

    以上为效果图 HTML代码: <!DOCTYPE html> <html> <head> <meta charset="utf-8" /& ...

  4. PHP与nginx之间的运行机制及其原理

    一.普及Nginx与Php-fpm相关知识点 Nginx是什么 Nginx ("engine x") 是一个高性能的HTTP和反向代理服务器,也是一个IMAP/POP3/SMTP服 ...

  5. sqli-labs学习(less-5-less-7)

    先介绍一些函数 count(*) 返回在给定的选择中被选的行数,即结果的数目 报错了,但是union没有出结果?,只是为什么? 原来是这样,这样的话只能用报错注入了 (). 通过floor报错 and ...

  6. Verilog 奇数分频

    代码: module odd_div( ); ; //分频系数,3即3分频 ; reg clk, rstn, clk_div_pos, clk_div_neg; wire clk_div_out; : ...

  7. WPF中使用WindowChrome美化窗口过程中的一个小问题

    WPF中使用WindowChrome美化窗口,在园子里有几篇不错的文章,我也是参考练习过程中发现的问题,并记录下来. 在看过几篇教程后,给出的窗口很多出现这样一个问题,如果设置了窗口标题栏的高度大于默 ...

  8. JavaWeb基础—JSP自定义标签入门

    自定义标签的作用:替换JSP页面的java代码 步骤:1.标签处理类(标签是一个对象,那也就需要先有类) 2.tld文件 它是一个xml(可以向c标签里借),一般放到WEB-INF下,不让客户端浏览器 ...

  9. WPF 访问外部的xaml文件

    原文:WPF 访问外部的xaml文件 今天做主题时,需要访问外部的xaml文件,方法: using (FileStream s = new FileStream("C:\\Control.x ...

  10. Django中表单的用法深探

    [转载说明:原文排版不是很好,为方便阅读,改进了排版] django的表单设计真的很棒,涉及非常多的功能,今天介绍django较为主流的几种表单使用方法.注:本文中表单与form通用.模型与model ...