zoukankan      html  css  js  c++  java
  • 新的Calculator的规范作业

    附加作业题目
    第三次作业
    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 
    
    
    

    我所建立的工程:

    对于本次作业,我再次明白了代码规范的作用,给人清晰,让人看起来舒服。关键是代码的规范更容易让人明白你代码的作用。所以本次作业是很有必要的。继续加油!!

  • 相关阅读:
    软件需求与建模 复习笔记
    Autoware 笔记No.9,SSD车辆、行人(障碍物)识别(ssd vision detect)
    Autoware 笔记No.8 ENet 障碍物识别(vision segment ENet detect)
    Autoware 1.14 完整安装
    Autoware 笔记No.7, CNN障碍物检测(CNN LiDAR Baidu Object Segmenter)
    iOS 使用局部block处理接口依次调用需求
    阿里一面凉经
    Codeforces round #717 D.Cut(m询问求区间[L,R]能被至少分成多少个区间让每个小区间各数的乘积==各数的LCM)
    2018-2020 国家集训队论文选读
    GDOI 2021 游记
  • 原文地址:https://www.cnblogs.com/wpqf7630/p/5321756.html
Copyright © 2011-2022 走看看