一 需求分析
本次老师为我们出了一道四则运算的程序题目,那么接下来,我首先谈谈这个程序的需求分析。四则运算,数字在1-10,可以想到本程序的适用对象为小学一年级到三年级(自我感觉,并不排除其他年级 )主要需求可能会出现在学校,家庭和教育机构还有部分教学网站上面,因为他们可能会给学生出一些简单的数学题目,而这一程序正好解决了这一个问题,我想,产品的需求必须首先知道用户需要什么,要以客户为中心。而这个产品正好解决了这个问题。所以,我感觉这个产品的需求应该挺不错的。
二 设计思路
1 用户第一步必须先选择一种可行的运算方式,这个事件的实现采用了下拉列表的方式 ,感觉这个方法比较便捷,用户操作方便,且可读性较强
2 系统会自动产生两个随机1-10数字,采用randnum的方式
3 随机数字产生之后,我们就要计算这两个数字,为了方便调用函数,我们采用switch....case的方式,以便减少代码的数量。
4.当此题目运算完毕后,用户如果单击下一题,那么我们会进行下一题的计算,并且执行运算方法的调用。如果用户单击结束时,则会弹出 题目的总数量,正确数量,错误数量,正确率等,且不能对运算窗体进行操作。
四 PSP分析
五 代码书写
Form1代码:
2
3
4 using System;
5 using System.Collections.Generic;
6 using System.ComponentModel;
7 using System.Data;
8 using System.Drawing;
9 using System.Linq;
10 using System.Text;
11 using System.Windows.Forms;
12
13 namespace sizeyunsuan
14 {
15 public partial class Form1 : Form
16 {
17 public static int count = 0; //定义题目总数,正确数,四则运算的变量
18 public static int right = 1;
19 public static int sum;
20 public Form1()
21 {
22 InitializeComponent();
23 }
24
25 private void Form1_Load(object sender, EventArgs e)
26 {
27
28 }
29 private void RandomNum() //定义随机产生随机数的方法
30 {
31 Random ran = new Random();
32 int n1, n2;
33 n1 = ran.Next(1, 11);
34 n2 = ran.Next(1, 11);
35 textBox1.Text = n1.ToString();
36 textBox2.Text = n2.ToString();
37 textBox3.Text = "";
38 count++;
39
40 }
41
42 private void comboBox1_SelectedIndexChanged(object sender, EventArgs e) //定义调换四则运算的方法
43 {
44
45 string str = comboBox1.SelectedItem.ToString();
46 RandomNum();
47 switch (str)
48 {
49 case "加法":
51 sum = int.Parse(textBox1.Text) + int.Parse(textBox2.Text);
52 break;
53 case "减法":
54 sum = int.Parse(textBox1.Text) -int.Parse(textBox2.Text);
55 break;
56 case "乘法":
57 sum = int.Parse(textBox1.Text) *int.Parse(textBox2.Text);
58 break;
59 case "除法":
60 sum = int.Parse(textBox1.Text) / int.Parse(textBox2.Text);
61 break;
62 default:
63 break;
65 }
66 }
67 private void button3_Click(object sender, EventArgs e) //题目正确数量的相加和随机数调用
68 {
69
70 if (textBox3.Text == sum.ToString())
71 {
72 right++;
73 RandomNum();
74 }
75 else
76 {
77 RandomNum();
78 }
79
80
81 }
82
83 private void button2_Click(object sender, EventArgs e) //单击结束时的具体事件
84 {
85
86 textBox3.Enabled = false;
87 Form2 frm2 = new Form2();
88 frm2.ShowDialog();
89 this.Close();
90
91 }
92 }
93 }
94
95
96
Form2代码:
99 using System;
100 using System.Collections.Generic;
101 using System.ComponentModel;
102 using System.Data;
103 using System.Drawing;
104 using System.Linq;
105 using System.Text;
106 using System.Windows.Forms;
107
108 namespace sizeyunsuan
109 {
110 public partial class Form2 : Form
111 {
112 public Form2()
113 {
114 InitializeComponent();
115 }
116
117 private void Form2_Load(object sender, EventArgs e)
118 {
119 textBox1.Text = Form1.count.ToString();
120 textBox2.Text = Form1.right.ToString();
121 textBox3.Text = ((Form1.right / (double)(Form1.count)) * 100).ToString() + "%";
122 textBox4.Text = ((Form1.count -(double)(Form1.right)) ).ToString();
123 }
124 }
125 }
六 代码测试
七 总结
这个算是自己做的第一个小程序吧,现在对做这个程序的总结和感想对大家说一下吧。
做程序的过程当中遇到过许多困难,我一个上午做了几个版本的程序,都有一定的问题,到中间环节有的感觉做不下去了,但是经过分析,查阅资料,还是慢慢的克服了。中间的许多方法来自于课本上所讲的内容,我尽我最大的努力把一些问题修复了,但是我在最后还是发现了一些问题,实在找不出原因了,中间的测试好像也有点问题。(哈哈 也许脑子太笨了,一时短路吧。)不过,这些问题我一定会改正的!
接下来是我对做程序这一个过程的总结:
1.一定要事先做好计划,可以说是对整个程序的设计分析,否则,到后来会有许多麻烦,甚至有可能会重做!
2.做事要有耐心,敲代码是件枯燥的工程,我们一定要用耐心,恒心,克服它。
3.缺乏练习,实战能力差,今后会加强练习的。
3.基础知识比较欠缺,还得努力学习基础知识。
...........
这就是程序做的整个过程了,希望老师批评指正吗!谢谢啦!