个人项目2:一个能生成小学二年级四则运算题目的“软件”升级版

做这个程序花了我一个小时的时间,在这个程序里增加了一些功能:1.增加了真分数四则运算的功能 2.增加了可定制出题数量的功能(而不仅限于30道)

遇到的难点及其解决方案:

1.为了能支持真分数计算,我不得不放弃个人项目1中的方法(但整数运算不用改变)而改变一下编程思路,因为现在有四个整体变量,而且比较两次大小,每次比较把数小的放在前面作为分子,显然用以前的整体输出不太合适了。所以我选择分开输出,首选先比较两个随机变量,然后以分数的形式输出它们,然后通过switch函数随机输出加减乘除符号,最后再比较两个随机变量,然后以分数的形式并加上"=\t\t"后输出它们,就这样分三步去输出一个公式。

2.定制出题需要修改一下for循环语句,把30改为一个未知量m,然后通过scanf键盘输入进而对m进行赋值。选择整数计算和真分数计算我使用了if语句,如果键入1就是整数计算,如果键入2就是真分数计算。

代码如下:

#include<stdio.h>
#include<Windows.h>
#include<time.h>
void main()
{
    int a, b, c, d, e, f, g, h, i, m, n;
    printf("请输入题目数量:\n");
    scanf("%d",&m);
    printf("请选择计算类型(1.整数 2.真分数):");
    scanf("%d",&n);
    srand(unsigned( time(NULL)));
    if(n == 1)
    {
    for(i = 0; i < m; i++)
    {
        a = rand() % 100;
        b = rand() % 100;
        c = rand() % 4;
        switch (c)
        {
        case 0:printf("%d + %d =\t\t",a,b);
            break;
        case 1:if (a < b)
               {
                   d = a;
                   a = b;
                   b = d;
               }
             printf("%d - %d =\t\t", a, b);
             break;
        case 2:printf("%d * %d =\t\t",a,b);
            break;
        case 3:
            while (b == 0)
            {
                b = rand() % 100;
            }
            printf("%d / %d =\t\t", a, b);
            break;
        }
    }

    system("pause");
    }
    else
    {
          for(i = 0; i < m; i++)
    {
        e = rand() % 100;
        f = rand() % 100;
        g = rand() % 100;
        h = rand() % 100;
        c = rand() % 4;
      if(e >= f)
          printf("%d/%d",f,e);
      else
          printf("%d/%d",e,f);
    switch (c)
    {
    case 0:printf("+");break;
    case 1:printf("-");break;
    case 2:printf("*");break;
    case 3:printf("/");break;
    }
    if(g >= h)
          printf("%d/%d=\t\t",h,g);
      else
          printf("%d/%d=\t\t",g,h);
          }
          system("pause");

    }
}

运行结果如下:

其中我还学会了使用“\t\t”(我以前是\n,发现转行符号导致公式太占空间),而使用空格符号可以改善公式的排列,美观而不占用空间,这是个人项目1中没有的。

猜你喜欢

转载自www.cnblogs.com/xuzhengdong/p/9755914.html
今日推荐