zoukankan      html  css  js  c++  java
  • 个人作业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;
    }
    

    实际操作过程

    如图:

    实验总结:

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

    代码地址

  • 相关阅读:
    在命令提示符中使用antlr
    Migrating to Rails 2.0.2
    从AJAX IN ACTION书中学用 RSS READER
    maple download url
    搜索
    发邀请在线RoR开发与部署环境www.heroku.com
    if can't use ruby in command line
    查询表中某字段有重复记录的个数
    WPF窗体自适应分辨率
    《思考,快与慢》
  • 原文地址:https://www.cnblogs.com/wjunren/p/6493001.html
Copyright © 2011-2022 走看看