zoukankan      html  css  js  c++  java
  • 软件工程个人作业02

    二柱子,你真是太厉害了!

    package 二柱四则;
    
    import java.io.File;
    import java.io.FileNotFoundException;
    import java.io.FileOutputStream;
    import java.io.PrintStream;
    import java.util.Random;
    import java.util.Scanner;
    import java.util.Vector;
    
    public class Szys {
    
        static int gs;//此次出题每题运算个数
        static int kh=0;//有无括号,默认没有
        static int i=0,j=0;//循环出题i(N),j(gs)
        static int jsj;//每次出题加入数据
        static String st1,str2;//运算数字   运算符
        static Scanner sc=new Scanner(System.in);
        static Random ne=new Random();
        static List list = new List();
        //static Vector vector=new Vector();
        static Vector<String> va=new Vector<String>();//一维元素
           
        public static void main(String[] args) throws FileNotFoundException
        {
            System.out.println("用户您好,请对该次出题做出要求");
            
            //基本要求
            System.out.print("出题数目N(正整数):");
                int N=sc.nextInt();
            System.out.print("输入运算范围fw?(1~fw,正整数?):");
                int fw=sc.nextInt();
            System.out.print("是否有乘除cc(有1,无0):");
                int cc=sc.nextInt();
            System.out.print("是否有真分数zf(有1,无0):");
                int zf=sc.nextInt();
            System.out.println("是否要求减法无负数(是1,否0)");
                int fs=sc.nextInt();
                
            //分类选择
                
                //整数
                //chA    整数+对负数不作要求+加减
                if(cc==0&&fs==0&&zf==0)
                {
                    System.out.println("输入此次出题每题运算数个数gs(2<=gs<=10)");
                     gs=sc.nextInt();
                     if(gs>2)
                         {
                         System.out.println("是否要求括号(是1,否0)");
                         kh=sc.nextInt();
                         }
                     chA(N,fw,gs,kh);
                }
                
                //chB 整数+对负数作要求+加减
                //chC 整数+对负数不作要求+加减乘除+对余数不作要求
                //chD 整数+对负数不作要求+加减乘除+对余数作要求
                //chE 整数+对负数作要求+加减乘除+对余数作要求
                
                
                //分数
                
           /* cc=1
            System.out.println("是否要求除法无余数(是1,否0)");
                int ys=sc.nextInt();
            */
            /* zf=1
                System.out.println("要求真分数个数(小于等于题目数N)");
                    int zfnn=sc.nextInt();
              */
            /*
             System.out.println("是否要求括号(是1,否0)");
                 int kh=sc.nextInt();个数>2才有括号
             */
                
            /*
             System.out.println("输入此次出题每题运算数个数gs(2<=gs<=10)");
                 int gs=sc.nextInt();
             */
                
                
                
        }//main
        public static void chA(int N,int fw,int gs,int kh) throws FileNotFoundException
        {//chA    整数+对负数不作要求+加减
            //因为四则运算中缀表达式特点是:奇数个数与奇数个运算符交替进行。
            
            for(i=0;i<N;i++)
            {
                String tt = "";//每道加入vector的题目
                /*
                因为根据用户选择,可能会出现括号
                所以每道题必须以链表形式添加
                 */
                
                //对于无括号则无需链表
            //------出题--------
            for(j=1;j<=2*gs;j++)
            {
                if(j==2*gs)
                    tt+="=";
                else if(j%2!=0)//随机出数据
                {
                    jsj=ne.nextInt(fw+1);
                    tt+=jsj+" ";//要加入各种类型的数据加入String 空格号是很重要的。
                    //list.insert(jsj);
                }
                else if(j%2==0&&j!=2*gs)//随机出符号
                {
                    char[] fh={'+','-'};
                    int ysfh=ne.nextInt(fh.length);
                    char h=fh[ysfh];
                    tt+=h+" ";//只针对无括号,要改变,要顺便加入链表
                    //list.insert(h);
                }
            }
            //---------出完一题---------
             /*for(int l=0;l<list.size;l++)//将出题加入vector数组以便打印
                {
                    tt+=list.head.next.data+" ";
                     list.head=list.head.next;
                }
             */
            if(kh==1)//有括号
            {
                //要用链表了,链表元素是object类型,但是要怎么转换呢?
            }
            //---------查重操作---------
                if(i == 0)
                    va.add(tt);
                else if(i!=0){
                    for(int k = 0; k <i; k++) 
                    {
                        if(va.get(k).equals(tt))
                            i--;
                        else
                        {
                            va.add(tt);
                            break;
                        }
                    }//for
                }//else    
            //-----查重完毕-----
            }//出无括号N题完成
            
            
            
            //---------打印选择方式--------
            System.out.print("出题完成,请选择  1打印    0预览:");
            int cho=sc.nextInt();
            if (cho==1)
            {
                for(int pt=0; pt<va.size();pt++)
                {
                    System.out.print(va.get(pt)+"        ");
                    if((pt+1)%5==0)System.out.println(" ");
                }
            }//打印
            else if(cho==0)
            {
                System.out.println("默认地址 E://阿超//a.txt");
                FileOutputStream  fl=new FileOutputStream(new File("E://阿超//a.txt"));
                PrintStream p= new PrintStream(fl);
                for(int pt=0;pt<va.size();pt++)
                {
                    p.print(va.get(pt)+"     ");
                    if((pt+1)%5==0)
                        p.println(" ");
                }
                p.close();
            }//预览
        }//chA完成
        
        
        
    }//class

    只写了第一种情况,运行结果如下:

    在以往的基础之上实现了多数运算,并整理了思路。

  • 相关阅读:
    java Random 随机重排
    java Random 带权重的随机选择
    java 枚举
    springboot docker 部署
    docker 国内镜像加速
    BigDecimal使用
    java继承实现的基本原理
    MySQL 数据类型
    Knockout: 让ViewModel从htm中剥离出去。
    常用代码之五:RequireJS, 一个Define需要且只能有一个返回值/对象,一个JS文件里只能放一个Define.
  • 原文地址:https://www.cnblogs.com/Amyheartxy/p/6532693.html
Copyright © 2011-2022 走看看