ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

20194727-自动生成四则运算题第一版报告

2019-09-16 17:53:58  阅读:218  来源: 互联网

标签:cout 第一版 算式 四则运算 int limit 20194727 100 include


一、需求分析

     通过此代码自动生成四则运算,给运算带来方便,节省老师和家长的出题时间。

二、功能设计

(1)自动生成10道100以内的2个操作数的四则运算算式(+ - *  /),要求运算结果也在100以内

(2)剔除重复算式。  2 + 3 =    和  2 + 3 =     是重复算式      2 + 3 =   和   3 + 2 =  不属于重复算式

(3)题目数量可定制

(4)相关参数可控制

          是否包含乘法和除法

          操作数数值范围可控(如操作数 在100以内   还是1000以内)

          操作数是否含负数    

  (5)生成的运算题存储到外部文件result.txt中

三、设计实现

     生成几个随机数,但需要设置一些判断条件,来满足用户出题要求,写一个出题函数,根据用户要求改变其中的变量,循环调用这个函数出题。

四、测试运行

  

五、代码片段

#include<iostream.h>
#include<time.h>
#include<stdlib.h>
#include<math.h>
int main()
{
    int num1,num2,num0,c;
    int limit[8];
    double num3,num4;
    srand((int)time(0));         //  不同的时间,产生不同的随机数,但不保证缩小范围后是不是一样的数,是缺陷
    cout<<"输入题目的数量:";
    cin>>num0;
    cout<<endl;
    cout<<"输入打印中每行的间隔:";
    cin>>limit[0];
    cout<<endl;
    cout<<"输入打印中每行的题目数:";
    cin>>limit[1];                                //每次都输入太麻烦了,这个设置一般是一样的,可否改为设置一次即可
    cout<<endl;
    cout<<"输入操作数的数值范围的最小值和最大值:";
    cin>>limit[2]>>limit[3];
    cout<<endl;
    cout<<"是否有乘除法,有输入1,没有输入0:";
    cin>>limit[4];
    cout<<endl;
    cout<<"加减有无负数,有输入1,没有输入0:";
    cin>>limit[5];
    cout<<endl;
    if(limit[4]==1)
    {
        cout<<"除法有无余数,有输入1,没有输入0:";
        cin>>limit[6];
        cout<<endl;
    }
    if(limit[4]==0)
    {
        cout<<"是否支持小数,有输入1,没有输入0:";
        cin>>limit[7];
        cout<<endl;
        if(limit[7]==1)
        {
            cout<<"若支持小数,精确到多少位:";
            cin>>limit[8];
            cout<<endl;
        }
    }
    for(int i=0;i<num0;i++)              //输出题目的循环
    {
        num1=limit[2]+(int)(limit[3]*rand()/(RAND_MAX+1.0));
        num2=limit[2]+(int)(limit[3]*rand()/(RAND_MAX+1.0));
        c=1+(int)(4*rand()/(RAND_MAX+1.0));
        if(limit[4]==1)
        {
            if(c%4==0)
            {
                if(limit[6]==1)
                {
                    if(num1%num2==0)
                    cout<<"第"<<i+1<<"道:"<<num1<<"/"<<num2<<"="<<"    ";
                    else
                    {
                        while(num1%num2!=0)
                        {
                            num2=num2-num1%num2;
                        }
                        cout<<"第"<<i+1<<"道:"<<num1<<"/"<<num2<<"="<<"    ";

                    }
                }
            }                                    //输出有无余数的除法
            if(c%4==1) cout<<"第"<<i+1<<"道:"<<num1<<"+"<<num2<<"="<<"    ";
            if(c%4==2) cout<<"第"<<i+1<<"道:"<<num1<<"-"<<num2<<"="<<"    ";
            if(c%4==3) cout<<"第"<<i+1<<"道:"<<num1<<"*"<<num2<<"="<<"    ";
        }                                   //输出有乘除法的题目
        else
        {
            if(limit[7]==1)
            {
                num3=pow(0.1,limit[8])+(int)(0.1*rand()/(RAND_MAX+1.0))+num1;
                num4=pow(0.1,limit[8])+(int)(0.1*rand()/(RAND_MAX+1.0))+num2;
            }
            if(limit[5]==1)
            {
                if(c%2==0) cout<<"第"<<i+1<<"道:"<<pow(-1,i)*num3<<"-"<<pow(-1,i+1)*num4<<"="<<"    ";
                if(c%2==1) cout<<"第"<<i+1<<"道:"<<pow(-1,i)*num3<<"+"<<pow(-1,i+1)*num4<<"="<<"    ";
            }
            else
            {
                if(c%2==0) cout<<"第"<<i+1<<"道:"<<num3<<"-"<<num4<<"="<<"    ";
                if(c%2==1) cout<<"第"<<i+1<<"道:"<<num3<<"+"<<num4<<"="<<"    ";
            }                                //输出有无负数的加减
        }
        if((i%limit[1])+1==limit[1])     //每行打印的题目数
        for(int k=0;k<=limit[0];k++)
            cout<<endl;                //每行打印的间隔
    }
    return 0;
}

六、实验总结 

      经过漫长的努力,终于完成了大部分要求,我基础不大好,这次真的是费了很大劲。

七、PSP

PSP2.1 任务内容

计划共完成需要的

时间(min)

实际完成需要的

时间(min)

Planning 计划 60 50
Estimate 估计这个任务需要多少时间,并规划大致工作步骤 60 50
Development 开发 80 100
Analysis 需求分析 (包括学习新技术) 8 10
 Design Spec 生成设计文档 6 8
Design Review 设计复审 (和同事审核设计文档) 5 6
 Coding Standard 代码规范 (为目前的开发制定合适的规范) 3 3
 Design 具体设计 10 15
Coding 具体编码 35 45
Code Review 代码复审 5 6
Test 测试(自我测试,修改代码,提交修改) 3 5
Reporting 报告 10 11
 Test Report 测试报告 2 5
 Size Measurement 计算工作量 5 6
 Postmortem & Process Improvement Plan 事后总结 ,并提出过程改进计划 5 3

标签:cout,第一版,算式,四则运算,int,limit,20194727,100,include
来源: https://www.cnblogs.com/scgg/p/11528626.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有