一、需求分析
用户还可以自行输入所要计时的时间,从而进行倒计时;
单击停止按钮时也会弹出统计结果;
用户还可以自行输入随机数的产生范围;
运算符号的随机产生;
用户还可以选择是否加括号!分为前两个数加和后两个数加。
二、设计思路
先创建From1再设计From2;
编写代码先From1 中随机数、算法、定时器、结果的判断正确;
然后From2正确题数、总题数、正确率的值。
三、代码实现
From1
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(); } //定义变量 public static int t; public static int m; public static int count=-1; public static int right=0; public void suanfa() //算法 { Random s = new Random(); int d, h; d = s.Next(1,5); h = s.Next(1,5); if (d == 1) { label4.Text = "+"; } if (d == 2) { label4.Text = "-"; } if (d == 3) { label4.Text = "*"; } if (d == 4) { label4.Text = "/"; } if (h == 1) { label8.Text = "+"; } if (h == 2) { label8.Text = "-"; } if (h == 3) { label8.Text = "*"; } if (h == 4) { label8.Text = "/"; } } public void shu() //输出两个随机数 { Random s = new Random(); int n1, n2, n3; int a = int.Parse(textBox3.Text)+1; int b = int.Parse(textBox4.Text)+1; n1 = s.Next(a,b); n2 = s.Next(a,n1); n3 = s.Next(n2,b); label3.Text = n1.ToString(); label6.Text = n2.ToString(); label9.Text = n3.ToString(); textBox2.Text = ""; count++; } private void timer1_Tick(object sender, EventArgs e)//定时器 { if (t <= 0) { timer1.Enabled = false; textBox2.Enabled = false; MessageBox.Show("时间到!"); Form2 da = new Form2(); da.ShowDialog(); } t = t - 1; textBox1.Text = t.ToString(); } private void button1_Click(object sender, EventArgs e) { int c=int.Parse(textBox1.Text); t = c; timer1.Enabled = true; timer1.Interval = 1000; timer1.Start(); shu(); suanfa(); } private void textBox2_KeyDown(object sender, KeyEventArgs e) { if (e.KeyCode == Keys.Enter) { if(textBox2.Text==m.ToString()) { right++; } shu(); suanfa(); } string k=label4.Text; string l=label8.Text; string n=k+l; if (comboBox1.Text == "前两个加") { if (n == "+*") { m = (int.Parse(label3.Text) + int.Parse(label6.Text)) * int.Parse(label9.Text); } if (n == "+/") { m = (int.Parse(label3.Text) + int.Parse(label6.Text)) / int.Parse(label9.Text); } if (n == "-*") { m = (int.Parse(label3.Text) - int.Parse(label6.Text)) * int.Parse(label9.Text); } if (n == "-/") { m = (int.Parse(label3.Text) - int.Parse(label6.Text)) / int.Parse(label9.Text); } if (n == "++") { m = (int.Parse(label3.Text) + int.Parse(label6.Text)) + int.Parse(label9.Text); } if (n == "+-") { m = (int.Parse(label3.Text) + int.Parse(label6.Text)) - int.Parse(label9.Text); } if (n == "--") { m = (int.Parse(label3.Text) - int.Parse(label6.Text)) - int.Parse(label9.Text); } if (n == "-+") { m = (int.Parse(label3.Text) - int.Parse(label6.Text)) + int.Parse(label9.Text); } if (n == "**") { m = (int.Parse(label3.Text) * int.Parse(label6.Text)) * int.Parse(label9.Text); } if (n == "*/") { m = (int.Parse(label3.Text) * int.Parse(label6.Text)) / int.Parse(label9.Text); } if (n == "/*") { m = (int.Parse(label3.Text) / int.Parse(label6.Text)) * int.Parse(label9.Text); } if (n == "//") { m = (int.Parse(label3.Text) / int.Parse(label6.Text)) / int.Parse(label9.Text); } if (n == "*+") { m = (int.Parse(label3.Text) * int.Parse(label6.Text)) + int.Parse(label9.Text); } if (n == "*-") { m = (int.Parse(label3.Text) * int.Parse(label6.Text)) - int.Parse(label9.Text); } if (n == "/+") { m = (int.Parse(label3.Text) / int.Parse(label6.Text)) + int.Parse(label9.Text); } if (n == "/-") { m = (int.Parse(label3.Text) / int.Parse(label6.Text)) - int.Parse(label9.Text); } } if (comboBox1.Text == "后两个加") { if (n == "++") { m = int.Parse(label3.Text) + (int.Parse(label6.Text) + int.Parse(label9.Text)); } if (n == "+*") { m = int.Parse(label3.Text) + (int.Parse(label6.Text) * int.Parse(label9.Text)); } if (n == "+/") { m = int.Parse(label3.Text) + (int.Parse(label6.Text) / int.Parse(label9.Text)); } if (n == "+-") { m = int.Parse(label3.Text) + (int.Parse(label6.Text) - int.Parse(label9.Text)); } if (n == "--") { m = int.Parse(label3.Text) - (int.Parse(label6.Text) - int.Parse(label9.Text)); } if (n == "-*") { m = int.Parse(label3.Text) - (int.Parse(label6.Text) * int.Parse(label9.Text)); } if (n == "-/") { m = int.Parse(label3.Text) - (int.Parse(label6.Text) / int.Parse(label9.Text)); } if (n == "-+") { m = int.Parse(label3.Text) - (int.Parse(label6.Text) + int.Parse(label9.Text)); } if (n == "**") { m = int.Parse(label3.Text) * (int.Parse(label6.Text) * int.Parse(label9.Text)); } if (n == "*/") { m = int.Parse(label3.Text) * (int.Parse(label6.Text) / int.Parse(label9.Text)); } if (n == "/*") { m = int.Parse(label3.Text) / (int.Parse(label6.Text) * int.Parse(label9.Text)); } if (n == "*+") { m = int.Parse(label3.Text) * (int.Parse(label6.Text) + int.Parse(label9.Text)); } if (n == "*-") { m = int.Parse(label3.Text) * (int.Parse(label6.Text) - int.Parse(label9.Text)); } if (n == "/-") { m = int.Parse(label3.Text) / (int.Parse(label6.Text) - int.Parse(label9.Text)); } if (n == "/+") { m = int.Parse(label3.Text) / (int.Parse(label6.Text) + int.Parse(label9.Text)); } if (n == "//") { m = int.Parse(label3.Text) / (int.Parse(label6.Text) / int.Parse(label9.Text)); } } if(comboBox1.Text=="不加") { if (n == "++") { m = int.Parse(label3.Text) + int.Parse(label6.Text) + int.Parse(label9.Text); } if (n == "+*") { m = int.Parse(label3.Text) + int.Parse(label6.Text) * int.Parse(label9.Text); } if (n == "+/") { m = int.Parse(label3.Text) + int.Parse(label6.Text) / int.Parse(label9.Text); } if (n == "+-") { m = int.Parse(label3.Text) + int.Parse(label6.Text) - int.Parse(label9.Text); } if (n == "--") { m = int.Parse(label3.Text) - int.Parse(label6.Text) - int.Parse(label9.Text); } if (n == "-*") { m = int.Parse(label3.Text) - int.Parse(label6.Text) * int.Parse(label9.Text); } if (n == "-/") { m = int.Parse(label3.Text) - int.Parse(label6.Text) / int.Parse(label9.Text); } if (n == "-+") { m = int.Parse(label3.Text) - int.Parse(label6.Text) + int.Parse(label9.Text); } if (n == "**") { m = int.Parse(label3.Text) * int.Parse(label6.Text) * int.Parse(label9.Text); } if (n == "*/") { m = int.Parse(label3.Text) * int.Parse(label6.Text) / int.Parse(label9.Text); } if (n == "/*") { m = int.Parse(label3.Text) / int.Parse(label6.Text) * int.Parse(label9.Text); } if (n == "*+") { m = int.Parse(label3.Text) * int.Parse(label6.Text) + int.Parse(label9.Text); } if (n == "*-") { m = int.Parse(label3.Text) * int.Parse(label6.Text) - int.Parse(label9.Text); } if (n == "/-") { m = int.Parse(label3.Text) / int.Parse(label6.Text) - int.Parse(label9.Text); } if (n == "/+") { m = int.Parse(label3.Text) / int.Parse(label6.Text) + int.Parse(label9.Text); } if (n == "//") { m = int.Parse(label3.Text) / int.Parse(label6.Text) / int.Parse(label9.Text); } } } private void comboBox1_SelectedIndexChanged(object sender, EventArgs e) { if( comboBox1.Text=="前两个加") { label2.Text = "("; label5.Text = ""; label7.Text = ")"; label10.Text = ""; } if (comboBox1.Text == "后两个加") { label2.Text = ""; label5.Text = "("; label7.Text = ""; label10.Text = ")"; } if (comboBox1.Text == "不加") { label2.Text = ""; label5.Text = ""; label7.Text = ""; label10.Text = ""; } } private void button2_Click(object sender, EventArgs e) { timer1.Enabled = false; textBox2.Enabled = false; Form2 da = new Form2(); da.ShowDialog(); } } }
From2
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 Form2 : Form
{
public Form2()
{
InitializeComponent();
}
private void Form2_Load(object sender, EventArgs e)
{
textBox1.Text = Form1.count.ToString();
textBox2.Text = Form1.right.ToString();
textBox3.Text = ((Form1.right / (double)(Form1.count)) * 100).ToString() + "%";
}
}
}
四、测试
五、
PSP2.1 | Personal Software Process Stages | Time(h) |
Planning | 计划 | 6 |
• Estimate | 估计这个任务需要多长时间 | 8 |
Development | 开发 | |
• Analysis | 需求分析 | 1 |
• Design Spec | 生成设计文档 | |
• Coding Standard | 代码规范 | 1 |
• Design | 具体设计 | 1.5 |
• Coding | 具体代码 | 3 |
• Code Review | 代码复审 | 0.5 |
• Text | 测试 | 1.5 |
Reporting | 报告 | |
• Test Report | 测试报告 | |
• Size Measurement | 计算工作量 |
0.5 |
• Postmortem | 事后总结 |
1 |
六、总结
这次程序有好多问题 ,就实现了混合运算,不重复、不为负数都没实现不知道该如何去做,希望您给点意见。