zoukankan      html  css  js  c++  java
  • 四则运算2程序

    一.设计思想

     由于忘记不会数组的地址传递所以所有的程序都在主函数中有点混乱!
    用a、b数组存放分子或者是整数时的整数,xy数组存放分数时的分母,当分母为0时重新生成;当是除法时分子为0重新生成;运算符号以整数的形式存在c数组中;负号通过随机生成1和0控制分子乘以-1。

    二.源程序代码

     #include <iostream>
    using namespace std;
    #define N 100

    void main()
    {
    int a[N],b[N],x[N],y[N],c[N],sel[3],num,page,lie,hang,max;
    cout<<"..........请选择下列选项.........."<<endl;
    cout<<"1.是否有乘除法."<<endl;
    cout<<"2.有无负数"<<endl;
    cout<<"3 是否支持分数."<<endl;
    cout<<"请输入数值范围(最大值):"<<endl;
    for(int i=0;i<3;i++)
    cin>>sel[i];
    cin>>max;
    cout<<"请输入总的页数和行数列数:";
    cin>>page>>hang>>lie;
    num=page*hang*lie;

    //////////////////////////////////////////////////////////////////////////生成随机数
        if(sel[2]==1)
    {
    for(int i=0;i<num;i++)
       {
    a[i]=rand()%max;
    x[i]=rand()%max;
    while(x[i]==0)
    x[i]=rand()%max;
    b[i]=rand()%max;
      y[i]=rand()%max;
    while(y[i]==0)
    y[i]=rand()%max;
         }
        if(sel[1]==1)
          {
        for(int i=0;i<num;i++)
        {
      if(rand()%2==1)
       a[i]=(-1)*a[i];
        if(rand()%2==1)
    b[i]=(-1)*b[i];
      }
        }
       if(sel[0]==1)
    for(int i=0;i<num;i++)
    {
    c[i]=rand()%4;
    if(c[i]==3)
    {
    while(b[i]==0)
    b[i]=rand()%max;
    }
    }
       else
    for(int i=0;i<num;i++)
    c[i]=rand()%2;
    }


    else
    {
    for(int i=0;i<num;i++)
       {
    a[i]=rand()%max;
    b[i]=rand()%max;
       }
    if(sel[1]==1)
    {
    for(int i=0;i<num;i++)
    {
    if(rand()%2==1)
    a[i]=a[i]*(-1);
    if(rand()%2==1)
    b[i]=(-1)*b[i];
    }
    }
    if(sel[0]==1)
    for(int i=0;i<num;i++)
    c[i]=rand()%4;
    else
    for(int i=0;i<num;i++)
    c[i]=rand()%2;
    }
    ////////////////////////////////////////////////////////避免重复
    if(sel[2]==1)
    {
    for(int i=0;i<num-1;i++)
    {
    for(int j=i+1;j<num;j++)
    {
    while(a[i]==a[j]&&b[i]==b[j]&&c[i]==c[j])
    {a[i]=rand()%max;}
    }
    }
    }
    else
    {
    for(int i=0;i<num-1;i++)
    {
    for(int j=i+1;j<num;j++)
    {
    while(a[i]==a[j]&&c[i]==c[j])
    {a[i]=rand()%max;}
    }
    }
    }

    ///////////////////////////////////////////////////输出
    for(int k=0;k<num;k++)
    {
    if(sel[2]==1)
    {
    cout<<a[k]<<"/"<<x[k];
    switch(c[k])
    {
    case 0:
    cout<<" + ";break;
    case 1:
    cout<<" - ";break;
    case 2:
    cout<<" * ";break;
    case 3:
    cout<<" / ";break;
    }
    cout<<b[k]<<"/"<<y[k]<<"    ";

    }
    else
    {
    cout<<a[k];
    switch(c[k])
    {
    case 0:
    cout<<" + ";break;
    case 1:
    cout<<" - ";break;
    case 2:
    cout<<" * ";break;
    case 3:
    cout<<" / ";break;
    }
    cout<<b[k]<<"   ";
    }
    if((k+1)%lie==0)
    cout<<endl;
    if((k+1)%(lie*hang)==0)
    cout<<endl<<endl;
    }
    }

    三.运行结果截图

    四.编程总结

     由于忘记不会数组的地址传递所以所有的程序都在主函数中有点混乱!
    用a、b数组存放分子或者是整数时的整数,xy数组存放分数时的分母,当分母为0时重新生成;当是除法时分子为0重新生成;运算符号以整数的形式存在c数组中;负号通过随机生成1和0控制分子乘以-1。

    五.

    日期

    开始时间

    结束时间

    中断时间

    净时间

    活动

    备注

    3/13

    11:30

    12:00

    0

    30

    设置程序的布局和思路

    3/18

    14:00

    22:00

    120

    360

    编写程序

    3/19

    16:00

    19:00

    30

    70

    修改下写报告截图,上传博客

     
  • 相关阅读:
    团队项目----数据库SQL语句学习总结与实践
    团队项目----德州扑克数据库设计之改进版
    期末项目《员工考勤管理系统》
    Applet
    Json
    study of javaserver faces lifecycle
    Session
    xml的用途,定义,原理,以及前景
    互联网应用于企业级应用的区别
    JavaEE体系架构
  • 原文地址:https://www.cnblogs.com/mxj333/p/4351407.html
Copyright © 2011-2022 走看看