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

    一、设计思路

        基本的设计思路在上一篇博文中已阐述,此次为具体的实现,与上篇思路博文不同之处在与这次我将几种运算分别写成函数,方便后续调用。

    二、程序代码

      1 #include<iostream.h>
      2 #include<stdlib.h>
      3 #include<time.h>
      4 
      5 void jia(int n)   //加法         
      6 {
      7     int a,b;
      8     a=rand()%n; 
      9     b=rand()%n;
     10     cout<<a<<"+"<<b<<"="<<"    ";
     11 }
     12 
     13 void jian(int n)   //减法   
     14 {
     15     int a,b;
     16     a=rand()%n;        
     17     b=rand()%n;     
     18     cout<<a<<"-"<<b<<"="<<"    ";
     19 }
     20 
     21 void jianfu(int n)    //无负数减法   
     22 {
     23     int a,b,t;
     24     a=rand()%n;        
     25     b=rand()%n;     
     26     if(a<b) 
     27     {t=a;a=b;b=t;}
     28     cout<<a<<"-"<<b<<"="<<"    ";
     29 }
     30 
     31 void cheng(int n)     //乘法
     32 {
     33     int a,b;
     34     a=rand()%n;      
     35     b=rand()%n;      
     36     cout<<a<<"*"<<b<<"="<<"    ";
     37 }
     38 
     39 void chu(int n)       //除法
     40 {
     41     int a,b;
     42     a=rand()%n;     
     43     b=rand()%n;    
     44     while(b==0)
     45     {
     46         b=rand()%n;
     47     }
     48     cout<<a<<"/"<<b<<"="<<"    ";
     49 }
     50 
     51 void chuyu(int n)     //无余数除法
     52 {
     53     int a,b;
     54     a=rand()%n;     
     55     b=rand()%n;            
     56     while(b==0)
     57     {
     58         b=rand()%n;
     59     }
     60     while(a%b!=0)     
     61     {
     62         a=rand()%n;
     63         b=rand()%n;
     64     }
     65     cout<<a<<"/"<<b<<"="<<"    ";
     66 }
     67 
     68 void main()
     69 {
     70     srand((unsigned)time(NULL));
     71     
     72     int i,k,m,n,p,q,r;
     73     
     74     cout<<"请输入需要出题数目:"<<endl;
     75     cin>>m;
     76     
     77     cout<<"请输入要显示的列数:"<<endl;
     78     cin>>k;
     79     
     80     cout<<"请输入数值范围(0—n):"<<endl;
     81     cin>>n;
     82     
     83     cout<<"请选择题目类型:"<<endl<<"0.加减法"<<endl<<"1.加减乘除法"<<endl;
     84     cin>>p;
     85     
     86     cout<<"请选择加减法有无负数:"<<endl<<"0.有"<<endl<<"1.无"<<endl;
     87     cin>>r;
     88     
     89     if(p==1)
     90     {
     91         cout<<"请选择除法有无余数:"<<endl<<"0.有"<<endl<<"1.无"<<endl;
     92         cin>>q;
     93     }
     94     
     95     
     96     switch(p)
     97     {
     98     case 0:        
     99         for(i=0;i<m;i++)
    100         {
    101             int a;
    102             a=rand()%2;
    103             switch(a)
    104             {
    105             case 0:
    106                 jia(n);
    107                 if((i+1)%k==0)
    108                 {
    109                     cout<<endl;
    110                 }
    111                 break;
    112             case 1:
    113                 if(r==1)
    114                 {
    115                     jianfu(n);
    116                     if((i+1)%k==0)
    117                         
    118                     {
    119                         cout<<endl;
    120                     }
    121                 }
    122                 else
    123                 {
    124                     jian(n);
    125                     if((i+1)%k==0)
    126                     {
    127                         cout<<endl;
    128                     }
    129                 }
    130                 break;
    131             }
    132         }
    133         break;
    134     case 1:
    135         for(i=0;i<m;i++)
    136         {
    137             int b;
    138             b=rand()%4;
    139             switch(b)
    140             {
    141             case 0:
    142                 jia(n);
    143                 if((i+1)%k==0)
    144                 {
    145                     cout<<endl;
    146                 }
    147                 break;
    148             case 1:
    149                 if(r==1)
    150                 {
    151                     jianfu(n);
    152                     if((i+1)%k==0)
    153                         
    154                     {
    155                         cout<<endl;
    156                     }
    157                 }
    158                 else
    159                 {
    160                     jian(n);
    161                     if((i+1)%k==0)
    162                     {
    163                         cout<<endl;
    164                     }
    165                 }
    166                 break;
    167             case 2:
    168                 cheng(n);
    169                 if((i+1)%k==0)
    170                 {
    171                     cout<<endl;
    172                 }
    173                 break;
    174             case 3:
    175                 if(q==1)
    176                 {
    177                     chuyu(n);
    178                     if((i+1)%k==0)
    179                     {
    180                         cout<<endl;
    181                     }
    182                 }
    183                 else
    184                 {
    185                     chu(n);
    186                     if((i+1)%k==0)
    187                     {
    188                         cout<<endl;
    189                     }
    190                 }
    191                 break;
    192             }
    193         }
    194     }
    195     return;
    196 }

    三、相关截图

     

    四、心得体会

        通过此次升级版的程序编写,我对软件工程在进行一个工程项目时的步骤等有了初步体会。真正的软件编写是一项团队开发的大工程,不像我们之前或个人或小团队完成作业时那样随便性较强的编程。通过此次编程发现之前的知识好多已比较生疏,编写时不能方便的使用,有的需要重新翻书。同时感觉到实践能力的不足,需要多加练习。

    五、总结表格

    项目计划总结:

                                                      周活动总结表

           姓名:邓锐                                日期:2015.3.15

    日期       任务

    听课

    编写程序

    阅读课本

    准备考试

    日总计

    周二

     300

     

     

     

     300

    周三

     100

     60

     

     

     160

    周四

     300

     90

     

     

     390

    周五

     200

     60

     

     

     260

    周六

     

     60

     

     

     60

    周日

     

    120

       

    120

    周总结

     900

     390

     

     

     1290

     

    时间记录表:

    学生         邓锐                                            日期        2015.3.15    

    教师        王建民                                           课程        软件工程       

     

    日期

    开始时间

    结束时间

    中断时间

    净时间

    活动

    备注

     3.11

    14:30

     15:30

     0

     60

    编写程序

     

     3.12

     16:10

    17:40 

     0

     90

    编写程序

     

     3.13

    19:30

     20:30

     0

     60

    编写程序

     

     3.14

     13:00

    14:20 

     20

     60

     编写程序

     休息

     3.15

    9:10

    11:20

    10

    120

    编写程序

    休息


    缺陷记录日志: 

    学生       邓锐       

    日期      2015.3.15 

    教员        王建民   

    程序号            

    日期

    编号

    类型

    引入阶段

    排除阶段

    修复时间

    修复缺陷

    3.12

     1

     数据错误

     编码

    编译 

     <1min

     重新定义参数

     描述:参数定义错乱

     3.13

     2

     结构错误

     编码

     编译

     5min

     改写结构

     描述:嵌套结构时出错,结构较乱

     3.15

     3

     逻辑错误

     编码

     编译

     10min

     重写函数

     描述:有关减法的函数编写时逻辑有误

     3.15

     4

     逻辑错误

     编码

    编译 

     5min

     重写相关部分

     描述:主函数显示输出错误,显示错乱

  • 相关阅读:
    python-Mitmproxy抓包
    pytest-html、cov、xdist
    python-unittest添加用例的几种方式
    python-*args、**kargs用法
    One,Two,Three,Ak模板
    栈和队列小练习
    区块链入门介绍笔记
    Research on Facebook and Social Graph
    线段树板子的小修改
    htaccess远古时期技术了解一下
  • 原文地址:https://www.cnblogs.com/dr73/p/4339722.html
Copyright © 2011-2022 走看看