zoukankan      html  css  js  c++  java
  • 个人项目——二柱子的生成小学生四则运算题程序

                                    二柱子的生成小学生四则运算题程序                               

    一、程序要求

    1、自动生成30道小学生四则运算题

    2、除了整数外,还要可以生成真分数的四则运算

    二、程序设计思想

    程序分两个部分:整数部分和分数部分

    1、定义变量:第一个数(分子)、第二个数(分子)、第一个数的分母、第二个数的分母、运算符号;

    2、用时间做种子,使每次产生随机数都不一样;

    3、产生分支,分别输出整数四则运算、分数的四则运算;

    4、分支1,产生整数随机数:第一个数、第二个数;

    5、产生随机算符:用数字0-3代表+、-、*、/,即产生4以内的随机数;

    6、输出整数运算式,其中减法需要大数减小数,除法的除数不能为0;

    7、分支2,产生分数随机数:第一个数的分子、第二个数的分子、第一个数的分母、第二个数的分母、运算符号(同上);

    8、输出分数运算式,其中分数的分母不能为0且分子小于分母,减法同上,除法的除数不能为0,即除法的除数的分子分母都不能为0。

    三、源程序

    //李俏,2016.3.3
    //随机生成四则运算
    
    #include<iostream>
    #include<stdio.h>
    #include<stdlib.h>
    #include<time.h>
    using namespace std;
    
    void main()
    {
        int first,second,firstm,secondm;
        int sign,i,j;
        srand((int)time(NULL)); //用时间做种子,每次产生随机数都不一样
        for(i=0;i<30;i++)
        {
            j=rand()%2;        //选择生成整数运算还是分数运算
    
            if(j==0)           //选择整数
            {
                first=rand()%100;
                second=rand()%100;
                sign=rand()%4;
    
                switch(sign)
                {
                case 0:                                   //整数加法
                    cout<<first<<"+"<<second<<"="<<endl;
                    break;
                case 1:                                    //整数减法
                    if(first>second)
                        cout<<first<<"-"<<second<<"="<<endl;
                    else
                        cout<<second<<"-"<<first<<"="<<endl;
                    break;
                case 2:                                     //整数乘法
                    cout<<first<<"*"<<second<<"="<<endl;
                    break; 
                case 3:                                     //整数除法
                    if(second!=0)
                        cout<<first<<"/"<<second<<"="<<endl;
                    else
                        cout<<second<<"/"<<first<<"="<<endl;
                    break;
                }
            }
    
            else              //选择分数
            {
                first=rand()%100;
                second=rand()%100;//分子
                firstm=rand()%100;
                secondm=rand()%100;//分母
                sign=rand()%4;
    
                switch(sign)
                {
                case 0://分数加法
                    if(firstm!=0&&secondm!=0&&first<firstm&&second<secondm)
                        cout<<first<<"/"<<firstm<<"  +  "<<second<<"/"<<secondm<<"="<<endl;
                    else
                        i=i-1;
                    break;
                case 1://分数减法
                    if(firstm!=0&&secondm!=0&&first<firstm&&second<secondm&&(first/firstm)>(second/secondm))
                        cout<<first<<"/"<<firstm<<"  -  "<<second<<"/"<<secondm<<"="<<endl;
                    else
                        i=i-1;
                    break;
                case 2://分数乘法
                    if(firstm!=0&&secondm!=0&&first<firstm&&second<secondm)
                        cout<<first<<"/"<<firstm<<"  *  "<<second<<"/"<<secondm<<"="<<endl;
                    else
                        i=i-1;
                    break;
                case 3://分数除法
                    if(firstm!=0&&secondm!=0&&first!=0&&second!=0&&first<firstm&&second<secondm)
                        cout<<first<<"/"<<firstm<<"  /  "<<second<<"/"<<secondm<<"="<<endl;
                    else
                        i=i-1;
                    break;
                }
            }
        }
    } 

    四、结果截图

  • 相关阅读:
    量子和量子化?
    ARM内核和架构都是什么意思,内核和架构的关系是什么?(转)
    线程,进程,协程
    关于Redis的问题
    python一些语法糖用法
    Python装饰器详解
    Python基础知识
    Pyinstaller安装以及参数使用
    正则表达式(特殊字符)/Xpath语法/CSS选择器
    还在为身份验证引入的Microsoft.AspNet.Identity.EntityFramework导致多上下文,生成的DB改名困扰吗?
  • 原文地址:https://www.cnblogs.com/Aliqiao/p/5248127.html
Copyright © 2011-2022 走看看