软件工程——四则运算3(C#)

一、设计思想

设计两个窗体,在第一个窗体中选择功能参数,在第二个窗体中显示所出题目。

二、源代码

Form1.cs:

  1 using System;
  2 using System.Collections.Generic;
  3 using System.ComponentModel;
  4 using System.Data;
  5 using System.Drawing;
  6 using System.Linq;
  7 using System.Text;
  8 using System.Windows.Forms;
  9 
 10 namespace sizeyunsuan
 11 {
 12     public partial class Form1 : Form
 13     {
 14           static public int max = 0;
 15           static public int min = 0;
 16           static public int num = 0;
 17           static public int select = 0;
 18 
 19         public Form1()
 20         {
 21             InitializeComponent();
 22         }
 23      141 
142      private void button2_Click(object sender, EventArgs e)
143      {
144          textBox1.Text = "";
145          textBox2.Text = "";
146          textBox3.Text = "";
147          radioButton1.Checked = false;
148          radioButton2.Checked = false;
149          radioButton3.Checked = false;
150          radioButton4.Checked = false;
151          radioButton5.Checked = false;
152          radioButton6.Checked = false;
153      }
154 
155      private void button1_Click(object sender, EventArgs e)
156      {
157          min = int.Parse(textBox1.Text);
158          max= int.Parse(textBox3.Text);
159          num = int.Parse(textBox2.Text);
160          if (radioButton1.Checked == true)
161              select = 1;
162          else if (radioButton2.Checked == true)
163              select =2;
164          else if(radioButton3.Checked == true)
165              select = 3;
166          else if(radioButton4.Checked == true)
167              select = 4;
168          else if (radioButton5.Checked == true)
169              select = 5;
170          else if (radioButton6.Checked == true)
171              select = 6;
172          Form2 fm = new Form2();
173          fm.Show();
174 
175      }
176 
177 
178     
179     }
180 }

Form2..cs:

  1 using System;
  2 using System.Collections.Generic;
  3 using System.ComponentModel;
  4 using System.Data;
  5 using System.Drawing;
  6 using System.Linq;
  7 using System.Text;
  8 using System.Windows.Forms;
  9 
 10 namespace sizeyunsuan
 11 {
 12     public partial class Form2 : Form
 13     {
 14         public Form2()
 15         {
 16             InitializeComponent();
 17             int num = Form1.num;
 18             int max = Form1.max;
 19             int min = Form1.min;
 20             int select = Form1.select;
 21             int opr_symbol;
 22             Random Random1 = new Random();
 23             for(int i=0;i<num;i++)
 24             {
 25                 switch (select)
 26                 {
 27                     case 1:
 28                         {int rdm1 = Random1.Next(min, max);
 29                       int rdm2 = Random1.Next(min, max);
 30                       opr_symbol = Random1.Next(0, 2);//随机产生一个操作符
 31                       if (rdm1 < 0) richTextBox1.Text += "(" + rdm1 + "";
 32                       else richTextBox1.Text += rdm1;
 33                       if (opr_symbol ==0)  richTextBox1.Text += "+";
 34                       else richTextBox1.Text += "-";
 35                       if (rdm2< 0) richTextBox1.Text += "(" + rdm2+ ")=\n";
 36                       else richTextBox1.Text += rdm2+"=\n" ;
 37                       break;
 38                     }
 39                     case 2:
 40                         { int rdm1 = Random1.Next(min, max);
 41                         int rdm2 = Random1.Next(min, max);
 42                         opr_symbol = Random1.Next(0, 4);//随机产生一个操作符
 43                         if (rdm1 < 0) richTextBox1.Text += "(" + rdm1 + "";
 44                         else richTextBox1.Text += rdm1;
 45                         switch(opr_symbol)
 46                         {
 47                             case 0: richTextBox1.Text +="+";break;
 48                             case 1: richTextBox1.Text +="-";break;
 49                             case 2: richTextBox1.Text +="*";break;
 50                             case 3: richTextBox1.Text +="/";break;
 51                         }
 52                         if (rdm2 < 0) richTextBox1.Text += "(" + rdm2 + ")\n";
 53                         else richTextBox1.Text += (rdm2+2)+"\n";
 54                         break;
 55                     }
 56                     case 3: {
 57                         int rdm1 = Random1.Next(min, max);
 58                         int rdm2 = Random1.Next(min, max);
 59                         int rdm3 = Random1.Next(2, max);
 60                         if (Random1.Next(0, 2) == 1)
 61                         {//第一个数是否是分数
 62                             rdm1 = Random1.Next(1, max);//保证分数为正数
 63                             if (rdm1 > rdm3) richTextBox1.Text += "(" + rdm3 + "/" + rdm1 + ")";
 64                             else richTextBox1.Text += "(" + rdm1 + "/" + rdm3 + ")";
 65                         }
 66                         else { //第一个操作数不是分数
 67                             if (rdm1 < 0) richTextBox1.Text += "(" + rdm1 + "";
 68                            else richTextBox1.Text += rdm1;
 69                         }
 70                         opr_symbol = Random1.Next(0, 4);//随机产生一个操作符
 71                         switch (opr_symbol)
 72                         {
 73                             case 0: richTextBox1.Text += "+"; break;
 74                             case 1: richTextBox1.Text += "-"; break;
 75                             case 2: richTextBox1.Text += "*"; break;
 76                             case 3: richTextBox1.Text += "/"; break;
 77                         }
 78                         if (Random1.Next(0, 2) == 1)
 79                         {//第二个数是否是分数
 80                             rdm2 = Random1.Next(1, max);//保证分数为正数
 81                             if (rdm2 > rdm3) richTextBox1.Text += "(" + rdm3 + "/" + rdm2 + ")=\n";
 82                             else richTextBox1.Text += "(" + rdm2 + "/" + rdm3 + ")=\n";
 83                         }
 84                         else
 85                         { //第一个操作数不是分数
 86                             if (rdm2< 0) richTextBox1.Text += "(" + rdm2 + ")=\n";
 87                             else richTextBox1.Text += rdm2+"=\n";
 88                         }
 89                         break;
 90                     }
 91                     case 4:
 92                         {
 93                             int rdm1 = Random1.Next(min, max);
 94                             int rdm2 = Random1.Next(min, max);
 95                             int rdm3 = Random1.Next(2, max);
 96                             if (Random1.Next(0, 2) == 1)
 97                             {//第一个数是否是分数
 98                                 rdm1 = Random1.Next(1, max);//保证分数为正数
 99                                 if (rdm1 < rdm3) richTextBox1.Text += "(" + rdm3 + "/" + rdm1 + ")";
100                                 else richTextBox1.Text += "(" + rdm1 + "/" + rdm3 + ")";
101                             }
102                             else
103                             { //第一个操作数不是分数
104                                 if (rdm1 < 0) richTextBox1.Text += "(" + rdm1 + "";
105                                 else richTextBox1.Text += rdm1;
106                             }
107                             opr_symbol = Random1.Next(0, 4);//随机产生一个操作符
108                             switch (opr_symbol)
109                             {
110                                 case 0: richTextBox1.Text += "+"; break;
111                                 case 1: richTextBox1.Text += "-"; break;
112                                 case 2: richTextBox1.Text += "*"; break;
113                                 case 3: richTextBox1.Text += "/"; break;
114                             }
115                             if (Random1.Next(0, 2) == 1)
116                             {//第二个数是否是分数
117                                 rdm2 = Random1.Next(1, max);//保证分数为正数
118                                 if (rdm2< rdm3) richTextBox1.Text += "(" + rdm3 + "/" + rdm2 + ")=\n";
119                                 else richTextBox1.Text += "(" + rdm2 + "/" + rdm3 + ")=\n";
120                             }
121                             else
122                             { //第一个操作数不是分数
123                                 if (rdm2 < 0) richTextBox1.Text += "(" + rdm2 + ")=\n";
124                                 else richTextBox1.Text += rdm2 + "=\n";
125                             }
126                             break;
127                         }
128                     case 5: {
129                         int rdm1 = Random1.Next(min, max);
130                         int rdm2 = Random1.Next(min, max);
131                         double rdm3;
132                         opr_symbol = Random1.Next(0, 4);//随机产生一个操作符
133                         switch (opr_symbol)
134                         {
135                             case 0:
136                                 {
137                                     if (Random1.Next(0, 2) == 1)//第一个操作数为小数
138                                     {
139                                         rdm3 = Random1.NextDouble();//产生一个随机的小数
140                                         rdm3 += rdm1;
141                                         rdm3 = Math.Round(rdm3, 1);
142                                         richTextBox1.Text += rdm3;
143                                     }
144                                     else
145                                     {
146                                         if (rdm1 < 0) richTextBox1.Text += "(" + rdm1 + "";
147                                         else richTextBox1.Text += rdm1;
148                                     }
149                                     richTextBox1.Text += "-";
150                                     if (Random1.Next(0, 2) == 1)//第二个操作数为小数
151                                     {
152                                         rdm3 = Random1.NextDouble();//产生一个随机的小数
153                                         rdm3 += rdm2;
154                                         rdm3 = Math.Round(rdm3, 1);
155                                         richTextBox1.Text += rdm3 + "=\n";
156                                     }
157                                     else
158                                     {
159                                         if (rdm2 < 0) richTextBox1.Text += "(" + rdm2 + ")=\n";
160                                         else richTextBox1.Text += rdm2 + "=\n";
161                                     }
162                                     break;
163                                 }
164                             case 1:
165                                 {
166                                     if (Random1.Next(0, 2) == 1)//第一个操作数为小数
167                                     {
168                                         rdm3 = Random1.NextDouble();//产生一个随机的小数
169                                         rdm3 += rdm1;
170                                         rdm3 = Math.Round(rdm3, 1);
171                                         richTextBox1.Text += rdm3;
172                                     }
173                                     else
174                                     {
175                                         if (rdm1 < 0) richTextBox1.Text += "(" + rdm1 + "";
176                                         else richTextBox1.Text += rdm1;
177                                     }
178                                 richTextBox1.Text += "-";
179                                 if (Random1.Next(0, 2) == 1)//第二个操作数为小数
180                                 {
181                                     rdm3 = Random1.NextDouble();//产生一个随机的小数
182                                     rdm3 += rdm2;
183                                     rdm3 = Math.Round(rdm3, 1);
184                                     richTextBox1.Text += rdm3 + "=\n";
185                                 }
186                                 else
187                                 {
188                                     if (rdm2 < 0) richTextBox1.Text += "(" + rdm2 + ")=\n";
189                                     else richTextBox1.Text += rdm2 + "=\n";
190                                 }
191                                  break;
192                                 }
193                             case 2:
194                                 {
195                                     if (rdm1 < 0) richTextBox1.Text += "(" + rdm1 + "";
196                                     else richTextBox1.Text += rdm1;
197                                     richTextBox1.Text += "*";
198                                     if (rdm2 < 0) richTextBox1.Text += "(" + rdm2 + ")\n";
199                                     else richTextBox1.Text += rdm2 + "=\n";
200                                     break;
201                                 }
202                             case 3:
203                                 {
204                                     if (rdm1 < 0) richTextBox1.Text += "(" + rdm1 + "";
205                                     else richTextBox1.Text += rdm1;
206                                     richTextBox1.Text += "/";
207                                     if (rdm2 < 0) richTextBox1.Text += "(" + rdm2 + ")\n";
208                                     else richTextBox1.Text += (rdm2 + 2) + "=\n";
209                                     break;
210                                 }
211                         }
212                         break;
213                     }
214                     case 6: {
215                         int rdm1 = Random1.Next(min, max);
216                         int rdm2 = Random1.Next(min, max);
217                         int rdm3 =Random1.Next(1, max);
218                         richTextBox1.Text += "(";
219                         if (rdm1 < 0) richTextBox1.Text += "("+rdm1+")";//判断rdm1是否为负数
220                         else richTextBox1.Text +=  rdm1;
221                         if (Random1.Next(0, 2) == 1) richTextBox1.Text += "+";//确定括号内的符号
222                         else richTextBox1.Text += "-";
223                         if (rdm2 < 0) richTextBox1.Text += "(" + rdm2 + "))";//判断rdm2是否为负数
224                         else richTextBox1.Text += rdm2+")";
225                         if (Random1.Next(0, 2) == 1) richTextBox1.Text += "*"+rdm3+"=\n";//确定括号外的符号
226                         else richTextBox1.Text += "/"+rdm3+"=\n";
227                         break;
228                     }
229                 }
230             }
231         }
232 
233         private void Form2_Load(object sender, EventArgs e)
234         {
235 
236         }
237 
238         private void button1_Click(object sender, EventArgs e)
239         {
240             this.Close();
241         }
242     }
243 }

三、运行结果截图:

四、心得体会

  通过这次对四则运算的扩展,我学会了怎样在两个窗体之间传递参数,把变量设置为静态变量,可以被所有对象使用。这次巩固了对C#的学习,只是一些基础,以后要学的还更多。

五、PSP0级

项目计划总结:

周活动总结表

姓名:王雪青                                   日期:2015.3.21

日期       任务

听课

编写程序

阅读课本

准备考试

 

 

日总计

周一

 300

 

 

 

 

 

 300

周二

 400

 

 

 

 

 

 400

周三

 100

 148

 

 

 

 

 248

周四

 300

 

 

 

 

 

 300

周五

 200

 98

 

 

 

 

 298

周六

 

 49

 

 

 

 

 

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

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

总计

 1300

 295

 

 

 

 

 1595

平均

 1300

295 

 

 

 

 

 1595

最大

 1300

 295

 

 

 

 

 1595

最小

 1300

 295

 

 

 

 

 1595

以前各周的累计时间                                                                                    

总计

1100

610

 

 

 

 

1163

平均

1100

610

95

 

 

 

1163

最大

1100

610

95

 

 

 

1163

最小

1100

 610

95

 

 

 

1163 

时间记录表:

学生        王雪青                                            日期          2015.3.21      

教师        王建民                                             课程           PSP          

日期

开始时间

结束时间

中断时间

净时间

活动

备注

 3.18

14:50

 17:48

 30

 148

 写程序

 

 3.20

 19:10

 21:14

 26

 98

 写程序

 

3.21

19:00 20:11 22 49 写程序

 

缺陷记录表

学生       王雪青   

日期         2015.3.21    

教员        王建民    

程序号         3      

日期

编号

类型

引入阶段

排除阶段

修复时间

修复缺陷

 3/18

 

 1

 

 编码

 编译

 2min

 

 描述:设置全局变量没有加static

 2

 

编码 

执行 

未知

 

 描述:算法无法达到预期结果,比如无法显示结果

posted on 2015-03-21 20:20  王雪青  阅读(253)  评论(0编辑  收藏  举报