第三次软件工程作业
(一)需求分析:
本次设计的计算机程序比较上次做的功能增加,能够自己设置倒计时时间,总之这次的设计耗费我不少时间,需求我感觉能够让小学生做一些简单的算术题,但局限性太大,这个软件还有好多的bug,我能力有限,没办法改,
(二)具体思路:
我和上次的计算器用的不一样,这次比上次我感觉更好些,加入的计时器我参考的书上的计时器,让用户自定义设置时间的功能是运用了一个文本框,运行的时候先输入自己想要设置的时间,而且对于时间我也做了设定,让用户设定的时间不能为负数,然后再摁开始,具体代码老师可以btnStart的代码,计算器我是用的是的while做出来的,基本思路是这样的。还有那个输入答案的文本框,我请教了老师。当输入你写的答案后,按下回车后会自动进入下一道题。
(三)代码实现:
namespace Calculator
{
public partial class Form1 : Form
{
public int Count = 0;
public int right = 0;
private int t = 60;
public Form1()
{
InitializeComponent();
}
private void Form1_Load(object sender, EventArgs e)
{
comboBox1.SelectedIndex = 0;
}
private void RandomNum()
{
Random ran = new Random();
int n1, n2;
n1 = ran.Next(1, 11);
n2 = ran.Next(1, 11);
txtNum1.Text = n1.ToString();
txtNum2.Text = n2.ToString();
//if (comboBox1.Text == "-")
switch (comboBox1.Text)
{
case "-":
while (true)
{
if (int.Parse(txtNum1.Text) >= int.Parse(txtNum2.Text))
{
break;
}
n1 = ran.Next(1, 11);
n2 = ran.Next(1, 11);
txtNum1.Text = n1.ToString();
txtNum2.Text = n2.ToString();
}
break;
case "/":
break;
}
txtResult.Text = "";
Count++;
}
private void btnStop_Click(object sender, EventArgs e)
{
timer1.Enabled = false;
txtResult.Enabled = false;
MessageBox.Show("正确的题目数为:"+right+"错误的题目为:"+(Count-right-1));
}
private void btnStart_Click(object sender, EventArgs e)
{
try
{
t = int.Parse(txtTime.Text);
if (t<=0)
{
MessageBox.Show("时间不能为负数");
return;
}
label1.Text = t.ToString();
txtTime.Enabled = false;
}
catch (Exception)
{
MessageBox.Show("请输入正确的时间");
return;
}
txtResult.Enabled = true;
timer1.Enabled = true;
timer1.Interval = 1000;
timer1.Start();
RandomNum();
}
private void txtResult_KeyDown(object sender, KeyEventArgs e)
{
int result;
if (e.KeyCode == Keys.Enter)
{
switch (comboBox1.Text)
{
case "+":
result = int.Parse(txtNum1.Text) + int.Parse(txtNum2.Text);
break;
case "-":
result = int.Parse(txtNum1.Text) - int.Parse(txtNum2.Text);
break;
case "*":
result = int.Parse(txtNum1.Text) * int.Parse(txtNum2.Text);
break;
default :
result = int.Parse(txtNum1.Text) / int.Parse(txtNum2.Text);
break;
}
if (txtResult.Text == Convert.ToString(result))
{
right++;
}
RandomNum();
}
}
private void comboBox1_SelectedIndexChanged(object sender, EventArgs e)
{
}
private void timer1_Tick(object sender, EventArgs e)
{
if (t <= 0)
{
timer1.Enabled = false;
txtResult.Enabled = false;
MessageBox.Show("时间到!");
//txtResult.Enabled = false;
txtResult.Enabled = false;
txtTime.Enabled = true;
MessageBox.Show("正确的题目数为:" + right + "错误的题目为:" + (Count - right-1));
}
t = t - 1;
label1.Text = t.ToString();
}
}
}
(四)屏幕截图:
(五)测试
说实话这次的测试还是比较满意的,因为基本实现了我想要的基本功能,而且附加题中我加入了可以让结果不为负数的功能,还加入可以让用户自定义设置倒计时的功能,
(六)psp耗时分析
(七)总结:
做你这个程序之后,我感觉很有成就感,但我自知我还是菜鸟一个,我会努力,由于我的c#基础没学好,导致我好多的东西动不动,因此近段时间我从网上下载你一些传智播客的一些c#的基础课程视频,希望对我能有所帮助,而且,以前我根本看不懂程序代码写得是什么,但现在我能看个差不多,我相信这就是进步。我这次结对编程是和我们宿舍杨坤一起完成的,下面是我们两个进行讨论时的一些图片。
基本情况就是这样了,用了我好长时间,不说了,继续抄书了。想想都发愁。真的抄书真没意思,有抄书的那段时间我感觉还不如看会我下载的视频。