因为使用程序来出题可以为用户带来很大的便捷,使老师在给同学出题时更加方便、快捷、简单。
自动生成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; 
            }
在完成的过程中,我总是看一个要求完成一项功能,没有事先将整体构思好,以至于后期改动整个程序完成相关功能的时候很麻烦。此次程序意识到了自己的问题,下次我会努力改进。
| 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 | 
原文:https://www.cnblogs.com/980504yuwei/p/11508328.html