Всем доброго времени суток, друзья, мне нужна ваша помощь, опишите пожалуйста структуру моей программы "Клавиатурного тренажера".
Вот код программы:
Код:
using System;
usingSystem.Collections.Generic;
usingSystem.ComponentModel;
usingSystem.Data;
usingSystem.Drawing;
usingSystem.Linq;
usingSystem.Text;
usingSystem.Windows.Forms;
usingSystem.Timers;
namespaceКурсовая_2
{
public partial class Form1 : Form
{
const string sym = "абвгдеёжзийклмнопрстуфхцчшщфсьыъэюя"; // строкаизкоторойберутсясимволы
int n=0; //счетчик таймера
intder = 0; //счетчик введенных символов
System.Timers.Timertmr = new System.Timers.Timer(); //таймер
public Form1()
{
InitializeComponent();
// инициализируем таймеры и определяем их интервалы
System.Timers.Timer tmr1 = new System.Timers.Timer();
tmr.Elapsed += new ElapsedEventHandler(DisplayTimeEvent);
tmr1.Elapsed += new ElapsedEventHandler(DisplayTimeEvent1);
tmr1.Enabled = true;
tmr.Interval = 1000;
tmr1.Interval = 1;
}
public void DisplayTimeEvent(object source, ElapsedEventArgs e)
{
n--; // отсчет раз в секунду
}
public void DisplayTimeEvent1(object source, ElapsedEventArgs e) // проверкаразвтик
{ // Выводвременииколичествасимволов
toolStripStatusLabel2.Text = "Процесс: " + Convert.ToString(der);
if (tmr.Enabled == true)
{
toolStripStatusLabel1.Text = "Время " + DateTime.Now.ToLongTimeString();
}
// скрытиеобратногоотсчета
if (n > 0) { label1.Visible = true; } else { label1.Visible = false; }
//проверкаоставшегосявремени
if (n > 0) { textBox2.ReadOnly = false; } else
{
textBox2.ReadOnly = true;
}
label1.Text = Convert.ToString(n); // обратныйотсчет
}
private void button1_Click(object sender, EventArgs e) // обработкакнопки "Новыйтекст"
{
tmr.Enabled = true; // Включаемтаймер
label1.Visible = true; // Включаемвидимостьобр.отсчета
label2.Text = ""; // Очищаем предыдущий результат
// Создаем рандомно количество слов в первом поле, в зависимости от введенных секунд
intslova=0;
n = Convert.ToInt16(numericUpDown1.Value);
Random rnd = new Random();
if (n <= 5) { slova = rnd.Next(1, 3); }
else
{
if (n <= 10) { slova = rnd.Next(3, 6); }
else
{
if (n <= 15) { slova = rnd.Next(6, 9); }
else
{
if (n <= 20) { slova = rnd.Next(9, 12); }
}
}
}
textBox1.Text = ""; // очищаем первое поле
// Создаем случайную строку слов из случайных символов
for (inti = 0; i<= slova; i++)
{
intkolsim = rnd.Next(2, 6);
stringsl = "";
for (int j = 0; j <= kolsim; j++)
{
sl += sym[rnd.Next(0, 35)];
}
textBox1.Text += sl + " ";
}
textBox1.Text = textBox1.Text.Substring(0, textBox1.Text.Length-1); // убираемпоследнийпробел
textBox2.Text = string.Empty; // чистимвтороеполе
textBox2.Focus(); // передаем во второе поле фокус управления
der = 0; // обнуляем счетчик введенных символов
toolStripProgressBar1.Value = 0; // обнуляем прогресс-бар
}
private void textBox2_TextChanged(object sender, EventArgs e)
// обработка введения символов
{
// рассчитываем шаг прогресс-бара
inty = Convert.ToInt16(100 / textBox1.Text.Length);
// учитываем условия изменения прогресс-бара
if ((toolStripProgressBar1.Value != 100) && (100 - toolStripProgressBar1.Value > y))
{
toolStripProgressBar1.Value += y;
}
else { toolStripProgressBar1.Value = 100; }
der++; //увеличиваемсчетчиксимволов
}
private void textBox2_ReadOnlyChanged(object sender, EventArgs e)
// действия после окончания времени ввода
{
if (textBox2.ReadOnly)
{
tmr.Enabled = false; // выключаемтаймер
intchsym = 0; // включаем счетчик совпавших символов
stringter = textBox2.Text; // передаем значение введенного текста в строку
//проверяем длину введенного текста,
if (textBox1.Text.Length > textBox2.Text.Length)
// если меньше сгенерированного,
//то увеличиваем на максимально возможное количество символов
{ ter += "~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"; }
//в цикле от начала до конца сгенерированного текста
for (inti = 0; i< textBox1.Text.Length; i++)
{ // проверяемсовпадениясимволов
if (textBox1.Text[i] == ter[i])
{ chsym++; };
label1.Text = Convert.ToString(chsym);
};
// рассчитываем процент совпадений
float r = textBox1.Text.Length;
float t = (chsym / r) * 100;
label2.Text = "Совпавшиесимволы- " + Convert.ToString(chsym) + " - " + Convert.ToString(Convert.ToInt16(t)) + "%";
}
}
}
}
______________________
Используйте тег [CODE] (кнопка с решеткой # в форме сообщения) при вставке кода на форум.