四则运算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

 重写相关部分

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

原文地址:https://www.cnblogs.com/dr73/p/4339722.html