zoukankan      html  css  js  c++  java
  • 作业二(1)

    自动生成四则运算题目

    主要功能有:设计打的这款程序能自动生成小学四则运算题目,除了整数以外,还能支持真分数的四则运算。

    参考链接:www.cnbolgs.com/jiel/p/4810756.html

    设计思想:

    算数表达式: e:= n | e1 + e2 | e1 − e2 | e1 × e2 | e1 ÷ e2 | (e) , 其中e, e1和e2为表达式,n为自然数或真分数

    • 设计思路      
    1. 可将算式等价于   e = [num1 (a) num2] (b) [num3 (c) num4]
    2. 其中 num1, num2, num3, num4 为运算数,随机取整数或真分数; a, b, c 为运算符号
    3. 等式的body大小主要取决于a, b, c 的值,用数组定义运算符取值如下:
    4. char ysf[5] = {'+', '-', '*', '%', NULL };

      当 b 取NULL时,算式变换为  e = [num1 (a) num2] (c) num4

        当 c  取NULL时,算式变换为  e = [num1 (a) num2] (b) num3

        以此类推,但要求 a  不能为NULL。

      4. 形成初期代码:

     1 #include <stdio.h>
     2 #include<stdlib.h> 
     3 #include<time.h>
     4 #include<iostream>
     5 #define random(x) (rand()%(x))  
     6 using namespace std;
     7 int main()
     8 {
     9     int num1 = 0, num2 = 0, num3 = 0, num4 = 0;
    10     int a = 0, b = 0, c = 0;
    11     char ysf[5] = {'+', '-', '*', '%', NULL };
    12     time_t t;
    13     srand((unsigned)time(&t));   //重置随机数种子
    14     int n;
    15     cin >> n ;
    16     for (int i = 1; i <= n; i++)   // 生成n道题
    17     {
    18         do   // a运算符不为NULL
    19         {
    20             a = random(5);
    21         } while (a == 4);
    22 
    23         b = random(5);
    24         c = random(5);
    25 
    26         if (b == 4 && c != 4 )
    27         {
    28             cout << "(" << num1 << ' ' << ysf[a] << ' ' << num2 << ")" << ' ' << ysf[c] << ' ' << num4<< ' ' << '='<< ' ' << endl;
    29         }
    30         else if (b != 4 && c == 4)
    31         {
    32             cout << "(" << num1 << ' ' << ysf[a] << ' ' << num2 << ")" << ' ' << ysf[b] << ' ' << num3 << ' ' << '=' << ' ' << endl;
    33         }
    34         else if (b != 4 && c != 4)
    35         {
    36             cout << "(" << num1 << ' ' << ysf[a] << ' ' << num2 << ")" << ' ' << ysf[b] << ' ' << "(" << num3 << ' ' << ysf[c] << ' ' << num4 << ")" << ' ' << '=' << ' ' << endl;
    37         }
    38         else
    39         {
    40             cout <<num1 << ' ' << ysf[a] << ' ' << num2 << ' ' << '=' << ' ' << endl;
    41         }
    42 
    43     }
    44     return 0;
    45 }

    总结:本次作业由于以前C语言不熟悉,所以还是很不熟练,而且深深的感觉到了自己的基础知识不牢固,其实是很简单的一个小程序,听起来看起来都非常简单,但是自己上手才发现苦难重重,以后一定不能眼高手低,多实践,无论难易。
  • 相关阅读:
    android原子
    android进程优先级
    Android 的cyclicBarrier
    android中运用CountDownLatch
    java网络编程长连接的问题
    https
    http 上传文件
    netty4 断线重连
    Linux下高并发socket最大连接数所受的各种限制
    Android Studio NDK及so文件开发
  • 原文地址:https://www.cnblogs.com/ccxx/p/5285878.html
Copyright © 2011-2022 走看看