zoukankan      html  css  js  c++  java
  • 4则运算

      在本次编写关于小学生4则运算项目时,我采用了之前学习的c++来编写的,在本次题目编写过程中由于我好久没用c++写过东西,所以在编写过程中好多关于细节东西已经忘记了,幸 好我有一个叫做百度的老师,在好多细节方面我在百度文库上查找了资料,例如在关于枚举类型enum运用上我好多知识参考了百度,在本次写项目过程中由于我 好多知识忘记,所以我在查找资料观看视频方面大约花了我50%的时间,在捋顺思路,确定函数方面大约算25%时间吧,编写代码大约花了10%的时 间,15%时间是用在调试代码了。
    在本次我采用了将主要内容分函数,采用函数调用的方法来完成关于4则运算的,其中关于一些函数是参考网上大神的思路,自己编写完成。另外在
    这我说一件另外尴尬事情,由于我英语不好,所以我好多单词是百度的,在这里让一些英语好的同学见笑了

    #include <iostream>
    #include <stdlib.h>
    #include <ctime>
    #include <conio.h>
    using std::cin;
    using std::cout;
    using std::endl;
    int const num = 300;
    int const Maxnum = 100;
    enum sym{Jia,Jian,Cheng,Chu};
    char Fuhao(sym f)
    {
        switch (f)
        {
        case Jia:
            return '+';
        case Jian:
            return '-';
        case Cheng:
            return 'x';
        case Chu:
            return '/';
        }
        return ' ';
    }
    int ferate(int a,int b,sym f);
    bool Verify(int a,int b,sym f);
    void getFormula(int* a,int*b,sym f);
    int main()
    {
    	int i;
        int a[num];
        int b[num];
        int result[num];
        sym fer[num];
        int answerb = 0;
    	cout<<"正在生成,请稍等。"<<endl;
        srand(time(NULL));
        for(i=0;i<num;i++)
        {
            
            fer[i] = sym(rand()%4);
            getFormula(&a[i],&b[i],fer[i]);
        }
    	
        cout<<"生成计算式完成,开始答题!"<<endl;
        for(i=0;i<num;i++)
        {
            cout<<"第 "<<i+1<<" 题: 
    ";
            cout<<a[i]<<' '<<Fuhao(fer[i])<<' '<<b[i]<< " = ";
            //获取用户答案
            cin>>result[i];
            if(result[i] == ferate(a[i],b[i],fer[i]))
            {
                cout<<"正确";
                answerb++;
            }
            else
            {
                cout<<"小宝贝打错了,别灰心哈哈想想啊
    ";
            }
        }
        cout<<"共 "<<num<<" 题,答对 "<<answerb<<" 题 ";
    	
        //屏幕停止。
        getch();
    	
        return 0;
    }
    int ferate(int a,int b,sym f)//运算
    {
        switch (f)
        {
        case Jia:
            return a+b;
        case Jian:
            return a-b;
        case Cheng:
            return a *b;
        case Chu:
            return a/ b;
        }
        return 0;
    }
    bool Verify(int a,int b,sym f)//判断是否符合规范
    {
        switch (f)
        {
        case Jia:
    		{
    			return true;
    		}
        case Jian://不能为负数
    		{
    			if(a < b)
    				return false;
    			return true;
    		}
        case Cheng:
    		{
    			return true;
    		}
        case Chu://分母不为0
    		{
    			if(b == 0)
    				return false;
    			if(double(a/b) != double(double(a)/double(b)))
    				return false;
    			return true;
    		}
        }
        return false;
    }
    void getFormula(int *a,int *b,sym f)
    {
        for(;;)
        {
            *a = 1 + rand() % Maxnum;
            *b = 1 + rand() % Maxnum;
    		if(Verify(*a,*b,f) && ferate(*a,*b,f)<= 100 && ferate(*a,*b,f)>= 0)
                break;
        }
    } 
    
  • 相关阅读:
    leetcode--Populating Next Right Pointers in Each Node II
    leetcode—Populating Next Right Pointers in Each Node
    Pascal's Triangle II
    leetcode—pascal triangle
    leetcode—triangle
    October 23rd, 2017 Week 43rd Monday
    October 22nd, 2017 Week 43rd Sunday
    October 21st 2017 Week 42nd Saturday
    October 20th 2017 Week 42nd Friday
    October 19th 2017 Week 42nd Thursday
  • 原文地址:https://www.cnblogs.com/guoguangyao/p/5269260.html
Copyright © 2011-2022 走看看