第三次作业

代码

遇到的一些状况

1.要求函数return一个队列,以前从未这么试过,查阅资料后得知,定义的时候直接

queue ToStringQueue(string input)

2.考虑超过10位数字报错。难点在于对于这个的理解不是很明白。例如0.123456789算几位数呢?最终在我的程序中,0.123456789算合法数字,0.1234567891就算错误。例如1.00000000000这样我也视作不合法。

3.一些特殊情况是否判断。例如 "1." 或者 ".1" 这2个数字算合法吗?

4.第一次做的时候将两个类直接写进main.cpp里面,经过重新阅读题目要求之后直接拆开,写到一个项目里面。

代码一览

Scan.h

/*
* File: Scan.h
* Author: fewdan
*
* Created on 2016年2月24日, 下午7:59
*/

ifndef SCAN_H

define SCAN_H

include

include

include

using namespace std;

class Scan
{
public:
queue ToStringQueue (string input);
/void Print( )
{//test1
while (s.size())
{
cout<<s.front()<<endl;
s.pop();
}
}
/
/bool isfailed ()
{
return failed;
}
/
private:
queues;
int count;
bool failed;
};

endif /* SCAN_H */

Scan.cpp

/*
* File: Scan.cpp
* Author: fewdan
*
* Created on 2016年2月24日, 下午7:59
*/

include "Scan.h"

include

include

include

using namespace std;

queue Scan::ToStringQueue(string input)
{
failed=0;
count=0;
string temp="";
for (int i=0;i<input.size();i++)
{
if (input[i]>='0'&&input[i]<='9')
{
temp+=input[i];//get number
count++;
if (count>10)
{
failed=1;
break;
}
}
else
{
if (input[i]=='.')//decimal
{
temp+='.';
continue;
}
if (temp!="")//number and operator
{
count=0;
s.push(temp);
temp=input[i];
s.push(temp);
temp="";
}
else//continual operator
{
temp=input[i];
s.push(temp);
temp="";
}
}
}
if (temp!="")//last number
s.push(temp);
if (failed)
{//failed
while (s.size())
s.pop();
s.push("Error!!!!!!!!!!!!!!!!!!");
}
return s;
}

Print.h

/*
* File: Print.h
* Author: fewdan
*
* Created on 2016年2月24日, 下午8:06
*/

ifndef PRINT_H

define PRINT_H

include

include

include

using namespace std;

class Print {
public:
void Myprint (queues);
};

endif /* PRINT_H */

Print.cpp

/*
* File: Print.cpp
* Author: fewdan
*
* Created on 2016年2月24日, 下午8:06
*/

include "Print.h"

include

include

include

using namespace std;

void Print::Myprint(queues)
{
while (s.size())
{
cout<<s.front()<<endl;
s.pop();
}
}

main.cpp

/*
* File: main.cpp
* Author: fewdan
*
* Created on 2016年2月24日, 下午7:58
*/

include

include

include

include"Scan.h"

include"Print.h"

using namespace std;

int main ()
{
Scan IN;
Print OUT;
string tempin;
queuetempqueue;
cin>>tempin;
tempqueue=IN.ToStringQueue(tempin);
OUT.Myprint(tempqueue);
return 0;
}

posted @ 2016-02-24 20:55  coolaaa  阅读(187)  评论(0)    收藏  举报