zoukankan      html  css  js  c++  java
  • 软件构造:完善口算题卡

    请完善课上的口算题卡代码,实现重复题目的检测功能:

    package cbsc.cha2;
    
    import java.util.Random;
    
    /* 分解成4个部分:
    
    (1)增加一个程序头打印函数void printHeader(),比如简单说明本程序的作用和使用。
    
    (2)函数void generateEquations(),产生加法或减法算式的符号串并存入一个数组。
    
    (3)输出习题的函数void printExercise(),它接收generateEquations的输出,按
    
             照要求打印输出所有的算式。
    
    (4)输出习题中每个算式的计算结果void printCalculations()。
    
     */
    
    public class BinaryOperation_01 {
    
     static String [] e = new String[50];
    
     static short [] r = new short[50];
    
     public static void printHeader(){
    
     System.out.println("--------------------------------------");
    
     System.out.println("- 程序输出50道100以内的加法减法算式的习题 -");
    
     System.out.println("- 每次运行程序可得到一套50道题的习题及答案 -");
    
     System.out.println("--------------------------------------");
    
     }
    
     public static void generateEquations(){
    
     short m=0, n=0,v=0,ov = 0;   
    
     char o='+';
    
     Random random = new Random();
    
     for (int i=0;i<50; i++){
    
     ov = (short) random.nextInt(2); 
    
     m = (short)random.nextInt(101); // 随机产生运算数
    
     if (ov == 1){
    
     do {
    
     n = (short)random.nextInt(101);
    
     v = (short) (m + n);
    
     } while (100 < v || v < 0); 
    
     o = '+';
    
     } else {
    
     do {
    
     n = (short)random.nextInt(101);
    
     v = (short) (m - n);
    
     } while (100 < v || v < 0);
    
     o = '-';
    
     } 
    
     e[i]=""+m+o+n+"=";
    
     r[i]=v;
    
     
    
     if(!jiancha(e,i)) {
    
     i--;
    
     }
    
     
    
     }
    
     }
    
     public static boolean jiancha(String [] e,int i) {
    
     for(int j=0;j<i;j++) {
    
     if(e[i].equals(e[j])) {
    
     return false;
    
     }
    
     }
    
     return true;
    
     }
    
     public static void printExercise(){
    
     for (int i=0;i<e.length; i++){
    
     System.out.println(""+(i+1)+":	"+e[i]);
    
     }
    
     }
    
     public static void printCalculations(){
    
     for (int i=0;i<r.length; i++){
    
     System.out.println(""+(i+1)+":	"+r[i]);
    
     }
    
     }
    
     public static void main(String[] args) {
    
     printHeader();
    
     generateEquations();
    
     printExercise();
    
     System.out.println();
    
     System.out.println("---------------------------");
    
     System.out.println("- 下面是习题的参考答案    ");
    
     printCalculations(); 
    
     }
    
    }

  • 相关阅读:
    bzoj 2733 [HNOI2012]永无乡
    CF550D Regular Bridge
    bzoj 1911 [Apio2010]特别行动队
    CF1137A/1138C Skyscrapers
    CF295C Greg and Friends
    CF1130E Wrong Answer
    bzoj 1029 [JSOI2007]建筑抢修
    iOS 流布局 UICollectionView使用(简单使用)
    Swift 学习笔记 (解决Swift闭包中循环引用的三种方法)
    Swift 学习笔记(面向协议编程)
  • 原文地址:https://www.cnblogs.com/mjhjl/p/15302673.html
Copyright © 2011-2022 走看看