Стратегия решения задачи
Проверка для слов с большой буквы. Удаляем первую букву, из слова, взятого из словаря и заменяем заглавной. If (recordOfDictionary.Value.Equals (textList, System.StringComparison.OrdinalIgnoreCase)) // System.StringComparison.OrdinalIgnoreCas — не учитывать регистр. If (recordOfDictionary.Key.Equals (textList, System.StringComparison.OrdinalIgnoreCase… Читать ещё >
Стратегия решения задачи (реферат, курсовая, диплом, контрольная)
Интерфейсная часть проекта
Интерфейс программы был разработан следующим образом:
На основной форме проекта были размещены панели ввода и вывода данных, кнопки, которые позволяют выбирать условие, соответствующее описанию перевода. А так же главная кнопка, запускающая разработанный алгоритм перевода слов (рис. 1). Вверху находится меню, содержащая панель «О программе», где можно найти справку или же узнать о возможных причинах некорректной работы программы в разделе «Помощь» .
Листинги проекта
using System;
using System.Collections.Generic;
using System. ComponentModel;
using System. Data;
using System. Drawing;
using System. Linq;
using System. Text;
using System.Windows.Forms;
using System.Text.RegularExpressions;
using ERLibrary;
namespace ER_TRNSLTD.
{.
public partial class Form1: Form.
{.
public Form1().
{.
InitializeComponent ();
}.
private void КнопкаПеревода1_Клик (object sender, EventArgs e).
{.
Перевод (true);
}.
private void КнопкаПеревода2_Клик (object sender, EventArgs e).
{.
Перевод (false);
}.
private void Перевод (bool typeTranslate).
{.
richTextBox3.Clear ();
// Список, в который поэлементно занесутся слова и символы введённого текста.
List textList = new List ();
// Тестовая переменная, равная введённому тексу.
string inputText = richTextBox1. Text;
//## ИСПРАВЛЕНИЕ (добавляем в конец и начало текста по пробелу).
inputText = «» + inputText;
inputText += ««;
// Переменная, для формирования слов.
string word = «» ;
// Замена фраз.
foreach (var z in RELibraryDictionary. phraseList).
{.
inputText = inputText. Replace (z.Key, z. Value);
// все символы с маленькой буквы.
inputText = inputText. Replace (z.Key.ToLower (), z.Value.ToLower ());
}.
// Замена (удаление передлогов).
foreach (var z in RELibraryDictionary. prepositionList).
{.
//## ИСПРАВЛЕНИЕ Проверка на предлог после которого ««, «.» или «,» .
inputText = inputText. Replace (z.Key + ««, «» + z. Value);
inputText = inputText. Replace (z.Key + «.», z. Value + «.»);
inputText = inputText. Replace (z.Key + «,», z. Value + «,»);
//## ИСПРАВЛЕНИЕ. все символы с маленькой буквы и аналогичные варианты с «.», «,» и ««.
inputText = inputText. Replace (z.Key.ToLower () + ««, «» + z.Value.ToLower ());
inputText = inputText. Replace (z.Key.ToLower () + «.», z.Value.ToLower () + «.»);
inputText = inputText. Replace (z.Key.ToLower () + «,», z.Value.ToLower () + «,»);
}.
//# ИСПРАВЛЕНИЕ. Удаляем добавленные два пробела — один сначала, другой с конца.
inputText = inputText. Remove (0, 1);
inputText = inputText. Substring (0, inputText. Length — 1);
// Разбитие введённого символа на слова и символа.
foreach (char letter in inputText).
{.
string letterString = Convert. ToString (letter);
// Если встретился символ.
if (letterString.Equals («.») ||.
letterString.Equals (««) ||.
letterString.Equals («,») ||.
letterString.Equals («:») ||.
letterString.Equals («!») ||.
letterString.Equals («?») ||.
letterString.Equals («)») ||.
letterString.Equals («(») ||.
letterString.Equals («- «) ||.
letterString.Equals (««).
).
{.
if (!word.Equals (««)) // Если до символа было слово.
{.
// Добавить слово.
textList.Add (word);
// Сделать переменную, для временного хранения слова пустой «» .
word = «» ;
}.
textList.Add (letterString);
}.
else.
{.
// Начать/продолжить собирать слово по буквам.
word += letterString;
}.
}.
if (!word.Equals (««)) textList. Add (word);
// Для каждого элемента сформированного списка.
for (int i = 0; i < textList. Count; i++).
{.
// Поиск слова в словаре.
foreach (var recordOfDictionary in RELibraryDictionary. wordList).
{.
//Проверка для слов с большой буквы. Удаляем первую букву, из слова, взятого из словаря и заменяем заглавной.
string k = (string)(recordOfDictionary.Key.Remove (1, recordOfDictionary.Key.Length — 1)).ToUpper () + recordOfDictionary.Key.Remove (0, 1);
if (k.Equals (textList[i])).
{.
string v = (string)(recordOfDictionary.Value.Remove (1, recordOfDictionary.Value.Length — 1)).ToUpper () + recordOfDictionary.Value.Remove (0, 1);
// Заменить слово на значение словаря (значение — правый столбец словаря).
textList[i] = v;
// Завершить поиск для этого слова.
break;
}.
if (radioButton_ER.Checked).
{.
// Всё слово нижним регистром.
// Если слово совпало с ключом словаря (ключ — левый столбец словаря).
if (recordOfDictionary.Key.Equals (textList[i], System.StringComparison.OrdinalIgnoreCase)) // System.StringComparison.OrdinalIgnoreCas — не учитывать регистр
{.
// Заменить слово на значение словаря (значение — правый столбец словаря).
textList[i] = recordOfDictionary. Value;
// Завершить поиск для этого слова.
break;
}.
}.
else if (radioButton_RE.Checked).
{.
//Для перевода с русского на английский — т. е. наоборот — ищем значение словаря для слова, заменяем слово ключом.
if (recordOfDictionary.Value.Equals (textList[i], System.StringComparison.OrdinalIgnoreCase)) // System.StringComparison.OrdinalIgnoreCas — не учитывать регистр
{.
textList[i] = recordOfDictionary. Key;
break;
}.
}.
foreach (string wrd in textList) richTextBox3. Text += wrd;
}.
private void Form1_Load (object sender, EventArgs e).
private void выходToolStripMenuItem_Click (object sender, EventArgs e).
{.
this.Close ();
}.
private void справкаToolStripMenuItem_Click (object sender, EventArgs e).
{.
Справка form = new Справка ();
form.ShowDialog ();
}.
private void помощьToolStripMenuItem_Click (object sender, EventArgs e).
{.
Помощь form = new Помощь ();
form.ShowDialog ();
}.
}.
}.
перевод интерфейс приложение программирование.