tomvii  

2017《面向对象程序设计》课程作业四

面向对象的方法划分类

在做这个四则运算的软件中,我主要是把整个问题当做两个类来判断,类中包含的对象也有指向输出文件的指针以及随机生成符号,随机数字等完成整个四则运算问题所要用到的函数。主要还是为本身的需求服务吧,因为输出文件的指针几乎每个成员函数都要用到,索性就归到这两类当中去了。

class cal 
{
public:
	void random(int *a, int*b, int*c, int *d);
	void print( int v, int c);//对于结果的输出
	void writefile(char *str, char *p);//写出文件
	int test(int total, char *p1);
	int generateExpression(int x);
	float calcusum(int a, int b, char sig);
	string combine(string a, string b, char sign);
	string int_string(int number);
	char randop();
private:
	char *p;
};
class read
{
public:
	void boundary();//用于生成界面
	int fileread(char *p1);//读入文件并返回题目数值
private:
	char *pr;//读入指针
	int num;

};

类与类之间的联系

联系的话还是通过成员函数与指针来实现的,由于设定成私有变量的缘故,这也是作业中我感觉比较重要的一块,很好地反映了之前所学的知识,不过这之中也有learning by doing的部分,这里简略的贴下代码,通过ostringstream转换成string类型。

		ostringstream ss1;
		ss1 << reply;
		string str1 = ss1.str();

联系部分也是通过指针来跟类中的成员函数来进行的,由成员函数之间发送信息,互相引用各自的成员函数来进行的。

实现自动出题

还是通过随机生成数字,随机生成符号,由于是string类型结合起来比较方便,进而得到生成的题目,具体我通过流程图表示出来(●`∀´●)
)

git链接

git

感想

感觉这次的作业也并非是单纯的轻松的,也在之前的代码上面进行了一系列的修改,相当于一次缓冲期,通过对于系统化的流程图的绘制及理解,也能更好迭代代码。面向对象是从用户和整体角度出发的,把问题作为一组相互作用的实体,显式表示实体间的关系,我想这次作业也可以很好反映这一点。

posted on 2017-05-14 18:19  tomvii  阅读(218)  评论(0编辑  收藏  举报