5 Тестирование
После завершения программы было проведено тестирование. В результате этого тестирования и исправления ошибок была получена программа, верно выполняющая поставленные задачи.
6 Заключение
По завершении курсовой работы была создана программа «Шифр Виженера», выполняющая шифрование или дешифрование сообщений на русском языке.
Все задачи, указанные в ТЗ, программа успешно выполняет.
Для написания данной программы была использована программная среда Microsoft Visual C# 2005.
Приложение А (справочное)
Блок-схемы процедур
Процедура шифрования:
Процедура дешифрования:
Для Form2 и Form3 (вставка из файла):
Для Form2 и Form3 (сохранение в файл):
Приложение Б (справочное)
Листинги процедур программы:
Для Form2 (шифрование):
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
namespace WindowsApplication1
{
public partial class Form2 : Form
{
public Form2()
{
InitializeComponent();
}
private void button3_Click(object sender, EventArgs e)
{
if (saveFileDialog1.ShowDialog() == DialogResult.Cancel) { }
else richTextBox2.SaveFile(saveFileDialog1.FileName);
}
private void button2_Click(object sender, EventArgs e)
{
int i,j;
for (j = 0; j < textBox1.TextLength; j++)
if (!((textBox1.Text[j] >= 'А') && (textBox1.Text[j] <= 'Я') || (textBox1.Text[j] == ' ')))
{
textBox1.Clear();
break;
}
for (i = 0; i < richTextBox1.TextLength; i++)
if (!((richTextBox1.Text[i] >= 'А') && (richTextBox1.Text[i] <= 'Я') || (richTextBox1.Text[i] == ' ')))
{
richTextBox1.Clear();
break;
}
if (!(richTextBox1.Text == "" || textBox1.Text == ""))
{
richTextBox2.Clear();
int n = richTextBox1.TextLength, cs = 0;
for (i = 0; i < n; i++)
{
int x = ((Convert.ToInt32(richTextBox1.Text[i]) + Convert.ToInt32(textBox1.Text[(i - cs) % textBox1.TextLength])) % 32);
if (richTextBox1.Text[i] == ' ') { richTextBox2.Text += ' '; cs++; }
else richTextBox2.Text += (Convert.ToChar(1040 + ((x >= 0) ? x : (x + 32)))).ToString();
}
}
else
{
Form4 x = new Form4();
x.ShowDialog();
}
}
private void button1_Click(object sender, EventArgs e)
{
if (openFileDialog1.ShowDialog() == DialogResult.Cancel) { }
else richTextBox1.LoadFile(openFileDialog1.FileName);
}
}
}
Для Form3 (дешифрование):
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
namespace WindowsApplication1
{
public partial class Form3 : Form
{
public Form3()
{
InitializeComponent();
}
private void button3_Click(object sender, EventArgs e)
{
if (saveFileDialog1.ShowDialog() == DialogResult.Cancel) { }
else richTextBox2.SaveFile(saveFileDialog1.FileName);
}
private void button2_Click(object sender, EventArgs e)
{
int i,j;
for (j = 0; j < textBox1.TextLength; j++)
if (!(textBox1.Text[j] >='А' && textBox1.Text[j] <='Я' || textBox1.Text[j] == ' '))
{
textBox1.Clear();
break;
}
for (i = 0; i < richTextBox1.TextLength; i++)
if (!((richTextBox1.Text[i] >= 'А') && (richTextBox1.Text[i] <= 'Я') || (richTextBox1.Text[i] == ' ')))
{
richTextBox1.Clear();
break;
}
if (!(richTextBox1.Text == "" || textBox1.Text == ""))
{
richTextBox2.Clear();
int n = richTextBox1.TextLength, cs = 0;
for (i = 0; i < n; i++)
{
int x = ((Convert.ToInt32(richTextBox1.Text[i]) - Convert.ToInt32(textBox1.Text[(i - cs) % textBox1.TextLength])) % 32);
if (richTextBox1.Text[i] == ' ') { richTextBox2.Text += ' '; cs++; }
else richTextBox2.Text += (Convert.ToChar(1040 + ((x >= 0) ? x : (x + 32)))).ToString();
}
}
else
{
Form4 x = new Form4();
x.ShowDialog();
}
}
private void button1_Click(object sender, EventArgs e)
{
if (openFileDialog1.ShowDialog() == DialogResult.Cancel) { }
else richTextBox1.LoadFile(openFileDialog1.FileName);
}
}
}