软件工程——四则运算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


编码


执行


未知


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

时间: 2024-12-14 18:12:41

软件工程——四则运算3(C#)的相关文章

软件工程——四则运算Ⅱ(还有很大缺陷,忘指教)

题目要求:随机生成四则运算题目 //随机四则运算要求:题目避免重复可定制数量,数值范围.加减有无负数.除法有无余数等 #include<iostream>#include<time.h>using namespace std;void basic(int num,int cc,int mhs,int kgs,int pyu,int max,int nnum)       //基础四则运算函数{ srand(time(NULL)); int a[100];     //存放第一个操作

软件工程——四则运算2

一.设计思想: 1. 为了实现题目中的要求,可以将各个功能由方法来实现,首先设计加减法运算方法. 2.加法方法:jiaFa(int range/*数值范围*/,int negative_OK/*0表示无负数,1表示可有负数*/,int fraction/*0表示无分数,1表示真分数,2表示支持假分数*/,int decimal/*支持小数位数*/),参数的不同代表用户不同的选择和对应的功能,减法.乘法.除法和加法类似. 3.是否带括号的功能:three_Operands()涉及3个操作数,其中前

软件工程——四则运算py(我小学的时候怎么没用过这东西?)

题目:实现一个自动生成小学四则运算题目的命令行程序 github地址:https://github.com/ILTHEW/wc.git 主编:黄晖朝3116005178 助手:朱健栋3116005209 说明: 自然数:0, 1, 2, -. ? 真分数:1/2, 1/3, 2/3, 1/4, 1'1/2, -. ? 运算符:+, ?, ×, ÷. ? 括号:(, ). ? 等号:=. ? 分隔符:空格(用于四则运算符和等号前后). ? 算术表达式: e = n | e1 + e2 | e1 ?

软件工程——四则运算单元测试(是否有乘除法)

首先找了一组比较大的数测试了一下稳定性: 下面是没有乘除法给出而结果: 有乘除法的结果:

软件工程——四则运算2部分设计思想

1.         题目避免重复 2.         可定制(数量.打印方式) 3.         可以控制下列参数:是否有乘除法.是否有括号.数值范围.加减有无负数.除法有无余数.是否支持分数(真分数.假分数...).是否支持小数(精确到多少位).打印中每行的间隔可调整: “避免重复”将生成的表达式存入数组中,下面的表达式再与数组中已有的比较 “可定制“可以用户输入for循环的控制变量 设计思想: 分步实现:是否有乘除法 分两个函数写,用户输入0选择有乘除,1选择无乘除

软件工程四则运算

#include<stdio.h>int main(){int i,x,y,z; for(i=0;i<30;i++){x=rand()%(99-10+1)+10; y=rand()%(99-10+1)+10:z=rand()%(4-1+1)+1;switch(z){case1:printf("%d+%d=\n",x,y):case2:printf("%d-%d=\n",x,y);Case3:printf("%d*%d=\n",x

4.2 周四

早上:上课 中午:睡觉 下午12节:逃课睡觉 下午34节:训练 6点多-9点:吃饭上网 晚上9-11点:写作业软件工程四则运算 总结 时间利用的太差,自主学习时间较少,希望这方面可以提高,懒死我算了直接 明日计划上午上课 下午3-4点做完数据库实验作业1 然后去踢球 晚上时间计划编写冒泡或者选择 这俩程序计划清明节期间完成差不多3天左右 顺便利用清明读一下星月神话,这个作业貌似还没有交给建明哥

软件工程之四则运算--Github

由于现在配置问题,然后借用同学电脑将代码上传至Github,网址为:https://github.com/be821/RealFour 参考相关Github文档: 1. http://my.oschina.net/u/1050949/blog/194536?fromerr=IBt08Hdf 2. http://www.linuxidc.com/Linux/2013-06/85372p3.htm 3. http://blog.csdn.net/yanzi1225627/article/detail

《软件工程》课程设计-《四则运算》 第三天

以上是燃尽图 这两天我们团队攻破了(填“>”.“<”或“=”)24÷8()4:72÷9()5:64÷8()81÷9... 这些比较大小类型的题目. 其中子鹏完成了其中比较大小的主要核心代码的编写, 张奇聪,曾柏树完成了app功能检测的工作. 张振演,王佳宁完成了该应用所需要的框架代码. 这两天工作量比较高,因为是刚开始时做软件工程的项目,结构框架的类型我们今晚刚刚开会决定了下来.. 以下是今晚开会的主要内容: 确定四则运算的前期安排工作: 坚持3天一小更 ,10天一大更的更新周期: 贯彻落实杜