您的位置:首页 > 其它

作业七-四则运算与简单工厂模式初步结合

2017-06-07 18:15 232 查看
题目连接

题目描述

请将随机生成数字、表达式的部分设计成:一个Random基类,基类中有random()方法。并由该基类派生出RandomNumber类、RandomOperation类,继承并覆盖父类方法。

学习简单工厂模式,思考能否将该模式运用到题目的第一点要求中。

作业要求

体会继承和多态的思想

发表一篇博客,博客内容为:提供本次作业的github链接,题目描述的代码部分的解释、简单工厂模式的学习。

过程

通过简单工厂模式的学习与尝试,事先自己写个小程序在 简单工厂的初步尝试博客中有说明

按照作业要求,我将本来随机数放在表达式类中,现在从中分离出一个随机基类,两个派生类

与上一篇博客相结合,在基类中建立两个虚函数(应该一个也可以)一个用于转换成字符,一个用于生成随机数

之后创建一个工厂类,工厂类的内容与上篇博客内容一样,改成RandomFactroy类。

github

修改的部分代码:

class Random {
public:
Random(){}
~Random(){}
virtual char get_rand(int k) { return ' '; }
virtual int create() {  return -1;  }
};
class randomNumber :public Random
{
public:
randomNumber(){}
~randomNumber(){}
virtual int create();
virtual char get_rand(int k);
};
class randomOperator : public Random
{
public:
randomOperator(){}
~randomOperator(){}
virtual int create();
virtual char get_rand(int k);
};

/*以下为相应的一些函数内容*/

int randomNumber::create()
{
return rand() % 10;
}
int  randomOperator::create()
{
return rand() % 4;
}
char randomOperator::get_rand(int k)
{
switch (k)
{
case 0:return '+';
case 1:return '-';
case 2:return '*';
case 3:return '/';
default:return ' ';
}
}
char randomNumber::get_rand(int k)
{
return k + 48;
}

生成表达式函数中的改变:



过程中的问题:

在相结合方面,没有遇到大问题,毕竟在上一篇博客有一些尝试

主要是在于git上传时又出现错误了

因为之前进行界面编辑的尝试,是写在本地库中,没有上传,到这次作业,进行上传,发现文件大小超过100M是无法上传的,。

尝试了好多方法,都出现了一些错误,一直改不出来,看完网上博客发现,自己已经进入一个麻烦的境地。

最后返回到之前作业五的git版本,再进行修改,上传。

体会:

对于利用简单工厂模式,我认为降低了其耦合性,也会使得代码变得比较有条理。

对于git等等,一些遇到问题,先不要自己随便乱按之类的,出错了,很容易到达一种不可挽回的地步,所以应该去网上查查解决方法,按照网上操作,去完成。

附上一些git的链接

官方文档

大文件解决方案
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: