第二次结对作业

##四则运算生成器——驾驶员

一、题目以及要求:

能够自动生成四则运算练习题
可以定制题目数量
用户可以选择运算符
用户设置最大数(如十以内、百以内等)
用户选择是否有括号、是否有小数
用户选择输出方式(如输出到文件、打印机等)
最好能提供图形用户界面(根据自己能力选做,以完成上述功能为主)
------

二、部分函数代码及功能:

1.设置静态变量:
static int TMNumber;              //题目数量
    static int f;                           //判断符号(0表示只有+、-,1表示只有*、/,2表示运算混合)
    static int MaxNumber;           //计算的最大值
    static int k;                           //判断是否有(  )
    static int x;                               //判断是否有小数
    static int p;                           //判断输出方式
2.用户自定义功能函数:
    public static void USERSet() {
        System.out.println("请决定出题数:");
        Scanner in=new Scanner(System.in);
        TMNumber=in.nextInt();
        System.out.println("请输入0或1决定数学题所含有的符号(0表示只有+、-,1表示还有*、/):");
        f=in.nextInt();
        System.out.println("请决定运算的最大值不超过多少:");
        MaxNumber=in.nextInt();
        System.out.println("请输入0或1来决定算式中是否含有()1代表有,0代表无:");
        k=in.nextInt();
        System.out.println("请输入0或1来决定算式中是否含有小数,1代表有,0代表无:");
        x=in.nextInt();
        System.out.println("请输入0或1来决定输出方式  1代表输出到文件,0代表输出到打印机: ");      
        p=in.nextInt();
    }
3.生成随机整数函数:
//生成随机整数
public static int CreateZSJS() {
        Random r=new Random();
        int x=r.nextInt(MaxNumber);
        return x;
    }
4.生成随机浮点数函数:
//生成随机浮点数
    public static float CreateXSJS() {
        Random r=new Random();
        float x=r.nextFloat();
        return x;
    }
5.生成随机符号函数:
public static char CreateFH(){
        Random r=new Random();
        int x=r.nextInt(3);                                         
        char y =0;
        if(f==0&&x==0)
             y = '+';
        if(f==0&&x==1)
            y='-';
        if(f==1&&x==0)
            y='+';
        if(f==1&&x==1)
            y='-';
        if(f==1&&x==2)
            y='*';
        if(f==1&&x==3)
            y='/';
        if(y==0)
        {
            return CreateFH();
        }
        else
            return y;
        }
6.生成运算式函数 既主函数:
    //生成运算式
    public static void main(String[] args) {
        StringBuilder bf=new StringBuilder();                   //创建个字符串生成器
        USERSet();
        int i;
        for(i=0;i<TMNumber;i++)
        {
            bf.append(i+1);
            bf.append(':');
            bf.append('\t');
            if(k==0)
            {
                if(x==0)
                {
                    bf.append(CreateZSJS());
                    bf.append( CreateFH() );
                    bf.append( CreateZSJS() );
                    bf.append( CreateFH() );
                    bf.append( CreateZSJS() );
                    bf.append('=');
                    bf.append('\n');
                }
                else
                {
                    bf.append( CreateXSJS() );
                    bf.append( CreateFH() );
                    bf.append( CreateXSJS() );
                    bf.append( CreateFH() );
                    bf.append( CreateXSJS() );
                    bf.append('=');
                    bf.append('\n');
                }
            }
            else
            {
                Random r=new Random();
                int j=r.nextInt(2);
                if(j==0)
                {
                    if(x==0)
                    {
                        bf.append( '(' );
                        bf.append( CreateZSJS() );
                        bf.append( CreateFH() );
                        bf.append( CreateZSJS() );
                        bf.append( ')' );
                        bf.append( CreateFH() );
                        bf.append( CreateZSJS() );
                        bf.append('=');
                        bf.append('\n');
                    }
                    else
                    {
                        bf.append( '(' );
                        bf.append( CreateXSJS() );
                        bf.append( CreateFH() );
                        bf.append( CreateXSJS() );
                        bf.append( ')' );
                        bf.append( CreateFH() );
                        bf.append( CreateXSJS() );
                        bf.append('=');
                        bf.append('\n');
                    }
                }
                if(j==1)
                {
                    if(x==0)
                    {
                        bf.append( CreateZSJS() );
                        bf.append( CreateFH() );
                        bf.append( '(' );
                        bf.append( CreateZSJS() );
                        bf.append( CreateFH() );
                        bf.append( CreateZSJS() );
                        bf.append( ')' );
                        bf.append('=');
                        bf.append('\n');
                    }
                    else
                    {
                        bf.append( CreateXSJS() );
                        bf.append( CreateFH() );
                        bf.append( '(' );
                        bf.append( CreateXSJS() );
                        bf.append( CreateFH() );
                        bf.append( CreateXSJS() );
                        bf.append( ')' );
                        bf.append('=');
                        bf.append('\n');
                    }
                }
            }
        }
        if(p==0)
        {
            System.out.println(bf.toString());
        }
        else
        {
            File file = new File("d:/SZYS.txt");
            try {                                                                               //将结果输入到文件中
                FileOutputStream out = new FileOutputStream(file);
                String s=bf.toString();
                out.write(s.getBytes());
                out.close();
            } catch(Exception e){
                e.printStackTrace();
            }
            try {                                                                               //将结果从文件中输出
                FileInputStream in = new FileInputStream(file);
                byte byt[] = new byte[1024];
                int len = in.read(byt);
                System.out.println("文件中信息:" +'\n'+ new String(byt,0,len));
                in.close();
            } catch (Exception e) {
                e.printStackTrace();
            }
        }
    }
}
羞羞的工作照·····

924866-20180416193003006-215411018.png

三、代码总结及领航员点评:

说实话看到本次作业发布的时候感觉稍微有点点难度,当然我指的UI界面的地方,而且觉得有点繁琐,最近学院工作上也忙的有点焦头烂额,所以就没考虑UI界面,当然这仅仅是为我个人节省一下时间,如果过后有时间的话我会将这个代码的UI界面再写一下,那么接下来开始说代码吧,这次的作业呢我用了三个子函数分别来生成随机的数字和符号,当然并不是大家认为的那种随机,在此之间我用了用户自定义函数来确定所生成算式的条件——有无()小数乘除法等,这样的话我可以在主函数中直接生成算式,然后可以直接输出,刚开始想直接输出到打印机算了(因为不知道怎么一步一步输出到文件里,C语言会文件JAVA也学过,只不过都是直接输出到文件里,一个一个输入的话代码量会翻倍),这方面我的领航员——白璐同学给了我很大帮助,给了我一些可行的建议,让我使用字符串生成器,然后再结尾多加一部分判断输出方式的代码,就可以一次性输出到文件或者打印机上,经过她的指点与我的尝试,结果经形成了现在的代码,不得不说白璐同学是一个很好的搭档,她会在你没有什么方法,思路走到尽头的时候,给你另辟蹊径的方法。非常感谢!!!!有机会在合作,也期望着再次合作
领航员——白璐博客地址
代码地址

转载于:https://www.cnblogs.com/lmmortal/p/8836043.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值