zoukankan      html  css  js  c++  java
  • 四则运算题目生成程序

    博客班级 班级链接
    作业要求 作业要求链接
    作业目标 培养编码能力
    学号 3180701115

    题目要求

    写一个能自动生成小学四则运算题目的程序,然后在此基础上扩展:

    1)除了整数以外,还要支持真分数的四则运算,例如:1/6+1/8=7/24

    2)程序要求能处理用户的输入,判断对错,累积分数

    3)程序支持可以由用户自行选择加、减、乘、除运算

    4)使用-n参数控制生成题目的个数,例如Myapp.exe -n 10,将生成10个题目

    代码说明:
    `计算公约数:

    public static int GCD(int m, int n) {//辗转相除法
    while (m % n != 0) {
    int t = m % n;
    m = n;
    n = t;
    }
    return n;
    } 约分:

    public static String Reduction(int m, int n) //约分
    {
    String t;
    if (n == 1) {
    t = m + "";
    } else {
    t = (m) + "" + "/" + (n) + "";
    }
    return t;
    } 加法运算: 

    public static String add(Fraction a, Fraction b) //加法
    {
    int m = a.getNumerator() *b.getDenominator() + a.getDenominator() * b.getNumerator();
    int n = a.getDenominator() * b.getDenominator();
    int t = Fraction.GCD(m,n);
    return Fraction.Reduction(m / t, n / t);
    } 减法运算:

    public static String sub(Fraction a, Fraction b)//减法
    {
    int m = a.getNumerator() * b.getDenominator() - a.getDenominator() * b.getNumerator();
    int n = a.getDenominator() * b.getDenominator();
    int t = Fraction.GCD(m,n);
    return Fraction.Reduction(m / t, n / t);
    } 乘法运算:

    public static String mul(Fraction a, Fraction b)//乘法
    {
    int m = a.getNumerator() * b.getNumerator();
    int n = a.getDenominator() * b.getDenominator();
    int t = Fraction.GCD(m,n);
    return Fraction.Reduction(m / t, n / t);
    } 除法部分 :

    public static String div(Fraction a, Fraction b)//除法
    {
    int m = a.getNumerator() * b.getDenominator();
    int n = a.getDenominator() * b.getNumerator();
    int t = Fraction.GCD(m,n);
    return Fraction.Reduction(m / t, n / t);
    } 验证对错,如果错误显示正确答案:

    public static boolean compare(String m, String n) //比较输入结果与答案
    {
    if (m.equals(n))
    {System.out.println("恭喜你,回答正确!");
    return true;}
    else
    {
    System.out.println("回答错误,再接再厉,正确答案是:" + n);
    return false;
    }
    } 统计正确率、记时:

    public class Test {
    @SuppressWarnings("resource")
    public static void main(String[] args) {
    Fraction f1 = new Fraction();
    Fraction f2 = new Fraction();
    int operator;
    int right=0,wrong=0;
    String answer;
    Scanner s1 = new Scanner(System.in);
    System.out.println("请输入想要完成的题目数 :");
    int i = s1.nextInt();
    long begin = System.currentTimeMillis();

        ...
    

    long end = System.currentTimeMillis();
    long hour = (end - begin)/3600000;
    long minute = (end - begin-hour36000000)/60000;
    long second = (end - begin-hour
    36000000-minute*60000)/1000;
    double total = (double)right+wrong;
    System.out.println(" 您已完成练习!");
    System.out.println("你所用的时间是:" + hour+"小时"+minute+"分钟"+ second+"秒");
    System.out.println(' '+"一共有"+i+"题"+" ,"+"做对"+right+"题"+" ,"+"做错"+wrong+"题");
    System.out.printf("正确率:%f",right/total *100 );
    System.out.println("%");
    }
    }`
    测试运行:

    个人小结:

    通过百度和同学的帮助之下终于完成了这次的作业,程序主要实现基本的四则运算,不能支持多个运算符,希望在以后的学习中能改进代码,实现更好的功能

  • 相关阅读:
    【抓包】Charles设置断点
    获取绑定到DataGridView中某一行的数据
    持续集成经验分享Bamboo+Ant+SVN的构建方案
    JIRA.HOME locked被锁的解决方案
    JIRA使用说明
    jira 4.2 使用Oracle数据库的详细安装(含破解)
    Linux + JIRA4.2 + MySQL安装&破解&配置攻略
    EXECUTE IMMEDIATE oracle介绍
    园子里的哪位大哥给我说说WinCE程序的开发,谢谢了
    PL/SQL DEVELOPER中的专用复制(Special Copy)
  • 原文地址:https://www.cnblogs.com/pianyu666/p/13939601.html
Copyright © 2011-2022 走看看