zoukankan      html  css  js  c++  java
  • 四则运算2 程序代码,执行结果

      1 #include<iostream>
      2 #include<time.h>
      3 using namespace std;
      4 void menu()
      5 {
      6 //    system("cls");
      7     cout<<"---------------菜单---------------"<<endl;
      8     cout<<"         1.定制题目数量           "<<endl;
      9     cout<<"         2.是否有乘除法           "<<endl;
     10     cout<<"         3.数值范围               "<<endl;
     11     cout<<"         4.加减有无负数           "<<endl;
     12     cout<<"         5.除法有无余数           "<<endl;
     13     cout<<"         6.定制每行题的个数       "<<endl;
     14     cout<<"         7.定制间距               "<<endl;
     15     cout<<"         8.开始定制               "<<endl;
     16     cout<<"         9.退出                   "<<endl;
     17     cout<<"----------------------------------"<<endl;
     18 }
     19 void yunsuan(int num,int cc,int range,int yu,int neg,int mhs,int kgs)       //基础四则运算函数
     20 {
     21     srand(time(NULL));
     22     int a[100];     //存放第一个操作数的数组
     23     int b[100];     //存放第二个操作数的数组
     24     int c[100];     //存放运算符的数组
     25     int n,o,p,q,m;
     26     int repeat;      //控制是否重复   
     27     for(int i=0;i<num;i++)
     28     {
     29         n=rand()%range;
     30         a[i]=n; 
     31         o=rand()%range;
     32         b[i]=o;
     33         p=rand()%cc;
     34         c[i]=p;
     35         q=rand()%2;
     36         m=rand()%2;
     37         while(neg)
     38         {
     39             switch(q)
     40             {
     41             case(0):
     42                 a[i]=-a[i];
     43                 break;
     44             case(1):
     45                 break;
     46             }
     47             break;
     48         }
     49         while(neg)
     50         {
     51             switch(m)
     52             {
     53             case(0):
     54                 b[i]=-b[i];
     55                 break;
     56             case(1):
     57                 break;
     58             }
     59             break;
     60         }
     61         repeat=1;
     62         for(int j=0;j<i;j++)
     63         {
     64             if(a[i]==a[j]&&b[i]==b[j]&&c[i]==c[j])    //判断是否有重复
     65             {
     66                 i=i-1;
     67                 repeat=0;
     68             }
     69             else
     70             {
     71                 repeat=1;
     72             }
     73         }
     74         while(repeat)
     75         {
     76             if(i%mhs==0)
     77             {
     78                 cout<<endl;
     79             }
     80             switch(c[i])
     81             {
     82             case(0):
     83                 cout<<"("<<i+1<<") "<<a[i]<<"+ "<<b[i]<<"=";
     84                 break;
     85             case(1):
     86                 cout<<"("<<i+1<<") "<<a[i]<<"- "<<b[i]<<"=";
     87                 break;
     88             case(2):
     89                 cout<<"("<<i+1<<") "<<a[i]<<"* "<<b[i]<<"=";
     90                 break;
     91             case(3):
     92                 {
     93                     while(yu)
     94                     {
     95                         if(a[i]%b[i]!=0)
     96                             i=i-1;
     97                         repeat=0;
     98                     }
     99                     if(b[i]==0)       //判断被除数是否为0,是0则不输出
    100                     {
    101                         i=i-1;
    102                         break;
    103                     }
    104                     else
    105                     {
    106                         cout<<"("<<i+1<<") "<<a[i]<<"/ "<<b[i]<<"=";
    107                         break;
    108                     }
    109                 //    break;
    110                 }
    111             }
    112             for(int k=0;k<kgs;k++)
    113             {
    114                 cout<<"	";
    115             }
    116             break;
    117         }
    118     }
    119     cout<<endl;
    120 }
    121 
    122 
    123 void main()
    124 {
    125     int option,op1,op2,op3,op4,op5,op6,op7,op8,op9,n;
    126     int cc;
    127     menu();
    128    
    129     while(n)
    130     {
    131         cout<<"请输入选择:";
    132         cin>>option;
    133         switch(option)
    134         {
    135         case 1:
    136             {
    137                 cout<<"请输入题目数量:";
    138                 cin>>op1;
    139                 menu();
    140             //    cin>>option;
    141                 break;
    142             }
    143         case 2:
    144             {
    145                 cout<<"有乘除法请输入0,没有乘除法请输入1(程序默认有乘除法):";
    146                 cin>>op2;
    147                 if(op2==0)
    148                 {
    149                     cc=4;
    150                 }
    151                 else if(op2==1)
    152                 {
    153                     cc=2;
    154                 }
    155                 else 
    156                     cout<<"输入有误,请重新输入(有乘除法请输入0,没有乘除法请输入1):";
    157                 menu();
    158             //    cin>>option;
    159                 break;
    160             }
    161         case 3:
    162             {
    163                 cout<<"请输入数值范围";
    164                 cin>>op3;
    165                 menu();
    166             //    cin>>option;
    167                 break;
    168             }
    169         case 4:
    170             {
    171                 cout<<"无负数请输入0,有负数请输入1:";
    172                 cin>>op4;
    173                 menu();
    174             //    cin>>option;
    175                 break;
    176             }
    177         case 5:
    178             {
    179                 cout<<"有余数请输入0,无余数请输入1:";
    180                 cin>>op5;
    181                 menu();
    182             //    cin>>option;
    183                 break;
    184             }
    185         case 6:
    186             {
    187                 cout<<"请输入每行题目的数量:";
    188                 cin>>op6;
    189                 menu();
    190             //    cin>>option;
    191                 break;
    192             }
    193         case 7:
    194             {
    195                 cout<<"请输入每题之间的间距:";
    196                 cin>>op7;
    197                 menu();
    198             //    cin>>option;
    199                 break;
    200             }
    201         case 8:
    202             {
    203                 yunsuan(op1,cc,op3,op4,op5,op6,op7);
    204                 cout<<endl;
    205                 break;
    206             }
    207         case 9:
    208             cout<<"是否退出(0代表退出,1代表继续)";
    209             cin>>n;///
    210             break;
    211          
    212         }
    213     }    
    214 }

    执行结果:

    一、项目计划总结:

     

    周活动总结表

    姓名:徐擎天                                 日期:2015.3.15

    日期       任务

    听课

    编写程序

    阅读课本

    准备考试

     

     

    日总计

    周日

     

     

     

     

     

     

     

    周一

     

     

     

     

     

     

     

    周二

     100

     20

     20

     

     

     

     140

    周三

     

     40

     20

     

     

     

     60

    周四

     

     

     

     

     

     

     

    周五

     100

     120

     

     

     

     

     220

    周六

     

     120

     40

     

     

     

     160

    周总结

     200

     300

     80

     

     

     

     580

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

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

    总计

     

     

     

     

     

     

     

    平均

     

     

     

     

     

     

     

    最大

     

     

     

     

     

     

     

    最小

     

     

     

     

     

     

     

    以前各周的累计时间                                                                                    

    总计

     

     

     

     

     

     

     

    平均

     

     

     

     

     

     

     

    最大

     

     

     

     

     

     

     

    最小

     

     

     

     

     

     

     

    二、时间记录表:

    学生        徐擎天                                             日期       2014.3.15  

    教师        王建民                                             课程           PSP       

    日期

    开始时间

    结束时间

    中断时间

    净时间

    活动

    备注

     3.10

     8.00

     9.50

     10

     100

     听课,根据题目想设计思路

     

     3.11

     14.00

     15.00

     0

     60

     根据所遇到的问题,查阅资料

    将总体框架初步设定

     

     3.13

     8.00

     9.50

     10

     100

     听课

     

     

     15.00

     17.00

     0

     

     编写程序

     

     3.14

     8.00

     9.00

     0

     

     编写程序

     

     

     19.00

     20.00

     0

     

     进行最后调试,提交代码

     

    三、缺陷记录日志:

    学生       徐擎天     

    日期      2014.3.15 

    教员       王建民   

    程序号                

    日期

    编号

    类型

    引入阶段

    排除阶段

    修复时间

    修复缺陷

     3.12

     1

     

     编译

     编译阶段

     10min

     

     在调用函数时,由于主函数里的次序和调用函数里的次序没有对应,导致输出结果有误

     3.14

     2

     

     编译

     编译

     10min

     

     主菜单里面属于一个数后,没有继续执行,而是跳出了程序。由于没有循环,导致函数执行完,直接跳出

     

     3

     

     执行

     执行

     30min

     

     最后开始定制时,一直无限重复输出。后来发现是由于在循环前没有控制变量。最后问题得以解决

     

     4

     

     执行

     执行

     

     

     在9退出时,没有退出,而是继续执行。后来加入while里的变量,根据用户输出,控制程序是否退出。

  • 相关阅读:
    UVA 11374 Airport Express (最短路)
    UVA Live 3713 Astronauts (2-SAT)
    UVALive 3211 Now or Later (2-SAT)
    UVA 11324 The Largest Clique (强连通分量,dp)
    UVALive 4287 Proving Equivalence (强连通分量)
    UVA1665 Islands (并查集)
    UVA 1664 Conquer a New Region (Kruskal,贪心)
    UVA
    Gym 100342F Move to Front (树状数组动态维护和查询)
    Gym 100342E Minima (暴力,单调队列)
  • 原文地址:https://www.cnblogs.com/xuqingtian/p/4339687.html
Copyright © 2011-2022 走看看