四则运算2

编程思路:

设置一个一维数组,数组里面存放随机产生的数,数组的长度有宏定义来完成,数组里面无重复的数

1、避免重复:设置一个整型变量B,当一个四则运算等式生成后,整型变量A的值加1;

2、可定制:由用户设置要打印的页数和每一页要打印的题目数量;

3、是否有乘除法:随机生成的数(加减乘除分别为1 2 3 4)是否有34

4、数值范围:宏定义一个值,使得随机生成的数在这个范围之内;

5、加减有无负数:设置一个if...else...语句判断数是否大于0;

6、除法有无余数:看被除数和除数进行取余,看它的值是否为零;

7、是否支持分数:在程序的前面使这个随机产生的数是double类型,如若不支持分数,把他强制转换为整型;

程序源代码:

#include<iostream>

#define W 100000

#define N 100//控制数值范围

using namespace std;

void main()

{  

double a0,b0,a1=0,b1=0,k;//k控制加减乘除的变化

 a0=rand()%N;b0=rand()%N;k=rand()%4;

 double A[W];//存储随机产生的数存储在数组里面  

int Page=1,Iz,Tp;//Page表示一共有多少页,Iz表示一共有多少道题目,Tp表示每页一共有多少道题目

 int B;//B表示存进多少题目的数量

 cout<<"****************************"<<endl;

 cout<<"          四则运算          "<<endl;

 cout<<"****************************"<<endl;

 cout<<"请选择(有请选1,无请选0):"<<endl;

 cout<<"1、是否有乘除法;"<<endl;  

cout<<"2、加减有无负数;"<<endl;

 cout<<"3、除法有无余数;"<<endl;

 cout<<"4、是否支持分数;"<<endl;

 int f1,f2,f3,f4;

 cin>>f1>>f2>>f3>>f4;  

cout<<"您好!请输入您一共要打印多少道题目,每页有多少道题目?"<<endl;  

cin>>Iz>>Tp;

 

 for(int i=0;i<Iz;i++)

 {  

 int t=0;  

 if(t==0)    cout<<"第【"<<Page<<"】页:"<<endl;

  if(t==Tp)    t=0;Page++;

  do   {    a1=rand()%N;    b1=rand()%N;   }while(a1==0||b1==0);  

 int a=(int)a0,b=(int)b0;

  for(int m=0;m<W;m++)  

  for(int n=m+1;n<W-1;n++)  

   if(A[m]==A[n])   

   A[m]=0;

  if(f1==0&&(k==3||k==4))

   i--;

  if(f3==0&&(a1!=0)&&(b1!=0))  

  i--;  

 if(k==1)

  {  

  if(f2==1)  

   cout<<"(-"<<a<<")+(-"<<b<<")="<<endl;  

  else   

  cout<<a<<"+"<<b<<"="<<endl;   

 if(f4==1&&a1!=0&&b1!=0)   

  cout<<a<<"/"<<a1<<"+"<<b<<"/"<<b1<<"="<<endl;   

 else    

 cout<<a<<"+"<<b<<"="<<endl;    

A[i]=a;A[i+1]=b;

   t++;

   B++;   

}

  if(k==2)   

{   

 if(f2==1)   

  cout<<"(-"<<a<<")-(-"<<b<<")="<<endl;  

  else    

 cout<<a<<"-"<<b<<"="<<endl;   

 if(f4==1&&a1!=0&&b1!=0)  

   cout<<a<<"/"<<a1<<"-"<<b<<"/"<<b1<<"="<<endl;  

  else   

  cout<<a<<"-"<<b<<"="<<endl;  

  A[i]=a;A[i+1]=b;

   t++;

   B++;

  }  

 if(k==3)  

 {  

  if(f4==1)   

  cout<<a<<"/"<<a1<<"*"<<b<<"/"<<b1<<"="<<endl;  

  else   

  cout<<a<<"*"<<b<<"="<<endl;  

  A[i]=a;A[i+1]=b;  

  t++;

   B++;

  }

  if(k==4)  

 {

   if(f4==1&&a1!=0&&b1!=0)

    cout<<"("<<a<<"/"<<a1<<")/"<<"("<<b<<"/"<<b1<<")="<<endl;  

  else   

  cout<<a<<"/"<<b<<"="<<endl;   

 A[i]=a;A[i+1]=b;  

  t++;    

B++;

  }

 }

}

总结:我修改了我的编程思路,设置一个一维数组,数组里面存放随机产生的数,数组的长度有宏定义来完成,数组里面无重复的数,我的程序错误:每页输出之后,会陷入死循环;程序设置的布局非常重要,条理要清晰,当程序比较多的时候,每行必要的时候添上注释,表明这句的功能;生成程序没有错误,但是有警告的时候,最好修改一下!

                  学生:陈杰     日期:19/3/2015   教师:王建民   课程:软件工程概论    

日期

开始时间

结束时间

中断时间

净时间

活动

备注

3/14

11:00

12:10

20

50

设置程序的布局和思路

3/15

10:00

12:00

25

95

避免重复和打印方式

3/16

10:50

11:50

10

50

控制一些参数

3/17

19:00

21:00

50

30

调试程序,修改错误

3/18

14:00

15:00

10

40

反复修改

3/19

16:00

18:00

50

70

实验截图,上传博客

 
原文地址:https://www.cnblogs.com/chenjie00/p/4351013.html