首页 > 其他 > 详细

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

时间:2019-09-11 22:00:20      阅读:109      评论:0      收藏:0      [点我收藏+]

一、需求分析

因为使用程序来出题可以为用户带来很大的便捷,使老师在给同学出题时更加方便、快捷、简单。

二、功能设计

基本功能:

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

扩展功能:

    -(1)剔除重复算式。2 + 3 =    和2 + 3 =     是重复算式 2 + 3 =   和3 + 2 =  不属于重复算式
    -(2)题目数量可定制
    -(3)以下相关参数可控制
         是否包含乘法和除法
        操作数数值范围可控(如操作数 在100以内   还是1000以内)
        操作数是否含负数    
    -(4)生成的运算题存储到外部文件result.txt中

三、设计实现

我仅使用了主函数来控制整体程序的运行,通过使用循环语句、判断语句,来使自动生成的随机数进行运算以及判断条件是否成立。

四、测试运行

技术分享图片

五、代码片段

-1.题目数量可定制;且判断定制数目是否超过10,超过规定范围显示输入错误。

            printf("请输入你要定制的题目数量(最大数量为10):"); 
            scanf("%d",&d); 
            if(d>10){   //判断输入是否超额 
                        printf("输入错误\n");
                        return 0;
                        }

-2.进行是否可以出现包含正负号的随机数

    for(i=0;i<d;i++){
        if(zf==1){
            a[i]=rand()%(2*max+1)-100;
            b[i]=rand()%(2*max+1)-100;
        }   
        else{
            a[i]=rand()%max; 
            b[i]=rand()%max;
        }
            f[i]=rand()%4;
            erze[i]=rand()%2;

-3.四则运算输出代码

            switch(f[i]){
            case 0:c[i]=a[i]+b[i];
                if(c[i]<max){
                    fprintf(fp,"%d+%d=%d\n",a[i],b[i],c[i]);break;}
            case 1:c[i]=a[i]-b[i];
                if(c[i]<max){
                    fprintf(fp,"%d-%d=%d\n",a[i],b[i],c[i]);break;}
                 
            case 2:c[i]=a[i]*b[i];
                if(c[i]<max){
                    fprintf(fp,"%d*%d=%d\n",a[i],b[i],c[i]);break;}
                
            case 3:c[i]=a[i]/b[i];
                if(c[i]<max){
                fprintf(fp,"%d/%d=%d\n",a[i],b[i],c[i]);break;}
                            
        }

-4.将输出数据导入文本中

            FILE *fp;
            fp=fopen("result.txt","w");

-5.剔除重复模式

        for(j=0;j<i;j++){//剔除重复算式 
        if(a[i]==a[j]&&b[i]==b[j]&&(f[i]==f[j]||erze[i]==erze[j])){
        return 0; 
            }

六、总结

在完成的过程中,我总是看一个要求完成一项功能,没有事先将整体构思好,以至于后期改动整个程序完成相关功能的时候很麻烦。此次程序意识到了自己的问题,下次我会努力改进。

七、撰写PSP

PSP2.1 任务内容 计划共完成需要的时间(min) 实际完成需要的时间(min)
Planning 计划 170 240
Estimate 估计这个任务需要多少时间,并规划大致工作步骤 10 10
Development 开发 60 100
Analysis 需求分析 (包括学习新技术) 5 5
Design 具体设计 15 20
Coding 具体编码 60 120
Test 测试(自我测试,修改代码,提交修改 10 10
reporting 报告 10 20

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

原文:https://www.cnblogs.com/980504yuwei/p/11508328.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!