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

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

一、程序要求

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

四、结果截图

 

转载于:https://www.cnblogs.com/Aliqiao/p/5248127.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值