• 个人作业1——四则运算题目生成程序


    个人作业1——四则运算题目生成程序

    题目描述:

    从《构建之法》第一章的 “程序” 例子出发,像阿超那样,花二十分钟写一个能自动生成小学四则运算题目的
    命令行 “软件”,满足以下需求:

    • 1.除了整数以外,还要支持真分数的四则运算,真分数的运算,例如:1/6 + 1/8 = 7/24
    • 2.运算符为 +, −, ×, ÷并且要求能处理用户的输入,并判断对错,打分统计正确率。
    • 3.要求能处理用户输入的真分数, 如 1/2, 5/12 等
    • 4.使用 -n 参数控制生成题目的个数,例如执行下面命令将生成10个题目Myapp.exe -n 10

    分析:

    程序实现的要求:

    • 自动生成题目
    • 支持整数,真分数(实现中,也有假分数)
    • 支持加减乘除
    • 判断对错并统计正确率
      对此我用C语言简单实现了需求,但我的代码不够精简和效率。

    实现步骤:

    • 提示用户要产生几道题目,用户输入题目数后开始答题。
    • 题目依次随机产生,第一道题目产生后,用户答完题,判断对错,错则给出正确答案,再继续产生下一道提。
    • 答完所有题目后给出正确率。
      程序的实现较为简单,我将题目分为整数题和真分数题,二者随机产生。
      整数函数部分实现简单,随机产生两个数,再随机产生一个1到4的随机整数,用switch来随机·产生加减乘除题目。
      并计算出答案,用itoa函数将答案转为字符串,用户输入自己计算的结果(也是字符串),两者相比较。
      分数考虑到约分还需要求最大公约数。
    int  gcd(int n,int m)
    {
       int temp,r; 
       if(n<m)
       {
        temp=n;
        n=m;
        m=temp;
       }
    while(m!=0)
    {   
    r=n%m;
    n=m;
    m=r;  
    }
    return n;
    }
    

    在除法题中可能出现分数,所以我让程序判断是否为分数,
    真分数函数部分则是随机产生四个数,如i,j,n,m.i为第一个的分子并要小于j,j为第一个数的分母。同理n为分子,m为分母。
    加减法计算时要先求出两个分母的最小公倍数。

    int zxgb(int n,int m)
    {
    	int i;
    	 for (i=n; ; i++)
             if (i%n==0&&i%m==0)   
    			 break;
    	return i;
    }
    

    实际操作过程

    如图:

    实验总结:

    我觉得我的程序还不够完善,在产生随机题目是有时要等一段时间题目才会出现,这可能是算法的问题。之后我会再逐步完善。
    实现的题目也较为简单,只有两数的四则运算。只是这样的程序花的时间也超出我的预期。

    代码地址

  • 相关阅读:
    我的收藏
    VS2019错误:CS8370 的处理方法
    Win7设置远程访问(免密码)---- Cuba
    【收藏】关于AsposeDLL的使用
    VS Code 离线安装插件(中文包)
    WinCE在启动界面无法进入系统
    WinCE 清除远程连接缓存
    MySQL 创建远程访问用户
    MySQL 命令行(常用)操作数据库
    C# 制作关键字醒目显示控件
  • 原文地址:https://www.cnblogs.com/wjunren/p/6493001.html
Copyright © 2020-2023  润新知