结对开发-四则运算

这次与王悦生合作编写了小学生四则运算过程,包括整数四则运算部分与真分数四则运算部分,原本是用vc来编程实现的,但通过讨论最后决定了用C++来实现,而最基本的一点就是美观大方,编写也变得轻松了一点,最后将这个软件成功实现了,不过有一点没有做的是关于题目数量的规定,做成了无限出题.

        使用时需要注意的是整数答案直接输入就好,而分数答案要输入成a/b的形式,比如:1/2=1/2, 6/3=2,6/10=3/5

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
using  System;
using  System.Collections.Generic;
using  System.ComponentModel;
using  System.Data;
using  System.Drawing;
using  System.Linq;
using  System.Text;
using  System.Windows.Forms;
 
 
namespace  小学算数
{
     public  partial  class  Form1 : Form
     {
         public  Form1()
         {
             InitializeComponent();
         }
         private  int  ti_shu, result, f1, f2;
 
         private  void  chu_ti()
         {
             Random suiji =  new  Random();
             int  a = suiji.Next(0, 10);
             int  b = suiji.Next(1, 10);
             int  c = suiji.Next(0, 10);
             int  d = suiji.Next(1, 10);
             int  p = 4;
             //int p = suiji.Next(0, 7);
             if  (p == 0) //出加法题
             {
                 label1.Text = a.ToString() +  "+"  + b.ToString() +  "=" ;
                 result = a + b;
                 f1 = result;
                 f2 = 1;
             }
             if  (p == 1)  //出减法题
             {
                 label1.Text = a.ToString() +  "-"  + b.ToString() +  "+"  + c.ToString() +  "-"  + d.ToString();
                 result = a - b;
                 f1 = result;
                 f2 = 1;
             }
             ti_shu = ti_shu + 1;
             textBox1.Text =  "" ;
             if  (p == 2)  //出乘法题
             {
                 label1.Text = a.ToString() +  "*"  + b.ToString() +  "=" ;
                 result = a * b;
                 f1 = result;
                 f2 = 1;
             }
             if  (p == 3)  //出除法题
             {
                 label1.Text = a.ToString() +  "/"  + b.ToString() +  "=" ;
                 f1 = a;
                 f2 = b;
                 int  g;
                 g = Gcd(f1, f2);
                 if  (g>1)
                 {
                     f1 = f1 / g;
                     f2 = f2 / g;
                 }
                 if  (f2==1)
                 {
                     result = f1;
                 }
 
 
             }
             if  (p == 4)  //出分数加法题
             {
                 if  (a > b)
                 {
                     int  t = a; a = b; b = t;
                 }
                 if  (c > d)
                 {
                     int  t = c; c = d; d = t;
                 }
                 label1.Text = a.ToString() +  "/"  + b.ToString() +  "+"  + c.ToString() +  "/"  + d.ToString() +  "=" ;
                 f1 = a * d + b * c;
                 f2 = b * d;
                 int  g;
                 g = Gcd(f1, f2);
                 f1 = f1 / g;
                 f2 = f2 / g;
                 result = f1 / f2;
                 if  (f1 == 0)
                 {
                     result = 0;
                 }
                 if  (f2 == 1)
                 {
                     result = f1;
                 }
             }
             if  (p == 5)  //出分数减法题
             {
                 if  (a > b)
                 {
                     int  t = a; a = b; b = t;
                 }
                 if  (c > d)
                 {
                     int  t = c; c = d; d = t;
                 }
                 label1.Text = a.ToString() +  "/"  + b.ToString() +  "-"  + c.ToString() +  "/"  + d.ToString() +  "=" ;
                 f1 = a * d - b * c;
                 f2 = b * d;
                 int  g;
                 g=Gcd(f1, f2);
                 f1 = f1 / g;
                 f2 = f2 / g;
                 result = f1 / f2;
                 if  (f1 == 0)
                 {
                     result = 0;
                 }
                 if  (f2 == 1)
                 {
                     result = f1;
                 }
 
             }
             if  (p == 6)  //出分数乘法题
             {
                 if  (a > b)
                 {
                     int  t = a; a = b; b = t;
                 }
                 if  (c > d)
                 {
                     int  t = c; c = d; d = t;
                 }
                 label1.Text = a.ToString() +  "/"  + b.ToString() +  "*"  + c.ToString() +  "/"  + d.ToString() +  "=" ;
                 f1 = a * c;
                 f2 = b * d;
                 int  g;
                 g = Gcd(f1, f2);
                 f1 = f1 / g;
                 f2 = f2 / g;
                 result = f1 / f2;
                 if  (f1 == 0)
                 {
                     result = 0;
                 }
                 if  (f2 == 1)
                 {
                     result = f1;
                 }
             }
             if  (p == 7)  //出分数除法题
             {
                 if  (c == 0)
                 {
                     c++;
                 }
                 if  (a > b)
                 {
                     int  t = a; a = b; b = t;
                 }
                 if  (c > d)
                 {
                     int  t = c; c = d; d = t;
                 }
                 label1.Text = a.ToString() +  "/"  + b.ToString() +  " "  "/"  " "  + c.ToString() +  "/"  + d.ToString() +  "=" ;
                 f1 = a * d;
                 f2 = b * c;
                 int  g;
                 g = Gcd(f1, f2);
                 f1 = f1 / g;
                 f2 = f2 / g;
                 if  (f1 == 0)
                 {
                     result = 0;
                 }
                 if  (f2 == 1)
                 {
                     result = f1;
                 }
                 //result = f1 / f2;
             }
         }
 
         private  void  label1_Click( object  sender, EventArgs e)
         {
 
         }
 
 
         int  Gcd( int  a,  int  b) //求最大公约数,以便对结果进行约分
         {
             while  (a != 0 && b != 0)
             {
                 if  (a > b) a = a % b;
                 else  if  (a < b) b = b % a;
             }
             return  (a > b ? a : b);
         }
 
 
         private  void  Form1_Load( object  sender, EventArgs e)
         {
             ti_shu = 0;
             chu_ti();
         }
 
         private  void  textBox1_KeyPress( object  sender, KeyPressEventArgs e)
         {
             string  Item;
             /*if (pp <= 3 || f1 == 0 || f2 == 1)
             {
                 if (e.KeyChar == 13)//表示按下的回车键
                 {
                     if (Convert.ToInt16(textBox1.Text) == result)
                     {
                         Item = label1.Text + textBox1.Text + "√";
 
                     }
                     else
                         Item = label1.Text + textBox1.Text + "×";            
                     this.listBox1.Items.Add(Item);
                     this.textBox1.Text = "";
                     chu_ti();
                     }
                     }
                      else
                      {*/
                          if  (e.KeyChar == 13) //表示按下的回车键
                 {
                     if  (f2==1||f1==0)
                     {
                         if  (Convert.ToInt16(textBox1.Text) == result)
                         {
                             Item = label1.Text + textBox1.Text +  "√" ;
                             this .listBox1.Items.Add(Item);
                         }
                         else
                         {
                             Item = label1.Text + textBox1.Text +  "×" ;
                             this .listBox1.Items.Add(Item);
                             this .listBox2.Items.Add(Item);
                         }
                            
                     }
                     else
                     {
                         if  (Convert.ToString(textBox1.Text) == Convert.ToString(f1) +  "/"  + Convert.ToString(f2))
                         {
                             Item = label1.Text + textBox1.Text +  "√" ;
                             this .listBox1.Items.Add(Item);
                         }
                         else
                         {
                             Item = label1.Text + textBox1.Text +  "×" ;
                             this .listBox1.Items.Add(Item);
                             this .listBox2.Items.Add(Item);
                         }
                            
                     }
                     
                              
                              this .textBox1.Text =  "" ;
                              chu_ti();
                          }
                          
                 }
 
         private  void  button1_Click( object  sender, EventArgs e)
         {
             Application.Exit();
         }
             }
 
         }

  

软件使用说明书

  

小学四则运算程序使用说明书

1.1编写目的

  实现小学生四则运算在线答题,能够使用户锻炼自己的数学能力
1.2项目背景

   石家庄铁道大学16级测绘系 罗玉铭,王悦生编

  1. 软件概述
    2.1目标:实现小学生在线答题
    2.2功能:小学生在线答题且提出错题
    2.3 性能
        .a时间特性:反应速度快
        .b灵活性:较为灵活

        .c外观:简单清晰

扫描二维码关注公众号,回复: 4045367 查看本文章

3. 运行环境
3.1硬件

要求低

VS

4. 使用说明
4.1安装和初始化

  需安装VS


4.2输入

  请输入正确答案(分数答案格式为a/b)
4.2.1数据背景

4.2.2数据格式

  无

4.2.3输入举例

答案为整数输入x,答案为分数输入a/b,1/2=1/2, 6/3=2,6/10=3/5
4.3输出

√或×
4.4出错和恢复

如出错请重新运行程序


5. 运行说明
5.1运行步骤

  无运行步骤,请直接输入答案

5.1.1运行控制


5.1.2操作信息
    a. 运行目的;小学生在线答题

    b. 操作要求;输入数据即可

    c. 启动方法;无需操做,打开程序后自动运行

    d. 预计运行时间;极短

    e. 其他事项。
5.2.3输入/输出文件

无输入输出文件
5.2.4启动或恢复过程


6. 非常规过程
  

7. 操作命令一览表
  

8. 程序文件(或命令文件)和数据文件一览表
 计算,输入,退出,储存

本次作业和罗玉铭合作完成

猜你喜欢

转载自www.cnblogs.com/stfly/p/9949273.html