代码作业——四则运算

要求:编程随机生成30个四则运算,算数包括整数和真分数

思路:不考虑30道的要求时,产生一道的步骤是先产生随机数1,然后随机产生运算符号()和随机产生随机数2,因为要求有30道,所以要用循环语句,此处我运了for循环,产生随机数用了rand()函数,为避免随机数每次相同用了srand函数。但我的程序存在缺点是产生一道整数运算的同时产生真分数运算。

代码如下:

/*2016.3.6.WeiLiHua四则运算,打印30道题*/
#include<iostream>
#include<ctime>
using namespace std;
void main()
{
    int sj1,sj2,sf=1,sj3,sj4,r;//定义随机数及算符
    srand((unsigned)time(NULL)); //srand函数是以现在系统时间作为时间种子产生随机数
    for(int i=0;i<15;i++)
    {
            sj1=rand()%100;
            sj2=rand()%100+1;//避免分母为0
            sj3=rand()%100+1;
            sj4=rand()%100+1;
            sf=i%4;
            switch(sf)
                {
                    case 0:
                    cout<<sj1<<"+"<<sj2<<"="<<endl;
                    if(sj1>sj3){r=sj1;sj1=sj3;sj3=r;}
                    if(sj2>sj4){r=sj2;sj2=sj4;sj4=r;}
                    cout<<sj1<<"/"<<sj3<<"+"<<sj2<<"/"<<sj4<<"="<<endl;
                    break;
                    case 1:
                    if(sj1<sj2){r=sj1;sj1=sj2;sj2=r;};//处理了一下避免负数结果的产生
                    cout<<sj1<<"-"<<sj2<<"="<<endl;
                    if(sj1>sj3){r=sj1;sj1=sj3;sj3=r;}
                    if(sj2>sj4){r=sj2;sj2=sj4;sj4=r;}
                    cout<<sj1<<"/"<<sj3<<"-"<<sj2<<"/"<<sj4<<"="<<endl;
                    break;
                   case 2:
                   cout<<sj1<<"*"<<sj2<<"="<<endl;
                   if(sj1>sj3){r=sj1;sj1=sj3;sj3=r;}
                    if(sj2>sj4){r=sj2;sj2=sj4;sj4=r;}
                    cout<<sj1<<"/"<<sj3<<"*"<<sj2<<"/"<<sj4<<"="<<endl;
                   break;
                   case 3:
                   cout<<sj1<<"/"<<sj2<<"="<<endl;
                   if(sj1>sj3){r=sj1;sj1=sj3;sj3=r;}
                    if(sj2>sj4){r=sj2;sj2=sj4;sj4=r;}
                    cout<<sj1<<"/"<<sj3<<"/"<<sj2<<"/"<<sj4<<"="<<endl;
                   break;
                   default:
                   break;
                }

    }
}

运行截图:

时间: 2024-10-28 15:31:57

代码作业——四则运算的相关文章

结对作业——四则运算 Part3. 对于结对编程的总结与思考

结对作业--四则运算 Part3. 对于结对编程的总结与思考 PB15061303 刘梓轩PB16061489 艾寅中 GITHUB 地址 戳这里 目录 Part 1. Core代码编写部分 Part 2. 封装与对接相关问题 Part 3. 对于结对编程的总结与思考 关于结对 View:(From 艾中) 不得不说,结对编程给笔者带来了一次全新的编程体验.就领航员与驾驶员的分工而言,刘承担了生成和计算的大部分任务,笔者(艾)负责了显示和输出部分的函数. 首先我作为领航员的时候,实际上是有点懵的

# 20165210 课后代码作业练习

20165210 课后代码作业练习 相关知识点总结 首先进本操作mkdir建立目录 用cd进入建立的目录 然后用vim创建脚本 然后输入要运行的代码 将100改为自己的学号 然后javac编译java运行 在一开始建立的目录下在建立src和bin 在src目录下建立Hello.java 将代码输入进去 用javac -d bin src/Hello.java 上一部是把编译完的Hello.java放到bin中 然后java -cp bin is20165210.Hello进行运行 最后一个是建立

软件工程结对作业 四则运算界面设计

软件工程结对作业 四则运算界面设计 康鑫  PB16060203 娄雨禛  PB16060356 一.项目分析 二.进度规划与完成情况 三.主要函数 四.简单的数据测试 五.编程困惑与心得 原文地址:https://www.cnblogs.com/RainLou/p/8735480.html

第一次作业——四则运算小程序

这是第一次作业,而且是个人项目,说实话一开始得到作业还是很紧张的.虽然题目比较简单,但是由于自身动手能力很差,所以还是慌得要死. 经过思考和审题,我渐渐有了思路.四则运算主要的难点在于选取数是否是随机数而且是否能保证整数相除能否除尽. 一开始关于选取数是否随机我很苦恼,因为从前写程序变量基本都是自己赋值,没想到怎么随机取数.后来经过同学的点拨,我想到了随机选取函数.比如十以内的四则运算就将0-9赋给a1 再加1就变成1-10了.而保证除尽的问题也很快想到了解决方案,只需要添加一个判断两数相除记过

第三次作业---四则运算的进一步完善

这次作业的要求是让对上次作业的四则运算进一步改善,不能在减法中出现负数,不能出现除不尽的情况. 就像这种情况,不知道怎么规定一个数值必须是正整数,所以我们就采用最笨的方法来做,定义一个f,其值为e,d的倍数. 而d做为除数,f做为被除数,所以无论如何f都是d的e倍,而我们定义的e的取值范围又为(1,10)之间的正整数,所以不管怎么随机,f都是d的正整数倍数,不会存在有余数的情况. using System;using System.Collections.Generic;using System

第一次作业-四则运算题目生成程序

代码地址:https://git.coding.net/luckydelbert/program.git 需求分析: 1.控制题目的个数 2.控制生成数的范围 3.运算符不超过三个(括号也是运算符),括号的位置随机出现 4.能够处理真假分数,并且查重 功能设计: 1.在控制台输入题目的个数及生成数的范围 2.在文本中写出答案并与标准答案进行对比 3.给出题目错对个数等详细情况 设计实现: 1.char getSignal();//随机产生运算符 2.string getNum(int);//随机

作业四则运算第二版提交

1.题目要求: 可怜的二柱子同学,老师又对他的自动出题系统提出了新的要求: (1).题目避免重复: (2).可定制(数量/打印方式): (3).可以控制下列参数: 是否有乘除法.是否有括号. 数值范围.加减有无负数.除法有无余数.否支持分数 (真分数, 假分数, …).是否支持小数 (精确到多少位).打印中每行的间隔可调整: 2.设计思想: 1.题目要求:题目避免重复 将每个算式的第一个数存到一个数组,每次生成第一个数组的时候回溯一遍如果有重复就重新生成. 2.可定制(数量.打印方式) 接受用户

第二次作业——四则运算

package sz; import java.awt.Button; import java.awt.Frame; import java.awt.Label; import java.awt.TextField; import java.util.Random; public class Jsq { Frame frame = new Frame("四则运算"); frame.setVisible(true); String one=""; String sec

个人作业-四则运算生成

软工的第一次作业在规定时间内并没有完成所有要求的任务还是比较遗憾,预计还需要2-3天才能完善. 实验之前估计耗费时间 PSP2.1 Personal Software Process Stages Time Planning 计划 · Estimate · 估计这个任务需要多少时间 3-4days Development 开发 · Analysis · 需求分析 (包括学习新技术) 10h · Design Spec · 生成设计文档 2h · Design Review · 设计复审 (和同事