实验四 打字软件
设计
领导形象设计圆作业设计ao工艺污水处理厂设计附属工程施工组织设计清扫机器人结构设计
一、实验目的
1.熟悉Windows应用程序的创建方法。
2.掌握在C#中生成随机数的方法。
3.掌握数组的定义和使用方法。
二、实验仪器
Windows操作系统,Microsoft Visual Studio 2010。
三、实验原理
利用数组存放所有的英文字母,利用随机数发生器产生随机数定位到数组的下标,即可产生随机的英文字母序列。
四、实验内容与步骤
(一)、实验内容
创建一个Windows应用程序能实现简单的打字功能。首先设置出题字数确认后随机生成一段英文字母序列,这段文本只能由英文大小写字母、数字、空格组成。用户可以在文本框中输入对应的文本,实现打字操作,在输入字符的过程中对输错的字符给出提示和此次打字的正确率。程序的界面类似下面的形式:
(二)、主要实现步骤:
1.创建名为Typer的Windows应用程序。
2.在主窗体上放置如示例所示的控件。两个TextBox、一个按钮和两个个Label,一个richTextBox。分别设置好它们的属性。
3.打开主窗体对应的代码文件,在成员定义中加入以下几个成员的定义:存放固定字符的字符数组;存放设置字符个数的整型变量。
4.在窗体的构造方法中对存放固定字符的数组进行初始化,例如:
a = new char[ ]{'0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F','G','H','I','J','K','L','M','N','O','P','Q','R','S','T','U','V','W','X','Z','a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z'};
5.编写按钮的单击按钮事件对应方法代码,对该按钮应当起到的作用描述如下:
“设置”按钮,应当根据它旁边的编辑框中输入的数字来设置出题的字符个数;“开始出题并计时”按钮应当构造一个随机数发生器,然后循环随机生成0~61范围内的随机数,将这个随机数作为字符数组的下标,继而获得随机字符串。”交卷”按钮要比较源串和目标字符串之间相同字符的个数,利用消息框给出成绩。
随机字符串的生成代码:
string str = "";
int i, t;
if (int.TryParse(textBox2.Text.Trim(), out n))
{
Random rand = new Random();
for (i = 0; i < n; i++)
{
t = rand.Next(0, 61);
str += a[t].ToString();
}
textBox1.Text = str;
richTextBox1.MaxLength = n;
}
6.映射输入文本框(richTextBox)的TextChanged事件,在事件处理方法中将出错的字符进行变色显示提醒用户,将打字的正确率在label2上显示。参考代码如下:
private void richTextBox1_TextChanged(object sender, EventArgs e)
{
int t = richTextBox1.TextLength;
if (t != 0)
{
if (t > n)
{
MessageBox.Show("输入的字符超出
计划
项目进度计划表范例计划下载计划下载计划下载课程教学计划下载
数目", "警告", MessageBoxButtons.YesNo, MessageBoxIcon.Error);
return;
}
else if (richTextBox1.Text[t - 1] != textBox1.Text[t - 1])
{
richTextBox1.Select(t - 1, 1);
richTextBox1.SelectionColor = Color.Red;
richTextBox1.Select(t, 0);
errNum++;
}
else
{
richTextBox1.Select(t - 1, 1);
richTextBox1.SelectionColor = Color.Black;
richTextBox1.Select(t, 0);
}
label2.Text = "错误"+errNum+"个"+"正确率"+((double)(t-errNum)/t).ToString("P");
}
}
7.在所有主要功能完成的情况下可以自由发挥,可以添加新的功能,对要求的功能也可以采用不同的实现方法。
五、思考题
1.你觉得这个打字软件在哪些方面还用改进的余地,如何实现?