第三次作业
用户需求:
能对0--10之间的整数进行四则运算的“软件”
程序能接收用户输入的整数答案,并判断对错
程序结束时,统计出答对、答错的题目数量。
说明:0——10的整数是随机生成的
用户可以用键盘输入来选择四则运算中的一种
用户用键盘输入一个字符来结束程序的运行并显示统计结果
增量内容:
显示倒计时
用户可以选择哪种计算类型,比如加减乘除,或可选择软件随机生成四则运算中的一种。
设计思路:
使用四个 + - * / 按钮来让用户定义计算的方法,使用结束按钮跳出统计界面,其中按Enter进入下一题。
代码实现:
1 namespace 计算器 2 { 3 public partial class Form1 : Form 4 { 5 public static int Count = 0; 6 private int t = 60; 7 public static int right = 0; 8 public static int fault = 0; 9 10 public Form1() 11 { 12 InitializeComponent(); 13 } 14 15 16 private void button1_Click(object sender, EventArgs e) 17 { 18 label2.Text = "+"; 19 20 } 21 22 private void button2_Click(object sender, EventArgs e) 23 { 24 label2.Text = "-"; 25 26 } 27 private void button3_Click(object sender, EventArgs e) 28 { 29 label2.Text = "*"; 30 31 } 32 private void button4_Click(object sender, EventArgs e) 33 { 34 label2.Text = "/"; 35 36 } 37 38 private void RandomNum() 39 { 40 Random ran = new Random(); 41 int n1, n2; 42 n1 = ran.Next(0, 11); 43 n2 = ran.Next(1, 11); 44 textBox1.Text = n1.ToString(); 45 textBox2.Text = n2.ToString(); 46 textBox3.Text = ""; 47 Count++; 48 } 49 private void button6_Click(object sender, EventArgs e) 50 { 51 textBox3.Enabled = false; 52 MessageBox.Show("总题目数为:" + Count + " " + "正确个数为:" + fault + " "+"错误个数为:"+(Count -fault )); 53 54 } 55 private void textBox3_KeyDown(object sender, KeyEventArgs e) 56 { 57 int m; 58 if (e.KeyCode == Keys.Enter) 59 { 60 switch (label4.Text) 61 { 62 case "+": 63 m = int.Parse(textBox2.Text) + int.Parse(textBox3.Text); 64 break; 65 case "-": 66 m = int.Parse(textBox2.Text) - int.Parse(textBox3.Text); 67 break; 68 case "*": 69 m = int.Parse(textBox2.Text) * int.Parse(textBox3.Text); 70 break; 71 default: 72 m = int.Parse(textBox2.Text) / int.Parse(textBox3.Text); 73 break; 74 } 75 if (textBox3.Text == Convert.ToString(m)) 76 { 77 right++; 78 RandomNum(); 79 } 80 else 81 { 82 fault++; 83 RandomNum(); 84 } 85 } 86 } 87 private void button5_Click(object sender, EventArgs e) 88 { 89 label4.Text = t.ToString(); 90 timer1.Enabled = true; 91 timer1.Interval = 1000; 92 timer1.Start(); 93 RandomNum(); 94 } 95 private void timer1_Tick(object sender, EventArgs e) 96 { 97 if (t <= 0) 98 { 99 timer1.Enabled = false; 100 textBox3.Enabled = false; 101 MessageBox.Show("时间到!!!"); 102 textBox3.Enabled = false; 103 104 } 105 t = t - 1; 106 label4.Text = t.ToString(); 107 } 108 109 private void label2_Click(object sender, EventArgs e) 110 { 111 112 } 113 114 private void Form1_Load(object sender, EventArgs e) 115 { 116 117 } 118 119 private void label1_Click(object sender, EventArgs e) 120 { 121 122 } 123 124 private void label3_Click(object sender, EventArgs e) 125 { 126 127 } 128 } 129 130 }
增加了用户选择运算法则的四个按钮,增加了倒计时,
但是对于用户输入倒计时、分母为零的情况(直接1——11避开0的情况了)、以及用户输入错误符号处理等都没有实现。
PSP耗时:
planning | 计划 | 2天 |
estimate | 估计这个任务需要时长 | 2天 |
development | 开发 | |
analysis | 需求分析 | 1小时 |
Design Spec | 生成设计文档 | 2小时 |
Design Review | 设计复审 | 半小时 |
Coding Standard | 代码规范 | 1小时 |
Design | 具体设计 | 20分钟 |
Coding | 具体代码 | 2小时 |
Code Review | 代码复审 | 20分钟 |
Test | 测试 | 10分钟 |
Repoting | 报告 | 5分钟 |
Test Report | 测试报告 | 20分钟 |
Size Measurement | 计算工作量 | 6小时 |
总结:在室友帮助下我们两个终于完成了作业 虽然有些功能很难实现 但还是学到很多东西 继续加油。