• 蔡奇宏软件工程第二次作业--四则运算


    任务要求:使用C或Java语言完成一个自动生成四则运算试题的程序。软件基本功能如下。

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

    (2)剔除重复算式。  2 + 3 =    和  2 + 3 =     是重复算式      2 + 3 =   和   3 + 2 =  不属于重复算式

    (3)题目数量可定制

    (4)相关参数可控制

              是否包含乘法和除法

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

              操作数是否含负数    

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

    一. 需求分析

      为应对小学生对于四则运算熟悉练习的掌握度,减轻出题员的负担,故设计一款程序能自动编写四则运算里的题目。

    二. 功能设计

    • 基本功能
      • 能自动生成算数式
      • 算数式符号随机生成
    • 扩展功能
      • 对生成的算数式能够自动计算并且给出算数答案
      • 算数式可以控制是否存在负数
      • 算数式可以控制是否存在乘除表达式
      • 生成的最后结果会保存在result.txt文件中方便查看
      • 算数式可以控制其操作范围

    三. 设计实现

    •   C语言
    •   引用<stdio.h>库
    •   引用<time.h>库
    •   引用<stdlib.h>库
    •   计算负数时乘以2然后减去自身得出值
    •   fopen函数来储存输出值

    四. 测试运行

      测试运行结果在控制台里面与在文本输出里面的表现

     

    五. 代码片段

       rand()用来生成随机值,使用它来获取n的值,就可以对下面的op赋值并计算相对应的算式。

        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
    ",i,op,j,q);    
                fprintf(fp,"%d%c%d=%d
    ",i,op,j,q);
                }

      如果想生成负数那么就对其上限乘以2然后在减去自身就是想要的答案。

                    i=rand()%(2*z)-z+1;
                    j=rand()%(2*z)-z+1;
                    n=rand()%2;
                    if(n==0){op='+'; q=i+j;}
                    if(n==1){op='-'; q=i-j;}

    六. 总结

       自己写的if判断语句有点多,而且我写注释的习惯不好造成我自己有时候都看不明白自己写的东西,不过经过这一次的经验与训练,相信下一次我定能在原有基础上做到更好。

    七. PSP

    PSP

    任务内容

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

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

    Planning

    计划

    8

    6

          Estimate

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

    8

    6

    Development

    开发

    66

    64

          Analysis

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

    6

    10

          Design

      具体设计

    10

    12

          Coding

      具体编码

    40

    30

          Test

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

    10

    12

    Reporting

    报告

    3

    3

          Postmortem & Process Improvement Plan

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

    3

    3

  • 相关阅读:
    JQuery 获取touchstart,touchmove,touchend 坐标
    js获取可视区大小和页面大小的兼容性写法
    Asp.net MVC4.0自定义Html辅助方法
    无废话版本-Asp.net MVC4.0 Rasor的基本用法
    IE浏览器 下面的文本框,获得焦点后无法输入内容
    C# Log4Net配置
    C#中 ? 和?? 的用法
    工作中的一些问题总结
    JsRender系列-11
    JsRender系列demo-10
  • 原文地址:https://www.cnblogs.com/himurayaiba/p/11518870.html
Copyright © 2020-2023  润新知