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

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

一、需求分析:

需要为小学生生成一个可以自动生成四则运算题的小程序,并储存到外部txt文件中储存,并且需要根据不同的需求控制不同的变量。

二、 功能设计

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

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

(3)题目数量可定制

(4)相关参数可控制

     -  是否包含乘法和除法

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

     -  操作数是否含负数    

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

扩展功能

能实现答案的展示

三、 设计实现

创建了以下函数

  • signal函数提供随机的运算符号
  • random函数提供随即运算操作数并控制是否有负数
  • fun函数剔除重复算式
  • result函数输出运算结果

以上函数均在主函数内被调用

并在主函数内实现了文件的创建,对运算题目及答案输出的循环,

四、测试运行

五、 粘贴自己觉得比较独特的或满意的代码片段,用博客园正确的代码控件来显示。(提示:要有必要的注释说明,提示:不要贴所有代码!不符合规定的要倒扣分)

//主题函数
    for(i=1;i<=n;i++)
    {
        a=random(x,sym);
        b=random(x,sym);
        s=signal(f);
        fun(a,s,b);
        if(result(a,s,b,r)<100)
        {
            fprintf(fp,"%d%c%d=\n",a,s,b);
            fprintf(fp1,"%.2f\n",result(a,s,b,r));
        }
        else
        continue;
}

char signal(int f)//提供随机的运算符号
{       char c[4]={'+','-','*','/'};
    if(f==2)
    {
        return c[rand()%2]; 
    }
    else if(f==4)
    {
        return c[rand()%4];
    }
    
}


//输出结果
    if(r==0)
    printf("Thanks for your use!");
    else 
     {
     switch(s)
     {
        case '+':return a+b;break;
        case '-':return a-b;break;
        case '*':return a*b;break;
        case '/':return (double)a/b;break;
     
    }
    if(s=='/'&&b==0)
        printf("ERROR!");
    }
//实现外部文件输出并控制输出结果范围
    FILE *fp,*fp1;
    fp=fopen("result.txt","w+");//创建文件 
    fp1=fopen("答案.txt","w+");

if(result(a,s,b,r)<100)
        {
            fprintf(fp,"%d%c%d=\n",a,s,b);
            fprintf(fp1,"%.2f\n",result(a,s,b,r));
        }
        else
        continue;

六、总结:

首先实现最基础的自动生成四则运算题算法
然后根据不同的需求增加单一函数
并通过在主函数中的调用实现函数功能
单一部分测试无误之后再进行下一模块的编辑

七、PSP

PSP2.1 任务内容 计划共完成需要的时间(min) 实际完成需要的时间(min)
Planning 计划 180 300
·       Estimate ·  估计这个任务需要多少时间,并规划大致工作步骤 180 300
Development 开发 130 255
··       Analysis   需求分析 (包括学习新技术) 15 30
·       Design Spec ·  生成设计文档 5 5
·       Design Review ·  设计复审 (和同事审核设计文档) 10 15
·       Coding Standard   代码规范 (为目前的开发制定合适的规范) 3 3
·       Design   具体设计 10 10
·       Coding   具体编码 60 120
·       Code Review ·  代码复审 7 12
·       Test ·  测试(自我测试,修改代码,提交修改) 20 60
Reporting 报告 15 20
··       Test Report ·  测试报告 10 15
·       Size Measurement   计算工作量 2 1
·       Postmortem & Process Improvement Plan ·  事后总结 ,并提出过程改进计划 3 5

猜你喜欢

转载自www.cnblogs.com/Xyz0314777/p/11519005.html