博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
软件工程概论03
阅读量:6992 次
发布时间:2019-06-27

本文共 6125 字,大约阅读时间需要 20 分钟。

设计思路

1、输入:输入选择;

2、选择内容:选择出2位数的题还是多位数的题还是退出程序

           选择1是否有乘除法(运算符0-1或0-3);

             选择5加减有无负数;

             选择6除法有无余数;

             选择7是选择数量或打印方式。

             3是数值范围的前域

             4是数值范围的后域

3、加工:2位数的题设置循环,令其长度为一个足够大的数,满足程序一次运行可多次使用

      是否有乘除法:在前面做出选择后,在下面只需设置运算符随机出数的范围在0-1之间还是0-3之间

      数值范围:即四则运算随机出数的范围在前域~后域

     加减有无负数:对随机生成的数字进行运算,如果进行加/减运算之后,有负数,则根据选择进行保留或舍弃

     控制题目不能重复:将之前的题目存放在数组中,然后依次进行比较

      打印方式:根据用户输入要求一行输出几列后,利用取余的方法判断是否要换行输出

        计算则按照顺序计算即可

    多位数的题:

设置循环,令其长度为一个足够大的数,满足程序一次运行可多次使用

      是否有乘除法:在前面做出选择后,在下面只需设置运算符随机出数的范围在0-1之间还是0-3之间

      数值范围:即四则运算随机出数的范围在前域~后域

     加减有无负数:对随机生成的数字进行运算,如果进行加/减运算之后,有负数,则根据选择进行保留或舍弃

    有无括号:用随机数来进行选择在原来式子之前还是之后进行添加

     控制题目不能重复:将之前的题目存放在数组中,然后依次进行比较

    打印方式:根据用户输入要求一行输出几列后,利用取余的方法判断是否要换行输出

    带括号的计算是直接从最里层括号开始往外依次计算

     不带括号的计算则分为没有乘除法和有乘除法

      没有乘除法的是将运算式存为二维数组,将数值和运算符依次分别存放于两个数组中,然后按从左到右的顺序进行计算

    有乘除法的则需进一步统计,在哪有除法或者乘法,然后先进行这两个运算。

4、输出:2位数运算,显示运算式以及用户输入的结果,还有系统判断的结果

            最后,则是系统统计用户的做题情况

             多位数运算则是显示运算式以及系统产生的结果

 

 

1 import java.util.Random;  2 import java.util.Scanner;  3   4 import javax.swing.JOptionPane;  5   6 //4:00  7 public class Arithmetic {  8   9     public static void main(String[] args) { 10         // TODO 自动生成的方法存根 11         int c;//选择 12         int c1,c4,c5,c6,c7,c8; 13         int a,b,d1;//二位数运算 14         int c2,c3; 15         int e=0;//运算符 16         String s=""; 17         double d=0.0;//2位数的结果,用户 18         double f=0.0,g=0.0;//2位数结果,系统,多位数结果,系统 19         int flag=0;//判断是否输出 20         int m=0;//题数 21         Random rand = new Random(); 22         for(int i=0;i<100000000;i++) 23             { 24                 System.out.println("请输入选择:1、2位数运算  2、多位数运算 3、退出"); 25                 Scanner input=new Scanner(System.in) ; 26                 c=input.nextInt(); 27                 if(c==1) 28                 { 29                     System.out.println("请输入选择:1 、有乘除法 2、无乘除法"); 30                      Scanner input1=new Scanner(System.in) ; 31                      c1=input1.nextInt(); 32                      System.out.println("请输入数值范围的前域 "); 33                      Scanner input2=new Scanner(System.in) ; 34                      c2=input2.nextInt(); 35                      System.out.println("请输入数值范围的后域"); 36                      Scanner input3=new Scanner(System.in) ; 37                      c3=input3.nextInt(); 38                      System.out.println("请输入选择:1、加减有负数 2、加减无负数"); 39                      Scanner input4=new Scanner(System.in) ; 40                      c4=input4.nextInt(); 41                      System.out.println("请输入选择:1、除法有余数 2、除法无余数"); 42                      Scanner input5=new Scanner(System.in) ; 43                      c5=input5.nextInt(); 44                      System.out.println("请输入出题数量"); 45                      Scanner input6=new Scanner(System.in) ; 46                      c6=input6.nextInt(); 47                      System.out.println("请输入在一行中输出几列运算式?"); 48                      Scanner input7=new Scanner(System.in) ; 49                      c7=input7.nextInt(); 50                         String []Repeat=new String[2*c6]; 51                      for(int w=0;w
=0) 77 { 78 flag=0; 79 } 80 else 81 { 82 flag=1; 83 } 84 } 85 if(e==1) 86 { 87 if((a-b)>=0) 88 { 89 flag=0; 90 } 91 else 92 { 93 flag=1; 94 } 95 } 96 } 97 //符号 98 if(e==0) 99 {100 s="+";101 f=a+b;102 }103 if(e==1)104 {105 s="-";106 f=a-b;107 }108 if(e==2)109 {110 s="*";111 f=a*b;112 }113 if(e==3)114 {115 if(b!=0)116 {117 if(c5==1)118 {119 s="/"; 120 f=a/b;121 }122 if(c5==2)123 {124 if(a%b==0)125 {126 s="/";127 f=a/b;128 }129 if(a%b!=0)130 {131 flag=1;132 }133 }134 135 }136 }137 //判断重复138 if(a<0.0&&b>=0.0)139 {140 Repeat[w]="("+a+")"+s+b;141 }142 if(a>=0.0&&b<0.0)143 {144 Repeat[w]=a+s+"("+b+")";145 }146 if(a<0.0&&b<0.0)147 {148 Repeat[w]="("+a+")"+s+"("+b+")";149 }150 if(a>=0.0&&b>=0.0)151 {152 Repeat[w]=a+s+b;153 }154 for(int w2=0;w2

转载于:https://www.cnblogs.com/CkmIT/p/6694834.html

你可能感兴趣的文章
技术博客
查看>>
关于ssh远程登录太慢的解决方法
查看>>
子类化QMainWindows
查看>>
Windows完成端口 IOCP模型(一)
查看>>
修改roo的密码 虚拟机vmware8.04 Centos 6.3
查看>>
Struts2 注解
查看>>
有关xerosploit运行报错问题的有效解决方案
查看>>
ABP官方文档翻译 1.4 启动配置
查看>>
js框架简明
查看>>
Java volatile 关键字
查看>>
http 头信息详解
查看>>
文件复制
查看>>
ATS项目更新(4) 更新DLL到远程服务器
查看>>
mac 多显示器焦点快速切换
查看>>
第六周学习进度报告
查看>>
nginx发布静态网页
查看>>
Hadoop 面试题之一
查看>>
有关方法重载的实例(例4-10)
查看>>
用数组模拟邻接表
查看>>
**Git中的AutoCRLF与SafeCRLF换行符问题
查看>>