zoukankan      html  css  js  c++  java
  • 面向对象--四则运算

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

    转型第一步

    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

  • 相关阅读:
    LeetCode——Merge Two Sorted Lists
    【iOS与EV3混合机器人编程系列之四】iOS_WiFi_EV3_Library 剖析之中的一个:WiFi UDP和TCP
    Java 中最常见的 5 个错误
    Linux 设备驱动的固件载入
    kettle的job中使用循环
    Servlet 容器对URI的处理
    友元函数友元类.
    【批量加入】-拼接sql字符串
    java JSONObject/JSONArray详解
    java 中文转化为拼音
  • 原文地址:https://www.cnblogs.com/q1076452761/p/6892054.html
Copyright © 2011-2022 走看看