Помощь в написании студенческих работ
Антистрессовый сервис

Разработка программы перевода введенной строки текста в последовательность кодов азбуки Морзе. 
Программа на языке высокого уровня

КурсоваяПомощь в написанииУзнать стоимостьмоей работы

Разбиение строковых переменных на символьные массивы г) Сравнение элементов массивов д) Присвоение значений результирующей строковой переменной е) Проверка ж) Вывод результата на экран В процессе работы я пришел к выводу, что можно переводить в код Морзе тексты, различные по размеру и знаковому содержанию, но результат зачастую будет намного объемней исходного варианта, и к тому же, будет долог… Читать ещё >

Разработка программы перевода введенной строки текста в последовательность кодов азбуки Морзе. Программа на языке высокого уровня (реферат, курсовая, диплом, контрольная)

ФГБОУ ВПО «Кубанский государственный технологический университет».

Армавирский механико-технологический институт Кафедра Внутризаводского электрооборудования и автоматики Пояснительная записка к курсовой работе по дисциплине Информатика на тему «Разработка программы перевода введенной строки текста в последовательность кодов азбуки Морзе. Программа на языке высокого уровня».

Выполнил студент группы 12ФАБ-ИВ Смольняков Игорь Михайлович Руководитель проекта Бабанская-Никель Ингрита Павловна.

Реферат.

Курсовая работа 31 с., 18 рис., 2 табл., 8 источников.

ПЕРЕВОД, СТРОКА ТЕКСТА, КОД АЗБУКИ МОРЗЕ, МАССИВЫ СИМВОЛОВ, ЯЗЫК С#.

Цель данной работы — перевести строку текста в последовательность кодов азбуки Морзе программа должна быть написана при помощи языка высокого уровня C#.

В процессе работы решались следующие задачи:

а) Исследование теоретического материала по переводу строки текста в последовательность кодов азбуки Морзе.

б) Создание программы со следующими функциями:

— ввод данных пользователем,.

— задание символьных массивов,.

— инициализация каждого знака строки текста своим кодом,.

— вывод результата на экран.

Нормативные ссылки Термины, определения и сокращения Введение.

1. Описание текста и азбуки Морзе.

1.1 Описание текста.

1.2 Описание азбуки Морзе.

2. Математическая постановка задачи.

2.1 Входные/выводные данные.

2.2 Основные методы языка C#, используемые в программе.

3. Описание программного продукта.

3.1 Алгоритм работы программы.

3.2 Листинг программы.

4. Результат работы программы.

4.1 Руководство пользователя.

4.2 Тестирование программы Заключение Список используемых источников.

Нормативные ссылки.

В настоящей курсовой работе использованы ссылки на следующие нормативные документы:

ГОСТ Р 1.5−2004 Стандартизация в РФ. Стандарты национальные РФ. Правила построения, изложения, оформления и обозначения.

ГОСТ Р 1.12−2004 Стандартизация в Российской Федерации. Термины и определения.

ГОСТ Р ИСО 9000−2008 Системы менеджмента качества. Основные положения и словарь.

ГОСТ Р ИСО 9001−2008 Системы менеджмента качества. Требования.

ГОСТ 19.101−77 ЕСПД. Виды программ и программных документов.

ГОСТ 19.102−77 ЕСПД. Стадии разработки.

ГОСТ 19.103−77 ЕСПД. Обозначение программ и программных документов.

ГОСТ 19.104−78 ЕСПД. Основные надписи.

ГОСТ 19.105−78 ЕСПД. Общие требования к программным документам.

ГОСТ 19.202−78 ЕСПД. Спецификация. Требования к содержанию и оформлению.

ГОСТ 19.301−79 ЕСПД. Программа и методика испытаний. Требования к содержанию и оформлению.

ГОСТ 19.401−78 ЕСПД. Текст программы. Требования к содержанию и оформлению.

ГОСТ 19.402−78 ЕСПД. Описание программы.

ГОСТ 19.404−79 ЕСПД. Пояснительная записка. Требования к содержанию и оформлению.

ГОСТ 19.502−78 ЕСПД. Описание применения. Требования к содержанию и оформлению.

ГОСТ 19.503−79 ЕСПД. Руководство системного программиста. Требования к содержанию и оформлению.

ГОСТ 19.504−79 ЕСПД. Руководство программиста. Требования к содержанию и оформлению.

ГОСТ 19.505−79 ЕСПД. Руководство оператора. Требования к содержанию и оформлению.

ГОСТ 19.701−90 ЕСПД. Схемы алгоритмов, программ, данных и систем. Обозначения условные и правила выполнения.

МР КубГТУ 4.4.3−2012 СМК Учебно-методическая деятельность. Выпускные квалификационные работы.

МР КубГТУ 4.2.6−2004 СМК. Учебно-организационная деятельность. Курсовое проектирование.

Термины, определения и сокращения.

В настоящей курсовой работе использованы следующие термины с соответствующими определениями и сокращениями:

1 Т.к. — так как.

2 Компилятор — программа или техническое средство, выполняющее трансляцию программы, составленной на исходном языке высокого уровня, в эквивалентную программу на низкоуровневом языке, близком машинному коду.

3 Скриншот — изображение, полученное компьютером и показывающее в точности то, что видит пользователь на экране монитора или другого визуального устройства вывода.

Код Морзе — это последовательность тоновых сигналов разной длины с паузами. Его начали использовать в ХХ веке. В то время Код Морзе являлся очень прогрессивным, надежным и простым способом передачи данных на большие расстояния. В принципе, даже на фоне современных технологий, он не утратил своих позиций и до сих пор используется. Например, в военной и морской сферах, или когда нет других способов связи, кроме обычного радиопередатчика или фонарика.

Цель данной работы — перевести строку текста в последовательность кодов азбуки Морзе программа должна быть написана при помощи языка высокого уровня C#.

В процессе работы решались следующие задачи:

а) Исследование теоретического материала по переводу строки текста в последовательность кодов азбуки Морзе.

б) Создание программы со следующими функциями:

— ввод данных пользователем,.

— задание символьных массивов,.

— инициализация каждого знака строки текста своим кодом,.

— вывод результата на экран.

1. Описание текста и азбуки Морзе.

1.1 Описание текста.

Текст (от лат. textus — «ткань; сплетение, связь, сочетание») — в общем плане связная и полная последовательность символов. Но т.к. данная курсовая работа относится к области программирования, то и текст мы будем рассматривать с соответствующей точки зрения.

Текст (текстовые данные или текстовый формат) — представление информации в вычислительной системе в виде последовательности печатных символов. Текстовыми данными, как правило, называются последовательности из подмножества знаков, включающего только печатные знаки (буквы, цифры, знаки препинания) и некоторые управляющие знаки (пробелы, табуляции, переводы строки). Существуют методы, позволяющие закодировать в текстовом формате произвольные данные любого формата.

Часто текстовые данные понимаются в более узком смысле — как текст на каких-либо языках (формальных или естественных), который может быть прочитан и понят человеком.

Текстовому формату противопоставляются «двоичные данные», информация в которых закодирована произвольным образом, не рассчитанном на восприятие человеком.

Требование к возможности понимания содержимого человеком вносит дополнительную избыточность в представление данных. К примеру, число 123, для кодирования которого достаточно одного 8-битного байта, в текстовом виде кодируется несколькими цифровыми символами — так, в десятичной системе счисления для этого требуется три знака («123»), в двоичной — семь знаков («1 111 011»), в шестнадцатеричной — два («7B»).

Основная цель применения текстовых данных — «общий знаменатель», независимость от отдельных программ, требующих собственного кодирования или форматирования и несовместимых с другими программами. Текстовые файлы (файлы в текстовом формате) могу быть открыты, прочитаны и отредактированы в любых текстовых редакторах.

Текстовый формат часто используются для представления данных, которые сами не являются чисто текстовыми. В этом случае другие форматы данных «надстраиваются» над простым текстом, для чего их управляющие конструкции выражаются посредством печатных слов и знаков препинания.

В большинстве языков программирования предполагается использование текстового формата для исходного кода программ. Помимо прочего, это позволяет применять к исходным кодам разнообразные утилиты для преобразований, оформления, поиска, статистики, анализа и т. п.

В файлах конфигурации многих программ применяется текстовый формат, даже если там представлены числа и двоичные переключатели (да/нет). Это несколько усложняет программы из-за необходимости преобразования текстовых данных во внутренний формат и обратно, но появляется возможность править конфигурацию вручную, без использования средств настройки самой программы.

1.2 Описание азбуки Морзе.

Код Морзе, «Морзянка» (Азбукой Морзе код начал называться только с первой мировой войны) способ знакового кодирования (представление букв алфавита, цифр, знаков препинания и других символов последовательностью сигналов, например, длинных и коротких: «тире» и «точек»). За единицу времени принимается длительность одной точки. Длительность тире равна трём точкам. Пауза между элементами одного знака — одна точка, между знаками в слове — 3 точки, между словами — 7 точек. Назван в честь американского изобретателя и художника Сэмюеля Морзе.

Буквенные коды (собственно «азбука») были добавлены коллегой Морзе, Альфредом Вейлем — факт, который Морзе впоследствии всячески отрицал (а заодно приписывал себе изобретение телеграфа как такового). Вейлем же, возможно, была придумана и цифровая часть кода. А в 1848 году код Вейля/Морзе был усовершенствован немцем Фридрихом Герке. Код, усовершенствованный Герке, используется до настоящего времени.

Принцип кодирования азбуки Морзе исходит из того, что буквы, которые чаще употребляются в английском языке, кодируются более простыми сочетаниями точек и тире. Это делает освоение азбуки Морзе проще, а передачи — компактнее. Для передачи русских букв использовались коды сходных латинских букв.

В 2004 г. Международный союз электросвязи ввёл в азбуку Морзе новый код для символа @, для удобства передачи адресов электронной почты.

В таблице 1 представлены соответствия русских, латинских букв и других символов и азбуки Морзе.

Таблица 1 — Значения кодов Морзе.

Русский символ.

Латинский символ.

Код Морзе.

А.

A.

.;

Б.

B.

-…

В.

W.

.-;

Г.

G.

—.

Д.

D.

-.

Е (также и Ё).

E.

.

Ж.

V.

…;

З.

Z.

—.

И.

I.

.

Й.

J.

.—;

К.

K.

-.;

Л.

L.

.-.

М.

M.

-;

Н.

N.

-.

О.

O.

—;

П.

P.

.—.

Р.

R.

.-.

С.

S.

Т.

T.

;

У.

U.

.;

Ф.

F.

.-.

Ц

H.

Ч.

C.

-.-.

Ш.

Ц

—-.

Щ.

CH.

—-;

Ъ.

Q.

—.;

Ы.

Y.

—.-;

Ь.

X.

-.-;

Э.

Й.

-.;

Ю.

Ь.

.-.

Я.

Д.

.-.;

.—-;

.—;

…-;

…;

-…

—…

—-.

——.

——;

Точка.

Запятая.

.-.-.;

Двоеточие.

—-…

;

-.-.-.

Скобка.

-.—.;

Апостроф.

.——.

Кавычки.

.-.-.

;

-…;

-.-.

.—.

!

—.-;

Знак раздела.

-…;

Ошибка/перебой.

.—.-.

Конец связи (end contact).

.-.;

2. Математическая постановка задачи.

2.1 Входные/выводные данные.

Входные данные: текст, вводимый пользователем. Область допустимых значений: кириллица и знаки '.' ',' '!' '?'.

Выводные данные: последовательность кодов азбуки Морзе.

2.2 Основные методы языка C#, используемые в программе.

Методы:

void Main — главная процедура Переменные:

string t0 — строковая переменная, в которую записывается текст, введенный пользователем.

string s0 — строковая переменная, являющаяся «эталоном», с значениями которого будет сверяться программа при преобразовании.

string r — строковая переменная, в которую будет записываться результат преобразования.

char[] s — массив символов, в который посимвольно записывается переменная s0.

char[] t — массив символов, в который посимвольно записывается переменная t0.

int i — целочисленная переменная, являющаяся идентификатором разрядов для массива t[].

int j — целочисленная переменная, являющаяся идентификатором разрядов для массива s[].

a: — метка, предназначенная для перенаправления хода выполнения программы на начало при непрохождении проверки введенных пользователем данных на поддерживаемость Операторы языка C#:

if () — оператор разветвления процесса.

Console.WriteLine () — вывод данных на экран.

Console.ReadLine () — ввод данных с клавиатуры.

for () — цикл со счетчиком.

switch () — разветвитель процесса вычисления на несколько направлений.

break — оператор прерывания.

Console.ReadKey () — получение следующего нажатого пользователем символа или функциональной клавиши.

ToCharArray () — переводит заданный экземпляр в последовательность символов Юникода.

3. Описание программного продукта.

3.1 Алгоритм работы программы.

Алгоритм работы программы представлен на рисунках 1−5.

Рисунок 1 — Алгоритм работы программы. Часть 1.

Рисунок 2 — Алгоритм работы программы. Часть 2.

Рисунок 3 — Алгоритм работы программы. Часть 3.

Рисунок 4 — Алгоритм работы программы. Часть 4.

Рисунок 5 — Алгоритм работы программы. Часть 5.

3.2 Листинг программы.

Рассмотрим исходный код программы, которая будет производить перевод введенного текста в последовательность кодов азбуки Морзе.

using System;

using System.Collections.Generic;

using System. Linq;

using System. Text;

using System.Threading.Tasks;

namespace text_to_morze.

{.

class Program.

{.

static void Main (string[] args).

{.

a :Console.WriteLine («Введите текст (допускаются кириллица и знаки '.' ',' '!' '?', остальные знаки переводиться не будут) «);

string t0 = Console. ReadLine ();

string s0 = «абвгдежзийклмнопрстуфхцчшщъыьэюя.,!?ё» ;

string r = «» ;

char[] s = s0. ToCharArray ();

char[] t = t0. ToCharArray ();

for (int i = 0; i < t. Length; i++).

{.

for (int j = 0; j < s. Length; j++).

if (t[i] ≠ s[j]); else.

switch (j).

{.

case 0: r += «.- «; break;

case 1: r += «-… «; break;

case 2: r += «.— «; break;

case 3: r += «—. «; break;

case 4: r += «-. «; break;

case 5: r += «. «; break;

case 6: r += «…- «; break;

case 7: r += «—. «; break;

case 8: r += «. «; break;

case 9: r += «.—- «; break;

case 10: r += «-.- «; break;

case 11: r += «.-. «; break;

case 12: r += «— «; break;

case 13: r += «-. «; break;

case 14: r += «—- «; break;

case 15: r += «.—. «; break;

case 16: r += «.-. «; break;

case 17: r += «… «; break;

case 18: r += «- «; break;

case 19: r += «.- «; break;

case 20: r += «.-. «; break;

case 21: r += «… «; break;

case 22: r += «-.-. «; break;

case 23: r += «—-. «; break;

case 24: r += «—— «; break;

case 25: r += «—.- «; break;

case 26: r += «—.— «; break;

case 27: r += «-.— «; break;

case 28: r += «-.- «; break;

case 29: r += «.-. «; break;

case 30: r += «.— «; break;

case 31: r += «.-.- «; break;

case 32: r += «… «; break;

case 33: r += «.-.-.- «; break;

case 34: r += «—.— «; break;

case 35: r += «.—. «; break;

case 36: r += «. «; break;

};

};

if (r ≠ «») { Console. WriteLine («Введенный вами текст в коде Морзе имеет такой вид»); Console. WriteLine®; } else {Console.WriteLine («Вы не ввели ни одного поддерживаемого знака»); goto a;};

Console.ReadKey ();

}.

}.

}.

Приступим к разбору главного метода.

Console.WriteLine («Введите текст (допускаются кириллица и знаки '.' ',' '!' '?') «);

string t0 = Console. ReadLine ();

Здесь производится ввод данных с клавиатуры и объявление строковой переменной t0.

string s0 = «абвгдежзийклмнопрстуфхцчшщъыьэюя.,!?ё» ;

string r = «» ;

Объявление «эталона» s0, с которым будет производиться сравнение символов, и результирующей переменной r, в которую и будет записан окончательный код Морзе.

char[] s = s0. ToCharArray ();

char[] t = t0. ToCharArray ();

На данном этапе происходит объявление массивов элементов, в которые посимвольно вписываются «эталон» и введенный текст.

for (int i = 0; i < t. Length; i++).

{.

for (int j = 0; j < s. Length; j++).

if (t[i] ≠ s[j]); else.

switch (j).

{.

case 0: r += «.- «; break;

case 1: r += «-… «; break;

case 2: r += «.— «; break;

case 3: r += «—. «; break;

case 4: r += «-. «; break;

case 5: r += «. «; break;

case 6: r += «…- «; break;

case 7: r += «—. «; break;

case 8: r += «. «; break;

case 9: r += «.—- «; break;

case 10: r += «-.- «; break;

case 11: r += «.-. «; break;

case 12: r += «— «; break;

case 13: r += «-. «; break;

case 14: r += «—- «; break;

case 15: r += «.—. «; break;

case 16: r += «.-. «; break;

case 17: r += «… «; break;

case 18: r += «- «; break;

case 19: r += «.- «; break;

case 20: r += «.-. «; break;

case 21: r += «… «; break;

case 22: r += «-.-. «; break;

case 23: r += «—-. «; break;

case 24: r += «—— «; break;

case 25: r += «—.- «; break;

case 26: r += «—.— «; break;

case 27: r += «-.— «; break;

case 28: r += «-.- «; break;

case 29: r += «.-. «; break;

case 30: r += «.— «; break;

case 31: r += «.-.- «; break;

case 32: r += «… «; break;

case 33: r += «.-.-.- «; break;

case 34: r += «—.— «; break;

case 35: r += «.—. «; break;

case 36: r += «. «; break;

};

Далее происходит посимвольное сравнение элементов текста и эталона, при совпадении которых идет запись кода Морзе в результирующую переменную.

Console.WriteLine («Введенный вами текст в коде Морзе имеет такой вид»);

Console.WriteLine®;

Console.ReadKey ();

Вывод результата на экран и прерывание программы.

4. Результат работы программы.

4.1 Руководство пользователя.

перевод текст код азбука морзе Для запуска программы необходимо открыть файл программы в компиляторе (для создания кода использовалась программа Microsoft Visual Studio 2012 Professional) и нажать комбинацию клавиш CTRL + F5 или нажать на кнопку запуска. На дисплее появится окно исполняемой программы, которая представлена на рисунке 6.

Рисунок 6 — Стартовое окно программы После запуска программа просит пользователя ввести текст (рисунок 7).

Рисунок 7 — Ввод текста пользователем Программа находит результат и выводит его на экран (рисунок 8). Если введенные текст не соответствует требованиям программы, она не будет его преобразовывать в код Морзе. Если не было введено ни одного поддерживаемого знака, программа уведомит об этом пользователя и вернется на начало.

Рисунок 8 — Вывод результата Программа завершается по нажатию любой клавиши.

4.2 Тестирование программы.

Проверка работоспособности программы будет проводиться по результатам, указанным в таблице 2.

Таблица 2 — Результаты проверки.

№.

Введенный текст.

Результат в коде Морзе.

а, б, в.

.-.-.-.- -…-.-.-.-;

проверка.

.—.-. —-.—.-. -.-.;

привет.

.—.-…—. ;

предмет.

.—.-. -. —. ;

поиск.

.—. —-. … -.;

клавиатура.

-.-.-…-.—…- -.-.-.;

монитор

— —- -… — —-.-.

программирование.

.—.-. —- —.-.- — —…-. —-.—.- -…

project курсовая.

-.-.-.-. … —-.—.-.-.;

check.

Вы не ввели ни одного поддерживаемого знака.

Ниже приведены скриншоты всех проверок. Результат первой тестовой выборки представлен на рисунке 9.

Рисунок 9 — Проверка 1.

Результат второй тестовой выборки представлен на рисунке 10.

Рисунок 10 — Проверка 2.

Результат третьей тестовой выборки представлен на рисунке 11.

Рисунок 11 — Проверка 3.

Результат четвертой тестовой выборки представлен на рисунке 12.

Рисунок 12 — Проверка 4.

Результат пятой тестовой выборки представлен на рисунке 13.

Рисунок 13 — Проверка 5.

Результат шестой тестовой выборки представлен на рисунке 14.

Рисунок 14 — Проверка 6.

Результат седьмой тестовой выборки представлен на рисунке 15.

Рисунок 15 — Проверка 7.

Результат восьмой тестовой выборки представлен на рисунке 16.

Рисунок 16 — Проверка 8.

Результат девятой тестовой выборки представлен на рисунке 17.

Рисунок 17 — Проверка 9.

Результат десятой тестовой выборки представлен на рисунке 18.

Рисунок 18 — Проверка 10.

Написанная программа для перевода текста в последовательность кодов азбуки Морзе в заданной области значений работает корректно на всех тестовых выборках.

Заключение.

При выполнении данной курсовой работы выполнялся перевод текста в последовательность кодов азбуки Морзе. Этот перевод производился по семи главным пунктам:

а) Ввод данных б) Создание «эталона».

в) Разбиение строковых переменных на символьные массивы г) Сравнение элементов массивов д) Присвоение значений результирующей строковой переменной е) Проверка ж) Вывод результата на экран В процессе работы я пришел к выводу, что можно переводить в код Морзе тексты, различные по размеру и знаковому содержанию, но результат зачастую будет намного объемней исходного варианта, и к тому же, будет долог по времени передачи (имеются ввиду тоновые радиосигналы). Но, несмотря на эти недостатки, до сих пор является распространенным методом передачи данных, т.к. устройства передачи и приема сигнала очень просты и надежны. В настоящее время код Морзе широко используется в военной и морской сферах, а так же в экстренных ситуациях для подачи сигналов бедствия.

Список используемых источников.

1. Свободная интернет-энциклопедия Википедия ru.wikipedia.org/wiki/Азбука_Морзе.

2. Онлайн-библиотека платформы Microsoft Developer Network http://msdn.microsoft.com/ru-ru/library/vstudio/system.char (v=vs.100).aspx.

3. Научная библиотека естественнонаучных изданий http://www.sernam.ru/book_csharp.php?id=63.

4. Герберт Шилдт. Полный справочник по С# Пер. с англ. — М.: Издательский дом «Вильяме», 2004. — 752 с.: ил. — Парал. тит. англ.

5. Павловская Т. А. С#. Программирование на языке высокого уровня. Учебник для вузов. — СПб.: Питер, 2009. — 432 с: ил.

6. Культин Н. Б. С# в задачах и примерах. — СПб.: БХВ-Петербург, 2007. — 240с.: ил. +CD-ROM.

7. Савельев А. Я. Основы информатики: Учеб. Для вузов. — М.: Изд-во МГТУ им. Н. Е. Баумана, 2001. -328 с.

8. Острейковский В. А. Информатика: Учеб. Для вузов. — М.: Высш. шк., 2000. — 511 с.

Показать весь текст
Заполнить форму текущей работой