• 个人项目——二柱子的生成小学生四则运算题程序


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

    一、程序要求

    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;
                }
            }
        }
    } 

    四、结果截图

  • 相关阅读:
    [笔记]一道C语言面试题:IPv4字符串转为UInt整数
    linux内核代码注释 赵炯 第三章引导启动程序
    bcd码
    2章 perl标量变量
    1章 perl入门
    perl第三章 列表和数组
    浮动 float
    文字与图像
    3.深入理解盒子模型
    4.盒子的浮动和定位
  • 原文地址:https://www.cnblogs.com/Aliqiao/p/5248127.html
Copyright © 2020-2023  润新知