zoukankan      html  css  js  c++  java
  • 用Java随机生成四则运算

    代码链接:https://github.com/devilwjy/Code.Demo

    需求分析:

    1.程序可接收一个输入参数n,然后随机产生n道加减乘除练习题,每个数字在 0 和 100 之间,运算符在3个到5个之间。

    2.每个练习题至少要包含2种运算符。

    3.练习题在运算过程中不得出现负数与非整数,比如不能出 3/5+2=2.6,2-5+10=7等算式。

    4.练习题生成好后,将学号与生成的n道练习题及其对应的正确答案输出到文件“result.txt”中,不要输出额外信息,文件目录与程序目录一致。

    当程序接收的参数为4时,以下为输出文件示例:

     

    功能设计:

    1.从键盘输入一个数值,并生成相应数量的四则运算练习题。

    2.数值的范围为1到100,运算符的范围是+,-,*,/。

    3.数值的个数为3个,运算符的个数为2个。

    4.运算过程中不得出现负数与非整数。

    5.将学号、生成的四则运算练习题并及计算答案输出到名为“Result.txt”的文档中。

    设计实现:

         

    测试运行:

       

    核心代码:

    以第一个运算符为“/”为例

     1 //第一个运算符为“/”
     2                 else{
     3                     if(data1%data2==0 && data2!=0)//判断data1能否被data2整除,且除数data2不能为0
     4                     {
     5                         if(operator[num2]=="+")//乘除的优先级高于加减,所以可以顺着往下计算
     6                         {
     7                             result=data1/data2+data3;
     8                             System.out.println(str+"="+result);
     9                             
    10                         }
    11                         else if(operator[num2]=="-")
    12                         {
    13                             if(data1/data2>=data3)//判断data1/data2的商是否大于data3
    14                             {
    15                                 result=data1/data2-data3;
    16                                 System.out.println(str+"="+result);
    17                                  
    18                             }
    19                             else{
    20                                 number++;//不符合条件就将表达式的个数加1,进行下一个表达式的计算
    21                             }
    22                         }
    23                         else if(operator[num2]=="*")
    24                         {
    25                             result=data1/data2*data3;
    26                             System.out.println(str+"="+result);
    27                             
    28                         }
    29                         else{
    30                             int result1=data1/data2;
    31                             if(result1%data3==0 && data3!=0)//判断data1/data2的商能否整除data3,且data3不能为0
    32                             {
    33                                 result=data1/data2/data3;
    34                                 System.out.println(str+"="+result);
    35                                 
    36                             }
    37                             else{
    38                                 number++;
    39                             }
    40                         }
    41                     }
    42                     else{
    43                         number++;
    44                     }
    45                 }

    总结:

    本次实验我的实现过程很简单,而且有很大的局限性,只能生成含有三个数、两个运算符的四则运算练习题。一开始我的想法是将随机生成的四则运算放在一个字符串里,根据逆波兰式运算,将中缀表达式转换成后缀表达式,然后存储在栈中,但是最后没能成功,只好用一种极为简单的方式实现这个实验。说来有些惭愧,有点投机取巧之嫌,不过我的编程能力很差,纵然仔细研究了网上博客中的代码,还是写不出想要实现的方法。虽然很遗憾,但我也只能做到这儿了,不能说问心无愧,只能表明以前用的功太少了,以后回尽力改正,养成良好的习惯。

    PSP

    任务内容

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

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

    Planning

    计划

    10

    12 

    Estimite

    估计任务所需时间,并规划大致工作步骤

    10 

    15 

    Development

    开发

    100 

    120 

    Analysis

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

    Design Spec 

    生成设计文档 

    6

    Design Review 

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

    6

    Coding Standard 

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

    Design 

    具体设计 

    12 

    14 

    Coding 

    具体编码 

    40 

    46 

    Code Review 

    代码复审 

    12 

    15 

    Test 

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

    15 

    12 

    Reporting 

    报告 

    12 

    10 

    Test Report 

    测试报告 

    Size Measurement

    计算工作量

    3

    Postmortem & Process Improvement Plan 

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

     

  • 相关阅读:
    计算1至n中数字X出现的次数
    DOM处理
    SQL Server中日志
    怎样玩转千万级别的数据
    协议的分用以及wireshark对协议的识别
    序列化json对象,通过ajax传入asp.net mvc后台
    新时代的Vim C++自动补全插件 clang_complete
    ASP.NET Web API 接口执行时间监控
    应用之星在线app开发平台,菜鸟也会做应用
    1.11 查找空值
  • 原文地址:https://www.cnblogs.com/devilwjy/p/8612630.html
Copyright © 2011-2022 走看看