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

时间:2024-11-22 18:03:26

一、设计思想

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

二、源代码

Form1.cs:

 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 sizeyunsuan
{
public partial class Form1 : Form
{
static public int max = ;
static public int min = ;
static public int num = ;
static public int select = ; public Form1()
{
InitializeComponent();
} private void button2_Click(object sender, EventArgs e)
{
textBox1.Text = "";
textBox2.Text = "";
textBox3.Text = "";
radioButton1.Checked = false;
radioButton2.Checked = false;
radioButton3.Checked = false;
radioButton4.Checked = false;
radioButton5.Checked = false;
radioButton6.Checked = false;
} private void button1_Click(object sender, EventArgs e)
{
min = int.Parse(textBox1.Text);
max= int.Parse(textBox3.Text);
num = int.Parse(textBox2.Text);
if (radioButton1.Checked == true)
select = ;
else if (radioButton2.Checked == true)
select =;
else if(radioButton3.Checked == true)
select = ;
else if(radioButton4.Checked == true)
select = ;
else if (radioButton5.Checked == true)
select = ;
else if (radioButton6.Checked == true)
select = ;
Form2 fm = new Form2();
fm.Show(); } }
}

Form2..cs:

 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 sizeyunsuan
{
public partial class Form2 : Form
{
public Form2()
{
InitializeComponent();
int num = Form1.num;
int max = Form1.max;
int min = Form1.min;
int select = Form1.select;
int opr_symbol;
Random Random1 = new Random();
for(int i=;i<num;i++)
{
switch (select)
{
case :
{int rdm1 = Random1.Next(min, max);
int rdm2 = Random1.Next(min, max);
opr_symbol = Random1.Next(, );//随机产生一个操作符
if (rdm1 < ) richTextBox1.Text += "(" + rdm1 + ")";
else richTextBox1.Text += rdm1;
if (opr_symbol ==) richTextBox1.Text += "+";
else richTextBox1.Text += "-";
if (rdm2< ) richTextBox1.Text += "(" + rdm2+ ")=\n";
else richTextBox1.Text += rdm2+"=\n" ;
break;
}
case :
{ int rdm1 = Random1.Next(min, max);
int rdm2 = Random1.Next(min, max);
opr_symbol = Random1.Next(, );//随机产生一个操作符
if (rdm1 < ) richTextBox1.Text += "(" + rdm1 + ")";
else richTextBox1.Text += rdm1;
switch(opr_symbol)
{
case : richTextBox1.Text +="+";break;
case : richTextBox1.Text +="-";break;
case : richTextBox1.Text +="*";break;
case : richTextBox1.Text +="/";break;
}
if (rdm2 < ) richTextBox1.Text += "(" + rdm2 + ")\n";
else richTextBox1.Text += (rdm2+)+"\n";
break;
}
case : {
int rdm1 = Random1.Next(min, max);
int rdm2 = Random1.Next(min, max);
int rdm3 = Random1.Next(, max);
if (Random1.Next(, ) == )
{//第一个数是否是分数
rdm1 = Random1.Next(, max);//保证分数为正数
if (rdm1 > rdm3) richTextBox1.Text += "(" + rdm3 + "/" + rdm1 + ")";
else richTextBox1.Text += "(" + rdm1 + "/" + rdm3 + ")";
}
else { //第一个操作数不是分数
if (rdm1 < ) richTextBox1.Text += "(" + rdm1 + ")";
else richTextBox1.Text += rdm1;
}
opr_symbol = Random1.Next(, );//随机产生一个操作符
switch (opr_symbol)
{
case : richTextBox1.Text += "+"; break;
case : richTextBox1.Text += "-"; break;
case : richTextBox1.Text += "*"; break;
case : richTextBox1.Text += "/"; break;
}
if (Random1.Next(, ) == )
{//第二个数是否是分数
rdm2 = Random1.Next(, max);//保证分数为正数
if (rdm2 > rdm3) richTextBox1.Text += "(" + rdm3 + "/" + rdm2 + ")=\n";
else richTextBox1.Text += "(" + rdm2 + "/" + rdm3 + ")=\n";
}
else
{ //第一个操作数不是分数
if (rdm2< ) richTextBox1.Text += "(" + rdm2 + ")=\n";
else richTextBox1.Text += rdm2+"=\n";
}
break;
}
case :
{
int rdm1 = Random1.Next(min, max);
int rdm2 = Random1.Next(min, max);
int rdm3 = Random1.Next(, max);
if (Random1.Next(, ) == )
{//第一个数是否是分数
rdm1 = Random1.Next(, max);//保证分数为正数
if (rdm1 < rdm3) richTextBox1.Text += "(" + rdm3 + "/" + rdm1 + ")";
else richTextBox1.Text += "(" + rdm1 + "/" + rdm3 + ")";
}
else
{ //第一个操作数不是分数
if (rdm1 < ) richTextBox1.Text += "(" + rdm1 + ")";
else richTextBox1.Text += rdm1;
}
opr_symbol = Random1.Next(, );//随机产生一个操作符
switch (opr_symbol)
{
case : richTextBox1.Text += "+"; break;
case : richTextBox1.Text += "-"; break;
case : richTextBox1.Text += "*"; break;
case : richTextBox1.Text += "/"; break;
}
if (Random1.Next(, ) == )
{//第二个数是否是分数
rdm2 = Random1.Next(, max);//保证分数为正数
if (rdm2< rdm3) richTextBox1.Text += "(" + rdm3 + "/" + rdm2 + ")=\n";
else richTextBox1.Text += "(" + rdm2 + "/" + rdm3 + ")=\n";
}
else
{ //第一个操作数不是分数
if (rdm2 < ) richTextBox1.Text += "(" + rdm2 + ")=\n";
else richTextBox1.Text += rdm2 + "=\n";
}
break;
}
case : {
int rdm1 = Random1.Next(min, max);
int rdm2 = Random1.Next(min, max);
double rdm3;
opr_symbol = Random1.Next(, );//随机产生一个操作符
switch (opr_symbol)
{
case :
{
if (Random1.Next(, ) == )//第一个操作数为小数
{
rdm3 = Random1.NextDouble();//产生一个随机的小数
rdm3 += rdm1;
rdm3 = Math.Round(rdm3, );
richTextBox1.Text += rdm3;
}
else
{
if (rdm1 < ) richTextBox1.Text += "(" + rdm1 + ")";
else richTextBox1.Text += rdm1;
}
richTextBox1.Text += "-";
if (Random1.Next(, ) == )//第二个操作数为小数
{
rdm3 = Random1.NextDouble();//产生一个随机的小数
rdm3 += rdm2;
rdm3 = Math.Round(rdm3, );
richTextBox1.Text += rdm3 + "=\n";
}
else
{
if (rdm2 < ) richTextBox1.Text += "(" + rdm2 + ")=\n";
else richTextBox1.Text += rdm2 + "=\n";
}
break;
}
case :
{
if (Random1.Next(, ) == )//第一个操作数为小数
{
rdm3 = Random1.NextDouble();//产生一个随机的小数
rdm3 += rdm1;
rdm3 = Math.Round(rdm3, );
richTextBox1.Text += rdm3;
}
else
{
if (rdm1 < ) richTextBox1.Text += "(" + rdm1 + ")";
else richTextBox1.Text += rdm1;
}
richTextBox1.Text += "-";
if (Random1.Next(, ) == )//第二个操作数为小数
{
rdm3 = Random1.NextDouble();//产生一个随机的小数
rdm3 += rdm2;
rdm3 = Math.Round(rdm3, );
richTextBox1.Text += rdm3 + "=\n";
}
else
{
if (rdm2 < ) richTextBox1.Text += "(" + rdm2 + ")=\n";
else richTextBox1.Text += rdm2 + "=\n";
}
break;
}
case :
{
if (rdm1 < ) richTextBox1.Text += "(" + rdm1 + ")";
else richTextBox1.Text += rdm1;
richTextBox1.Text += "*";
if (rdm2 < ) richTextBox1.Text += "(" + rdm2 + ")\n";
else richTextBox1.Text += rdm2 + "=\n";
break;
}
case :
{
if (rdm1 < ) richTextBox1.Text += "(" + rdm1 + ")";
else richTextBox1.Text += rdm1;
richTextBox1.Text += "/";
if (rdm2 < ) richTextBox1.Text += "(" + rdm2 + ")\n";
else richTextBox1.Text += (rdm2 + ) + "=\n";
break;
}
}
break;
}
case : {
int rdm1 = Random1.Next(min, max);
int rdm2 = Random1.Next(min, max);
int rdm3 =Random1.Next(, max);
richTextBox1.Text += "(";
if (rdm1 < ) richTextBox1.Text += "("+rdm1+")";//判断rdm1是否为负数
else richTextBox1.Text += rdm1;
if (Random1.Next(, ) == ) richTextBox1.Text += "+";//确定括号内的符号
else richTextBox1.Text += "-";
if (rdm2 < ) richTextBox1.Text += "(" + rdm2 + "))";//判断rdm2是否为负数
else richTextBox1.Text += rdm2+")";
if (Random1.Next(, ) == ) richTextBox1.Text += "*"+rdm3+"=\n";//确定括号外的符号
else richTextBox1.Text += "/"+rdm3+"=\n";
break;
}
}
}
} private void Form2_Load(object sender, EventArgs e)
{ } private void button1_Click(object sender, EventArgs e)
{
this.Close();
}
}
}

三、运行结果截图:

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

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

四、心得体会

  通过这次对四则运算的扩展,我学会了怎样在两个窗体之间传递参数,把变量设置为静态变量,可以被所有对象使用。这次巩固了对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

编码

执行

未知

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