标签:
一、设计思路
基本的设计思路在上一篇博文中已阐述,此次为具体的实现,与上篇思路博文不同之处在与这次我将几种运算分别写成函数,方便后续调用。
二、程序代码
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 |
重写相关部分 |
描述:主函数显示输出错误,显示错乱 |
标签:
原文地址:http://www.cnblogs.com/dr73/p/4339722.html