zoukankan      html  css  js  c++  java
  • 软件工程个人作业01

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

    1.设计思想

    (1)利用系统时间随机生成六个变量,其中四个0~99的整数变量作为数学题的算数因子;随机生成的0~3结合switch语句表示四则运算符;随机生成的0~1结合switch语句生成真分数或整数的四则运算题。

    (2)用循环语句保证输出题目数量为三十。

    (3)用条件语句保证真分数的生成,判断运算题是够有意义。

    (4)写一个分数化简的函数。

    2.源程序代码

    //用随机数生成30道小学数学题
    //Jiang LingJun 2016,03,07
    #include <iostream>
    #include <cstdlib>
    #include <ctime>
    using namespace std;
    void Abbreviation(int &x,int &y)//分数化简  //注意取地址符不能省略,引用传递!!
    {
      int i;
      for(i=x;i>0;i--)
        if(x%i==0&&y%i==0)
          {x=x/i;y=y/i;break;}  //截图出现未化简问题原因:没加break,牢记!

    }

    void main()
    {
      srand(unsigned(time(0)));//用系统时间生成随机数种子

      int i;
      for(i=0;i<30;i++)
      {
        int c;
        char s;//定义字符型变量表示随机产生的运算符
        c=rand()%4;//利用系统时间产生随机数
        switch (c)
        {
          case 0: s='+';break;
          case 1: s='-';break;
          case 2: s='*';break;
          case 3: s='/';break;
        }
        int a,b,d,f;
        a=rand()%100;
        b=rand()%100;
        d=rand()%100;
        f=rand()%100;//随机数生成数学题中的因子

        int e;
        e=rand()%2;//随机生成真分数运算或者整数运算题的变量
        switch(e)
        {
          case 0://生成整数运算题的情况
            if(b==0&&c==3)
              i--;//除数为0时重新生成一个题目,保证30道题的数量
            else
              cout<<a<<s<<b<<"="<<endl;
              break;
          case 1://生成真分数运算题的情况
            if(b!=0&&f!=0&&a<b&&d<f&&c>=2)//真分数相乘除的情况
            {
              Abbreviation(a,b);
              Abbreviation(d,f);
              cout<<a<<"/"<<b<<s<<"("<<d<<"/"<<f<<")"<<"="<<endl;
            }
            else if(b!=0&&f!=0&&a<b&&d<f&&c<=2)//真分数相加减的情况
            {
              Abbreviation(a,b);
              Abbreviation(d,f);
              cout<<a<<"/"<<b<<s<<d<<"/"<<f<<"="<<endl;
            }
            else
              i--;//重新生成题目,保证30道题的数量
              break;
        }
      }
    }

    3.运行结果截图:

    4.上课未完成原因

    (1)忘记switch语句用法及随机数生成算法

    (2)编程思维不够灵活

  • 相关阅读:
    mybatis中&gt;=和&lt;=的实现方式
    沙盒
    华硕 X201E 拆机
    延迟满足
    文本输入框自适应高度
    Qt实战之酷狗音乐
    协议栈处理中的conntrack HASH查找/Bloom过滤/CACHE查找/大包与小包/分层处理风格
    【processing】小代码3
    【processing】小代码2
    【processing】小代码
  • 原文地址:https://www.cnblogs.com/jianglingjun/p/5251774.html
Copyright © 2011-2022 走看看