四则运算二


一 设计思路

将两个随机数字存入数组中,将四中运算符号存入数组中,利用rand()函数随机产生数字和符号,利用switch语句根据用户的需要选择输出四则运算。

(1)不重复

利用srand(time(NULL));可以是rand()产生的数不重复

(2)可定制

可以通过for循环输出一定的题目,通过求余判断是否换行

(3)范围

通过改变rand()%后面的数字来确定范围

(4)有无乘除

将四种运算存入数组中,使用switch判断是否有乘除

(5)是否有负数

比较两个数与0的大小,选择输出是否带括号

二 实验源程序

#include<iostream.h>

#include<string.h>

#include<stdlib.h>

#include<time.h>

intmain()

{

usingnamespacestd;

srand(time(NULL));//使随机数不重复

intnum[100];//数组num存放所有的用户选择

cout<<"输入最大范围:";

cin>>num[7];

cout<<"输出多少道题:";

cin>>num[5];

cout<<"打印几列:";

cin>>num[6];

cout<<"是否有乘除法(0表示有,1表示没有):";

cin>>num[3];

switch(num[3])

{

case0:

for(inti=0;i<num[5];i++)//循环输出题目个数

{

num[0]=rand()%num[7];

num[1]=rand()%num[7];

stringstr1[4]={"+","-","*","%"};

inta=rand()%4;

if((i+1)%num[6]==0)

{

cout<<num[0]<<str1[a]<<num[5]<<"="<<endl;//如果符合要求则换行

}

else

{

cout<<num[0]<<str1[a]<<num[5]<<"="<<"";//否则继续在同一行输出

}

}

break;

case1:

cout<<"加减有无负数(0表示有,1表示没有):";

cin>>num[4];

switch(num[4])

{

case0:

for(inti=0;i<num[5];i++)

{

intc=-rand()%101+25;//随机产生负数赋予c

intd=-rand()%101+25;//随机产生负数赋予d

stringstr2[2]={"+","-"};//只在加减之中选择输出

intb=rand()%2;

if(c<0&&d>=0)//if语句判断有无负数

{

if((i+1)%num[6]==0)

{

cout<<"("<<c<<")"<<str2[b]<<d<<"="<<endl;

}

else

{

cout<<"("<<c<<")"<<str2[b]<<d<<"="<<"";

}

}

elseif(c>=0&&d<0)

{

if((i+1)%num[6]==0)

{

cout<<c<<str2[b]<<"("<<d<<")"<<"="<<endl;

}

else

{

cout<<c<<str2[b]<<"("<<d<<")"<<"="<<"";

}

}

elseif(c<0&&d<0)

{

if((i+1)%num[6]==0)

{

cout<<"("<<c<<")"<<str2[b]<<"("<<d<<")"<<"="<<endl;

}

else

{

cout<<"("<<c<<")"<<str2[b]<<"("<<d<<")"<<"="<<"";

}

}

else

{

if((i+1)%num[6]==0)

{

cout<<c<<str2[b]<<d<<"="<<endl;

}

else

{

cout<<c<<str2[b]<<d<<"="<<"";

}

}

}

break;

case1://无负数则直接输出

for(inti=0;i<num[5];i++)

{

intc=-rand()%101+25;

intd=-rand()%101+25;

stringstr2[2]={"+","-"};

intb=rand()%2;

if((i+1)%num[6]==0)

{

cout<<num[0]<<str2[b]<<num[1]<<"="<<endl;

}

else

{

cout<<num[0]<<str2[b]<<num[1]<<"="<<"";

}

}

}

}

}

三 实验截图

首先输入最大范围100

然后输入30道题

打印四列

选择有乘除

选择无乘除法

选择有负数

四、PSP0级 记录表

项目计划总结:

周活动总结表

姓名:石鹤              日期:15/3/14

日期 任务

听课

编写程序

阅读课本

准备考试

日总计

周日

周一

周二

290

20

310

周三

100

70

30

200

周四

210

100

5

315

周五

200

40

30

270

周六

43

10

53

周总结

800

253

95

1148

阶段时间和效率 周数(上一次周活动表的周数+1):1

不包括上一周在内的累计时间

总计

平均

最大

最小

以前各周的累计时间

总计

800

253

95

1148

平均

800

253

95

1148

最大

800

253

95

1148

最小

800

253

95

1148

时间记录表:

学生 石鹤 日期 15/3/14

教师 王建民 课程 PSP

日期

开始时间

结束时间

中断时间

净时间

活动

备注

15/3/11

8:00

9:50

10

100

上计算机网络课

16:20

16:50

30

看高数

17: 44

18:37

20

33

编写四则运算程序

23:00

23:37

37

编写四则运算程序

3/12

10:10

12:00

10

100

上计算机接口技术课

14:00

15:50

10

100

上嵌入式开发技术课

16:50

17:50

60

背英语

22:35

23:30

55

看操作系统

3/13

8:00

12:00

40

200

上课 软件工程

操作系统

21:00

23:00

20

100

编写四则运算

3/14

12:12

12:55

43

排查代码错误


缺陷记录日志:

学生 石鹤

日期 3/14

教员 王建民

程序号 2

日期

编号

类型

引入阶段

排除阶段

修复时间

修复缺陷

15/3/11

1

编码

执行

10min

描述:case后忘了加空格了

3/12

2

编码

执行

15min

描述:最后忘了一个右括号

3/13

3

编码

执行

15min

描述:i未定义

3/14

4

编码

编译

10min

描述:数组空间分配不当

五、心得体会

本次实验对我最大的帮助是使我能够静下心来进行编程,虽然程序变得比较粗糙,一些基本的错误也常犯,比如include前把#忘了,比如打括号总是不左右一起打,程序短没有问题,程序一长就开始出现错误了,而且还很难找,都是大一不动手留下的坏毛病,学到了如何用rand()函数随机产生负数,加深了对c++的印象(虽然本来也没什么印象,因为大一c++完全荒度了),是我对于编程有了那么一丢丢的信心。

优质内容筛选与推荐>>
1、整合SpringDataJPA
2、数据库基本操作
3、【九度OJ】题目1111:单词替换
4、操作 redis - 增、删、改、查
5、第一章Python 数据模型


长按二维码向我转账

受苹果公司新规定影响,微信 iOS 版的赞赏功能被关闭,可通过二维码转账支持公众号。

    阅读
    好看
    已推荐到看一看
    你的朋友可以在“发现”-“看一看”看到你认为好看的文章。
    已取消,“好看”想法已同步删除
    已推荐到看一看 和朋友分享想法
    最多200字,当前共 发送

    已发送

    朋友将在看一看看到

    确定
    分享你的想法...
    取消

    分享想法到看一看

    确定
    最多200字,当前共

    发送中

    网络异常,请稍后重试

    微信扫一扫
    关注该公众号