码迷,mamicode.com
首页 > 其他好文 > 详细

四则运算2

时间:2015-03-15 18:11:15      阅读:85      评论:0      收藏:0      [点我收藏+]

标签:

 

一、设计思想

1、避免题目重复(从第二个开始,每生成一个题目,与前面所有的题目对比,不同则随机生成,相同则不产生)
2、可定制数量/打印方式(用户可通过设置题目数量n来实现定制数量,通过设置变量,用户选择来实现打印方式)
3、是否有乘除法(用户通过选择是或否实现)
     数值范围(通过设置随机数的范围实现)
     加减有无负数(通过判断减数与被减数的大小来实现,被减数比减数大则没负数,被减数比减数小则有负数)
     除法有无余数(判断被除数是否能除尽除数)
     打印中每行的间隔可调整(用户通过设置行数间隔实现)

二、源代码

#include<iostream>
#include<stdlib.h>
using namespace std;
#define  MAX 10000
#include <ctime>
#include <cstdlib>
void display()
{
 char q[4][2]={"+","-","*","/"};
 int a,b,k,m,n,o,p;
 cout<<"请输入定制数量"<<endl;
 cin>>k;//定制数量
 cout<<endl;
 cout<<"请输入数值范围(如 10 50)"<<endl;
 cin>>m>>n;
 cout<<endl;//数值范围
 cout<<"0.无乘除法"<<endl;
 cout<<"1.有乘除法"<<endl;
 cin>>o;//有无乘除 0 无 1有
 if(m<n)
 {
  int temp=n;
  n=m;
  m=temp;
 }
 if(o!=0)
 {
  cout<<endl;//数值范围
  cout<<"0.无余数"<<endl;
  cout<<"1.有余数"<<endl;
  cin>>p;//有无余数 0无 1有
 }
 int d[MAX][3];
 srand(time(0)); 
 for(int i=0;i<k;i++)
 {
  d[i][0]=rand()%(m-n)+n;
  d[i][1]=rand()%(m-n)+n;
  d[i][2]=rand()%(m-n)+n;
  a=rand()%4;
  b=rand()%4;
  if(o==1)
  {
   a=rand()%4;
   b=rand()%4;
  }
  else
  {
   a=rand()%2;
   b=rand()%2;
  }
        if(o==0)
  {
   cout<<"第"<<i+1<<"道题:"<<d[i][0]<<q[a]<<d[i][1]<<q[b]<<d[i][2]<<"="<<endl;
  }
  else if(p==0)
  {
   if(((d[i][0]%d[i][1]==0&&a==3)&&(d[i][1]%d[i][2]==0&&b==3))||(d[i][0]%d[i][1]==0&&a==3)||(d[i][1]%d[i][2]==0&&b==3))
    cout<<"第"<<i+1<<"道题:"<<d[i][0]<<q[a]<<d[i][1]<<q[b]<<d[i][2]<<"="<<endl;
   else
    i=i-1;
  }
  else
   cout<<"第"<<i+1<<"道题:"<<d[i][0]<<q[a]<<d[i][1]<<q[b]<<d[i][2]<<"="<<endl;
  
 }
 
}
int main()
{
 display();
 return 0;
}

三、运行结果

技术分享

技术分享

 

四、运行截图

五、总结

在这次实验,我更加了解了有想法到程序的过程,也知道代码不进行模块化程序出问题。程序仅仅实现了几个功能还不太全面。刚开始的时候没有思路,后来具体到每一个问题其实也没有那么困难。

 

四则运算2

标签:

原文地址:http://www.cnblogs.com/yanyafeng/p/4340041.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!