除了整数以外,还要支持真分数的四则运算

public class c30questions {

    public static void main(String[] args) {

        print30Questions();
    }

    private static void print30Questions() {
        //说明:打印30道题函数,把接收到的题目字符串按照指定格式输出。
        for (int i = 0; i < 10; i++) {
            System.out.print( i+1 );
            System.out.print("." + getQuestion() + "    ");
            System.out.print( i+11 );
            System.out.print("." + getQuestion() + "    ");
            System.out.print( i+21 );
            System.out.println("." + getQuestion());
        }
    }

    private static String getQuestion() {
        //说明:getQuestion()得到题目函数,随机生成题目,返回题目字符串。
        int t = 0;
        String strz = "";    

        int x=1+(int)(Math.random()*100);
        int y=1+(int)(Math.random()*100);
        int z=1+(int)(Math.random()*100);

        if( z<=25 ) {
            strz = "×";
            x = x % 10;
            y = y % 10;//两个各位数相成
        }
        if( z>25 && z<=50 ) {
            strz = "÷";
            y = ( y % 10 ) + 1;//除数不能为0是不是
        }
        if( z>50 && z<=75) {
            strz = "+";
            if ((x+y) > 100) {
                x = x / 2;
                y = y / 2;//乘法相加结果不大于100
            }
        }
        if( z>75 ) {
            strz = "-";
            if( x < y ){
                t = y;
                y = x;
                x = t;//保证减法是大数减去小数
            }
        }            

        String strx = String.valueOf( x );
        String stry = String.valueOf( y );

        String ques = " " + strx + strz + stry + "=";

        if(ques.length()==5)ques = ques + " ";
        if(ques.length()==4)ques = ques + "  ";
        if(ques.length()==3)ques = ques + "   ";//保持格式

        return ques;
    }//getQuestion

}追加功能:支持真分数
private static String getPfQuestion() {
        //说明:getPfQuestion()得到真分数题目函数,随机生成真分数题目,返回真分数题目字符串。
        int t = 0;
        String strz = "";    

        int x1=1+(int)(Math.random()*10);
        int x2=1+(int)(Math.random()*10);//分母

        int y1=1+(int)(Math.random()*10);
        int y2=1+(int)(Math.random()*10);//分母

        if( x2 <= x1 ){
            t = x2;
            x2 = x1;
            x1 = t;
            if( x1 == x2 ) {
                x1 = x1 - 1;//保证分子比分母小
            }
        }

        if( y2 <= y1 ){
            t = y2;
            y2 = y1;
            y1 = t;
            if( y1 == y2 ) {
                y1 = y1 - 1;//保证分子比分母小
            }
        }

        int z=1+(int)(Math.random()*100);

        if( z<=25 ) {
            strz = "×";
        }
        if( z>25 && z<=50 ) {
            strz = "÷";
            if( y1 == 0 )
            y1 = y1 + 1;//除数的分子不能为0是不是
        }
        if( z>50 && z<=75) {
            strz = "+";
        }
        if( z>75 ) {
            strz = "-";
            if( x1/x2 > y1/y2 ) {

                t = x1;
                x1 = y1;
                y1 = t;

                t = x2;
                x2 = y2;
                y2 = t;//保证减法是大数减去小数
            }
        }            

        String strx1 = String.valueOf( x1 );
        String strx2 = String.valueOf( x2 );
        String stry1 = String.valueOf( y1 );
        String stry2 = String.valueOf( y2 );

        String ques = " " + strx1 + "/" + strx2 + strz + stry1 + "/" + stry2 + "=";

        return ques;
    }//getPfQuestion
时间: 2024-10-14 07:31:14

除了整数以外,还要支持真分数的四则运算的相关文章

软工第一个程序:像二柱子那样,花二十分钟写一个能自动生成小学四则运算题目的 “软件”,要求:除了整数以外,还要支持真分数的四则运算。

程序设计思想 本程序的设计主要基于对C/C++中产生随机数的应用,在产生算数符号部分主要采用了switch语句,通过随机产生0-3的数值来随机产生"+-*/"字符,并进行相应的处理:在处理整数操作部分时,使用try/throw语句,避免除法分母为0,语句采用一维数组,记录答案结果:在处理真分数部分,采用while语句产生合理的真分数,采用二维数组记录答案结果. 程序源代码 #include<iostream.h> #include<stdlib.h> #incl

像阿超那样,花20分钟写一个能自动生成小心四则运算题目的 “软件”,要求:除了整数以外,还要支持真分数的四则运算。 和同学们比较一下各自程序的功能,实现方法的异同,等等

package chapter; public class szys {    public static void main(String[] args)    { print30Questions();    }        private static void print30Questions()     {        //说明:打印30道题函数,把接收到的题目字符串按照指定格式输出.        for (int i = 0; i < 10; i++)        {    

像阿超那样,花20分钟写一个能自动生成小学四则运算题目的 “软件”,要求:除了整数以外,还要支持真分数的四则运算。

public class c30questions { public static void main(String[] args) { print30Questions(); } private static void print30Questions() { //说明:打印30道题函数,把接收到的题目字符串按照指定格式输出. for (int i = 0; i < 10; i++) { System.out.print( i+1 ); System.out.print("."

四则运算程序 要求:除整数外,还要支持真分数的四则运算

1 #include <stdio.h> 2 #include <stdlib.h> 3 #include <time.h> 4 #include <math.h> 5 6 int main() 7 { 8 int i=0; 9 int n=0; 10 int x=0; 11 int type; 12 char flag; 13 int left, right; 14 float result; 15 printf("请输入要出的题目数量\n&qu

写一个能自动生成四则运算题目的软件,要求除了整数,还要支持正分数的四则运算。和同学们比较各自的程序功能、实现方法的异同。

package Rational; import java.util.Random; import java.util.Scanner; public class szys{             public static void res() {                                                   System.out.println("1.显示答案\t2.直接出下一题");                             

程序输出小学四则运算表达式,支持真分数四则运算

程序设计思路: 1.运算式的输出格式可以为 数字 运算符 数字,也可以为 数字 运算符 数字 运算符 数字,还可以是更复杂的式子,在此只实现了2-3个数字的运算式. 2.将式子分为两类,第一类为20个,第二类为10个,分别用FOR循环控制输出. 3.第一类式子稍简单,只需通过随机函数将两个数字赋值,中间运算符通过数组下标的随机赋值实现随机性,再通过格式输出即可 4.此时还要考虑运算符为 ‘/’,并且除数为0的情况,这时用if语句设置条件排除即可 5.计算第一类式子结果可以参考计算器的功能代码,用

二年级四则运算的扩展,可以指定题目数量,并可支持真分数的运算

新加的要求: 1.可指定题目数量: 2.支持真分数运算. 代码编写: #include<stdio.h>  #include<Windows.h>  #include<time.h>  void main()  {      int a, b, c, d,i,m,n;      float p, q;      srand(unsigned( time(NULL)));      for (i = 0; i < 30; i++)      {         a 

小学二年级三十道四则运算题目-扩展运算,添加指定题目数量和支持真分数运算

代码: #include<stdio.h>  #include<Windows.h>  #include<time.h>  void main()  {      int a, b, c, d,i,m,n;      float p, q;      srand(unsigned( time(NULL)));      for (i = 0; i < 30; i++)      {         a = rand() % 100;         b = ran

真分数的四则运算

#include<stdio.h>int main(){ int x,y,i,a,j,k,d; for(i=0;i<15;i++) { x=rand()%(9-1+1)+1; y=rand()%(9-1+1)+1; a=rand()%(4-1+1)+1; j=rand()%(9-1+1)+1; k=rand()%(9-1+1)+1; switch(a) { case 1:if(x<y&&j<k) printf("(%d/%d)*(%d/%d)=\n&