软件工程课堂作业(一)——随机产生四则运算题目

一、设计思想:

1、首先主函数只用来调用随机产生并输出运算题目函数,随机产生并输出这一部分功能用一个randout函数实现;

2、随机产生运算数这一功能,两个运算数可以用随机函数生成,并将它们控制在100以内。其中,考虑到除数不能为零,第二个运算数随机产生时+1;

3、随机产生运算法则这一功能,运算法则一共有4种,也可以随机产生0-4的数,分情况进行四则运算。

二、源代码:

#include "stdafx.h"
#include "stdlib.h"

void randout()     //产生随机数并产生随机运算函数
{
	int x1,x2;   //两个运算数
	int i,j;
	for(i=0;i<30;i++)
	{
		x1=rand()%100;
	        x2=rand()%100+1;   //除数不能为零
	        j=rand()%4;             //j的值确定运算
		if(j==0)
			printf("%d+%d\t\t",x1,x2);
		if(j==1)
		        printf("%d-%d\t\t",x1,x2);
		if(j==2)
		        printf("%d*%d\t\t",x1,x2);
		if(j==3)
			printf("%d/%d\t\t",x1,x2);
	}
	printf("\n出题完毕!\n");
}

int _tmain( )
{
	printf("随机生成的30道运算题为:\n");
	randout();      //调用函数

	return 0;
}  

三、运行结果:

四、分析原因:

1、首先看到这道题目,我想到的是两个运算数能用随机函数产生,但是运算法则想不到怎么随机出现;

2、如果仅仅实现运算数随机而运算法则有规律的出现,循环时又卡壳了;

3、运用随机函数时,头文件出错,而且输出有些生疏。

时间: 2024-12-15 11:51:59

软件工程课堂作业(一)——随机产生四则运算题目的相关文章

软件工程课堂作业(二)——升级版随机产生四则运算题目设计思想

升级版随机产生四则运算题目要求: 1.避免题目重复: 2.可定制题目(题目数量.打印方式): 3.可以选择:是否有乘除法.是否有括号.定制数值范围.加减有无负数.除法有无余数.是否支持分数.是否支持小数.定制每行间隔等. ********************************************************************************************************* 设计思想: 1.避免重复:输出时,确定了运算符号,两个运算数都相同

软件工程课堂作业04

软件工程课堂作业04 源代码: 1 package jian; 2 import java.io.*; 3 import java.util.Scanner; 4 public class Point3D{ 5 public static int Lenght(int list[],int lenght) 6 { 7 int i,max; 8 max=list[0]; 9 for(i=1;i<=(lenght-1);i++) 10 { 11 if(list[i]>max) 12 { 13 ma

软件工程概论作业03--将随机产生的表达式导入数据库

import java.sql.Connection; import java.sql.DriverManager; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.SQLException; import java.util.Random; import java.util.Scanner; import java.util.Stack; public class Size { publ

软件工程课程作业(三)--四则运算3(C++)

伙伴链接:http://www.cnblogs.com/haoying1994/ 一.设计思路 在此前程序拥有的功能:加减有无负数,除法有无余数,打印方式有屏幕输出和文件输出以及算式可定制的功能的基础上,此次程序又添加了算式结果的计算,提示用户结果正确与否,正确与错误个数的功能.1.对于运算符的选择和算式个数,各算式的长短均利用随机数函数产生.2.对于算式计算方面:  只有两个数的加减乘除没有括号时:在减时考虑是否出现负数,除时考虑是否出现余数.  多个数的加减没有乘除和括号时:遇到减号考虑前面

软件工程课堂作业(七)续——电梯调度之整体设计

一.题目要求: 1.可以获得电梯和乘客所在楼层: 2.可以根据乘客的需求到达想到达的楼层. 二.设计思路: 1.通过用户输入可以获取乘客和电梯所在楼层: 2.通过循环,输出电梯向上/向下走的过程. 三.源代码: 1 // 电梯调度——胡亚宝 2 // 3 4 #include "stdafx.h" 5 #include<iostream> 6 using namespace std; 7 8 9 int _tmain() 10 { 11 int a,b,c,m,i; 12

软件工程课堂作业(四)——结对开发

一.题目及要求: 1.题目:返回一个整数数组中最大子数组的和. 2.要求: ①输入一个整形数组,数组里有正数也有负数:数组中连续的一个或多个整数组成一个子数组,每个子数组都有一个和:求所有子数组的和的最大值:要求时间复杂度为O(n). ②两人结对完成编程任务:一人主要负责程序分析,代码编程,一人负责代码复审和代码测试计划. 3.结对人员:胡亚宝 焦燕 二.设计思路: ①第一个方法,定义一个数组,将所有的子数组的和都求出来放到该数组中,再求最大值,输出.但是在编写过程中,我们发现如果用循环方式存放

软件工程课堂作业(十四)——揪出“水王”

一.题目: 现有一个灌水论坛,信息学院的学生都喜欢在上面交流灌水.传说在论坛上有一个“水王”,它不但喜欢发帖,还会回复其他ID发的每个帖子.坊间风闻该“水王”发帖数目已超过了帖子数目的一半. 如果你有一张当前论坛的帖子(包括回帖)列表,其中帖子的作者ID在其中,请设计算法快速找到这个传说中的“水王”. 二.设计思路: 1.首先要快速找到,要求时间复杂度要低.如果进行ID数目多少排序的话,时间复杂度至少为O(n*lgn),所以不能排序: 2.要想遍历一遍就能找到最多出现的ID,可以将数目少的ID删

软件工程课堂作业(十)——结对开发(五)

一.题目及要求: 题目:返回一个整数数组中最大子数组的和 要求(新加):①输入一个二维整形数组,数组里有正数也有负数:②二维数组首尾相接,像一条首尾相接的带子一样. 结对人员:焦燕   胡亚宝 二.设计思路: 这个题目其实就是二维数组和环型数组的结合,要解决这个问题,将之前的两个问题融合一下即可. 首先解决求出二维数组中最大子数组的问题,然后沿用一维数组的方法,将第一列放到最后一列,在求出新的二维数组的最大子数组,依次求出各个二维数组的最大子数组. 三.部分源代码: 1 for (m=0;m<5

软件工程课堂作业(十五)——揪出“水王”续

一.题目: 随着论坛的发展,管理员发现“水王”没有了,但是统计结果表明,有三个发帖很多的ID.据统计他们的发帖数量超过了总和的1/4.请设计算法从列表中快速找到他们. 二.设计思路: 扩展题目和原题基本相似,方法是一样的,都可用消除思想.可以三个比较,若不相同,则删除,若相同,则计数器加一. 三.源代码: 1 //找小“水王”——胡亚宝——2015/04/26 2 3 #include "stdafx.h" 4 #include"iostream" 5 6 7 8