面向对象--四则运算

这篇博客是上次博客的后续

转型第一步

github

这篇博客和上一篇博客的思路一致,只是对一些没有具体实现的代码进行了实现,并且修改出信息的传递

类图的修改

看了许多同学的博客,感觉自己根本不是在写类图,只是随便的写写中文名称而已,和赵畅学长等同学差得好多

附上修改后的类图:

  • 在这边说一下,我认为类中public部分主要就是用于对外操作,所以我觉得类中的设计中,可以把一些函数放在private;
  • 这样保证了,public中的函数都是类似于接口的作用---还不是很了解接口的概念(自我认为是public中的一些函数)
  • 然后用传参的形式,进行信息的传递

编写完后main函数

#include<iostream>
using namespace std;
#include "allclass.h"
int main(int argc,char *argv[])
{
	expresses ex;//表达类
	Language lan;//语言类
	R_and_W file;//读取类

	int cal_num,i,j,k;

	double rightans=0;

	double inputans=0;

	int right_num=0;

	char * express=NULL;//利用动态数组存表达式

	lan.scanf();//初始界面

	char c;//输入语言类型
	cin >> c;

	lan.set(c);//传递信息

	cal_num=file.readFile(argv[1]);//获取题数

	for (i = 0; i < cal_num; i++)
	{
		express = ex.generateExpression();//得到表达式

		rightans = ex.calculateResult(express);//得到计算结果

		if (ex.IsInt(rightans)) {//计算结果的判定.剔除小数情况

			lan.scanf2(express, i);

			cin >> inputans;

		        right_num += file.Countright(rightans, inputans, lan);

			file.writeFile1(argv[2], express, rightans, inputans);//存入out.txt中
		}
		else i = i - 1;

		
	}
        delete[] express;//释放

	file.writeFile2(express, right_num);//存入最终结果

	lan.print(right_num, cal_num);//输出

        return 0;
}

类:

表达式类

语言类

读取类

主要流程图:

ps:写完流程图后感觉还是不符合面向对象的思想0.0

原文地址:https://www.cnblogs.com/q1076452761/p/6892054.html