• 作业二(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语言不熟悉,所以还是很不熟练,而且深深的感觉到了自己的基础知识不牢固,其实是很简单的一个小程序,听起来看起来都非常简单,但是自己上手才发现苦难重重,以后一定不能眼高手低,多实践,无论难易。
  • 相关阅读:
    1.4.2.3. SETUP(Core Data 应用程序实践指南)
    1.4.2.2. PATHS(Core Data 应用程序实践指南)
    1.4.2.1. FILES(Core Data 应用程序实践指南)
    1.4.2. 实现 Core Data Helper 类(Core Data 应用程序实践指南)
    1.4.1. Core Data Helper 简介(Core Data 应用程序实践指南)
    1.4. 为现有的应用程序添加 Core Data 支持(Core Data 应用程序实践指南)
    1.3.2. App Icon 和 Launch Image(Core Data 应用程序实践指南)
    1.3.1. 新建Xcode项目并设置故事板(Core Data 应用程序实践指南)
    php验证邮箱是否合法
    如何使js函数异步执行
  • 原文地址:https://www.cnblogs.com/ccxx/p/5285878.html
Copyright © 2020-2023  润新知