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

1、需求分析

      使用C或Java语言完成一个自动生成四则运算试题的程序,取值范围在100以内,操作数是否含负数,剔除重复算式,生成的运算题存储到外部文件result.txt中。

2、功能设计

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

      拓展功能:(1)剔除重复算式。 2 + 3 = 和 2 + 3 = 是重复算式 2 + 3 = 和 3 + 2 = 不属于重复算式

                        (2)题目数量可定制

                        (3)相关参数可控制

                        (4)是否包含乘法和除法

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

                        (6)操作数是否含负数

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

3、设计实现

      用C语言编写 C-Free5.0软件运行 main为主方法 rand生成随机数

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

for(a=0;a<size;a++)
            {
                i=rand()%(z*2)-z+1;
                j=rand()%(z*2)-z+1;
                n=rand()%4;
                if(n==0){op='+'; q=i+j;}
                if(n==1){op='-'; q=i-j;}
                if(n==2){op='*'; q=i*j;}
                if(n==3){op='/'; q=i/j;}
                printf("%d%c%d=%d\n",i,op,j,q);    
               fprintf(fp,"%d%c%d=%d\n",i,op,j,q);
            }
        }else{
                for(a=0;a<size;a++)
                        {
                        i=rand()%(z*2)-z+1;
                        j=rand()%(z*2)-z+1;
                        n=rand()%2;
                        if(n==0){op='+'; q=i+j;}
                        if(n==1){op='-'; q=i-j;}
                        printf("%d%c%d=%d\n",i,op,j,q);    
                       fprintf(fp,"%d%c%d=%d\n",i,op,j,q);
                    }

      拓展功能:(1)剔除重复算式。 2 + 3 = 和 2 + 3 = 是重复算式 2 + 3 = 和 3 + 2 = 不属于重复算式

for(int i=1;i<number2;) {
            Asum[i]=rand()%z+1;
       Bsum[i]=rand()%z+1;
if(Asum[i]!=Asum[i-1]) {
                i++;
            }
        }


                        (2)题目数量可定制

printf("请输入您需要的題目数量:\n");
scanf ("%d", &size) ;
printf ("\n") ;

                        (3)是否包含乘法和除法

printf("算式是否需要乘除法:0.否1.是\n");
scanf ("%d", &y) ;
printf("\n") ;
    if(y==1)//控制是否需要乘除法,需要则进入 
        {
            for(a=0;a<size;a++)
            {
                i=rand()%(z*2)-z+1;
                j=rand()%(z*2)-z+1;
                n=rand()%4;
                if(n==0){op='+'; q=i+j;}
                if(n==1){op='-'; q=i-j;}
                if(n==2){op='*'; q=i*j;}
                if(n==3){op='/'; q=i/j;}
                printf("%d%c%d=%d\n",i,op,j,q);    
               fprintf(fp,"%d%c%d=%d\n",i,op,j,q);
            }

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

printf("请输入等式操作数值范围:\n") ;
scanf ("%d", &z) ;
printf ("\n") ;

                        (5)操作数是否含负数

printf("请输入等式是否需要负数:0.否1.是\n");
scanf ("%d",&x) ;
printf ("\n") ;

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

FILE *fp=fopen("d:/result. txt", "wt") ;

4、测试运行

 

5、粘贴自己觉得比较独特的或满意的代码片段

    for(a=0;a<size;a++)
                                    {
                                        i=rand()%z+1;
                                       j=rand()%z+1;
                                        n=rand()%4;
                                        if(n==0){op='+'; q=i+j;}
                                    if(n==1){op='-'; q=i-j;}
                                    if(n==2){op='*'; q=i*j;}
                                    if(n==3){op='/'; q=i/j;}
                                    printf("%d%c%d=%d\n",i,op,j,q);    
                                    fprintf(fp,"%d%c%d=%d\n",i,op,j,q);
                                    }
                    }

6、总结:你设计的程序如何实现软件设计的“模块化”原则

     1、尽量减少了代码与代码之间的依赖性和不相关性,提高了代码的独立性,方便以后不会出现修修改改代码的情况。

     2、在程序编写的过程中还是依赖网上的资源查很多的资料,缺乏独立思考的能力。

     3、完成题目所需的要求。

7、PSP

PSP2.1

任务内容

计划共完成需要的时间(min)

实际完成需要的时间(min)

Planning

计划

10

11

·       Estimate

·  估计这个任务需要多少时间,并规划大致工作步骤

15

16

Development

开发

164

184

··       Analysis

  需求分析 (包括学习新技术)

10

12

·       Design Spec

·  生成设计文档

15

18

·       Design Review

·  设计复审 (和同事审核设计文档)

8

10

·       Coding Standard

  代码规范 (为目前的开发制定合适的规范)

10

11

·       Design

  具体设计

20

22

·       Coding

  具体编码

36

41

·       Code Review

·  代码复审

15

16

·       Test

·  测试(自我测试,修改代码,提交修改)

29

32

Reporting

报告

10

11

··       Test Report

·  测试报告

4

3

·       Size Measurement

  计算工作量

3

3

·       Postmortem & Process Improvement Plan

·  事后总结 ,并提出过程改进计划

4

5

     

猜你喜欢

转载自www.cnblogs.com/taoyiming/p/11530348.html