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

     

转载于:https://www.cnblogs.com/taoyiming/p/11530348.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,以下是一个基于 Python 的自动生成四则运算目的程序实现方案: ```python import random # 定义运算符 operators = ['+', '-', '*', '/'] # 定义数字范围 min_num = 1 max_num = 100 # 定义生成表达式的函数 def generate_expression(): # 随机生成两个数字 num1 = random.randint(min_num, max_num) num2 = random.randint(min_num, max_num) # 随机选择一个运算符 op = random.choice(operators) # 生成表达式字符串 expression = "{} {} {}".format(num1, op, num2) # 返回表达式字符串和答案 if op == '+': answer = num1 + num2 elif op == '-': answer = num1 - num2 elif op == '*': answer = num1 * num2 else: answer = num1 / num2 return expression, answer # 定义生成表达式列表的函数 def generate_expressions(num): expressions = [] answers = [] for i in range(num): expression, answer = generate_expression() expressions.append(expression) answers.append(answer) return expressions, answers # 定义检查答案的函数 def check_answer(expression, answer, user_answer): if answer == user_answer: print("{} = {},回答正确!".format(expression, user_answer)) return 1 else: print("{} = {},回答错误!正确答案为 {}。".format(expression, user_answer, answer)) return 0 # 定义运行测试的函数 def run_test(): # 用户输入条件 num = int(input("请输入目数量:")) operators_str = input("请输入要使用的运算符(+,-,*,/中的任意组合,例如'+-'表示使用加法和减法):") nums_range_str = input("请输入数字范围(用空格分隔,例如'1 100'表示使用1-100之间的数字):") # 解析用户输入条件 operators_to_use = [] for op in operators_str: if op in operators: operators_to_use.append(op) if not operators_to_use: operators_to_use = operators nums_range = nums_range_str.split() if len(nums_range) == 2: min_num = int(nums_range[0]) max_num = int(nums_range[1]) else: min_num = 1 max_num = 100 # 生成目 expressions, answers = generate_expressions(num) # 等待用户输入答案并检查 score = 0 for i in range(num): print("第{}:{}".format(i + 1, expressions[i])) user_answer = int(input("请输入答案:")) score += check_answer(expressions[i], answers[i], user_answer) # 计算得分并输出测试结果 print("测试结束,得分:{}/{}。".format(score, num)) # 运行测试程序 run_test() ``` 以上代码中,我们通过定义多个函数实现了生成四则运算表达式、生成指定数量的四则运算表达式、计算表达式答案、检查用户输入答案是否正确等功能,并通过一个 `run_test` 函数将这些功能组合起来,实现了一个简单的四则运算自动生成程序。您可以根据自己的需求和实际情况进行修改和扩展。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值