软件工程——四则运算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 |
|
编码 |
执行 |
未知 |
|
|
描述:算法无法达到预期结果,比如无法显示结果 |