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

1.需求分析
使用C语言完成一个自动生成四则运算试题的程序。
2.功能设计
  基本功能:随机生成10道100以内的2个操作数的四则运算算式,要求运算结果也在100以内。
  扩展功能:(1)剔除重复算式
       (2)定制题目数量
       (3)是否选择包含乘法和除法
       (4)操作数数值范围是否可控
       (5)操作数是否含负数
       (6)是否选择生成答案
       (7)生成的运算题存储到result.txt文件中
3.设计实现
使用sign函数实现含有负数的随机算式、sum函数选择受否生成带有答案的算式,其他功能由主函数完成。
4.测试运行
1791076-20190915221847784-473699431.png

1791076-20190915221900976-678169815.png

5.代码片段

do {
       printf("\n请确定是否包含乘除(1.包含 2.不包含): ");
       scanf("%d",&n);
       printf("\n请确定是否输出答案(1.不输出 2.输出): ");
       scanf("%d",&f);
       printf("\n-1为退出程序:");
       scanf("%d",&y);


       switch(n) {
           case 1: {

               for(i=0; i<count; i++) {
                   a=rand()%limits*sign(x);
                   b=rand()%limits*sign(x);
                   k=rand()%4;

                   switch(k) {
                       case 0: {
                           if(a+b<=limits) {
                               fprintf(fp,"%d+%d=\n",a,b);
                               if(sum(f)==0)
                                   fprintf(fp,"%d\n",a+b);
                           } else
                               i--;
                           break;
                       }

                       case 1: {
                           if(a-b<=limits && a-b>=0) {
                               fprintf(fp,"%d-%d=\n",a,b);
                               if(sum(f)==0)
                                   fprintf(fp,"%d\n",a-b);
                           }

                           else
                               i--;
                           break;
                       }
                       case 2: {
                           if(a*b<=limits) {
                               fprintf(fp,"%d*%d=\n",a,b);
                               if(sum(f)==0)
                                   fprintf(fp,"%d\n",a*b);
                           } else
                               i--;
                           break;
                       }
                       case 3: {
                           if(a/b<=limits && b!=0) {
                               fprintf(fp,"%d/%d=\n",a,b);
                               if(sum(f)==0)
                                   fprintf(fp,"%d\n",a/b);
                           } else
                               i--;
                           break;
                       }
                   }

               }
               break;
           }
           break;
           case 2: {
               for(i=0; i<count; i++) {
                   a=rand()%limits*sign(x);
                   b=rand()%limits*sign(x);
                   k=rand()%2;
                   switch(k) {
                       case 0: {
                           if(a+b<=limits) {
                               fprintf(fp,"%d+%d=\n",a,b);
                               if(sum(f)==0)
                                   fprintf(fp,"%d\n",a+b);
                           } else
                               i--;
                           break;
                       }
                       case 1: {
                           if(a-b<=limits && a-b>=0) {
                               fprintf(fp,"%d-%d=\n",a,b);
                               if(sum(f)==0)
                                   fprintf(fp,"%d\n",a-b);
                           }

                           else
                               i--;
                           break;
                       }
                   }
               }
               break;
           }
           break;
       }
   } while(y!=-1);

6.总结 使用函数实现部分模块,其他模块都存在在主函数里的。

7.psp

PSP2.1任务内容计划共完成需要的时间(min)实际完成需要的时间(min)
Planning计划120200
· Estimate· 估计这个任务需要多少时间,并规划大致工作步骤120200
Development开发298352
·· Analysis需求分析 (包括学习新技术)6065
· Design Spec· 生成设计文档2030
· Design Review· 设计复审 (和同事审核设计文档)2010
· Coding Standard代码规范 (为目前的开发制定合适的规范)35
· Design具体设计3042
· Coding具体编码150175
· Code Review· 代码复审1015
· Test· 测试(自我测试,修改代码,提交修改)510
Reporting报告1723
·· Test Report· 测试报告55
· Size Measurement计算工作量23
· Postmortem & Process Improvement Plan· 事后总结 ,并提出过程改进计划1015

转载于:https://www.cnblogs.com/kaka1/p/11524622.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值