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

 

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

университет»

Армавирский механико-технологический институт

Кафедра Внутризаводского электрооборудования и автоматики









Пояснительная записка

к курсовой работе

по дисциплине Информатика

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




Выполнил студент

группы 12ФАБ-ИВ

Смольняков Игорь Михайлович

Руководитель проекта

Бабанская-Никель Ингрита Павловна



Реферат


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

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

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

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

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

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

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

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

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

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



Содержание


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

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

Введение

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

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

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

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

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

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

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

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

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

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

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

.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 Т.к. - так как

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

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



Введение


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

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

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

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

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

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

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

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

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



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


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


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

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

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

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

Требование к возможности понимания содержимого человеком вносит дополнительную избыточность в представление данных. К примеру, число 123, для кодирования которого достаточно одного 8-битного байта, в текстовом виде кодируется несколькими цифровыми символами - так, в десятичной системе счисления для этого требуется три знака («123»), в двоичной - семь знаков («1111011»), в шестнадцатеричной - два («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-.--ЭÉ-..-ЮÜ..-..ЯÄ.-.-1.----2..---3…--4….-5…..6-….7--…8---..9----.0-----Точка……Запятая.-.-.-Двоеточие---…;-.-.-.Скобка-.--.-Апостроф.----.Кавычки.-..-.--….-/-..-.?..--..!--..--Знак раздела-…-Ошибка/перебой……[email protected].Конец связи (end contact)..-.-


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


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


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

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


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


Методы: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() - ввод данных с клавиатурыor () - цикл со счетчиком

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

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

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

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



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


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


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


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



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


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


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


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


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


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

using System;System.Collections.Generic;System.Linq;System.Text;System.Threading.Tasks;text_to_morze

{Program

{void Main(string[] args)

{

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

string t0 = Console.ReadLine();s0 = "абвгдежзийклмнопрстуфхцчшщъыьэюя.,!?ё";r = "";[] s = s0.ToCharArray();[] t = t0.ToCharArray();(int i = 0; i < t.Length; i++)

{ for (int j = 0; j < s.Length; j++)(t[i] != s[j]); else(j)

{ case 0: r += ".- "; break;1: r += "-... "; break;2: r += ".-- "; break;3: r += "--. "; break;4: r += "-.. "; break;5: r += ". "; break;6: r += "...- "; break;7: r += "--.. "; break;8: r += ".. "; break;9: r += ".--- "; break;10: r += "-.- "; break;11: r += ".-.. "; break;12: r += "-- "; break;13: r += "-. "; break;14: r += "--- "; break;15: r += ".--. "; break;16: r += ".-. "; break;17: r += "... "; break;18: r += "- "; break;19: r += "..- "; break;20: r += "..-. "; break;21: r += ".... "; break;22: r += "-.-. "; break;23: r += "---. "; break;24: r += "---- "; break;25: r += "--.- "; break;26: r += "--.-- "; break;27: r += "-.-- "; break;28: r += "-..- "; break;29: r += "..-.. "; break;30: r += "..-- "; break;31: r += ".-.- "; break;32: r += "...... "; break;33: r += ".-.-.- "; break;34: r += "--..-- "; break;35: r += "..--.. "; break;36: r += ". "; break;

}; };(r != "") { Console.WriteLine("Введенный вами текст в коде Морзе имеет такой вид"); Console.WriteLine(r); } else {Console.WriteLine("Вы не ввели ни одного поддерживаемого знака"); goto a;};.ReadKey();

}

}

}


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

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


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


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

string r = "";


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

char[] s = s0.ToCharArray();[] t = t0.ToCharArray();


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


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

{(int j = 0; j < s.Length; j++)(t[i] != s[j]); else(j)

{0: r += ".- "; break;1: r += "-... "; break;2: r += ".-- "; break;3: r += "--. "; break;4: r += "-.. "; break;5: r += ". "; break;6: r += "...- "; break;7: r += "--.. "; break;8: r += ".. "; break;9: r += ".--- "; break;10: r += "-.- "; break;11: r += ".-.. "; break;12: r += "-- "; break;13: r += "-. "; break;14: r += "--- "; break;15: r += ".--. "; break;16: r += ".-. "; break;17: r += "... "; break;18: r += "- "; break;19: r += "..- "; break;20: r += "..-. "; break;21: r += ".... "; break;22: r += "-.-. "; break;23: r += "---. "; break;24: r += "---- "; break;25: r += "--.- "; break;26: r += "--.-- "; break;27: r += "-.-- "; break;28: r += "-..- "; break;29: r += "..-.. "; break;30: r += "..-- "; break;31: r += ".-.- "; break;32: r += "...... "; break;33: r += ".-.-.- "; break;34: r += "--..-- "; break;35: r += "..--.. "; break;

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

};


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


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

Console.WriteLine(r);.ReadKey();


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



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


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

перевод текст код азбука морзе

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


Рисунок 6 - Стартовое окно программы


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


Рисунок 7 - Ввод текста пользователем


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


Рисунок 8 - Вывод результата


Программа завершается по нажатию любой клавиши.


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


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


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

№Введенный текстРезультат в коде Морзе1а, б, в.-.-.-.- -….-.-.-.--2проверка.--..-. ---.--..-. -.-.-3привет.--..-....--. -4предмет.--..-.. -.. --. -5поиск.--. ---.. … -.-6клавиатура-.-.-...-.--...- -..-.-..-7монитор-- --- -... - ---.-.8программирование.--..-. --- --..-..- -- --...-. ---.--.- -....9project курсовая -.-..-.-. … ---.--.-.-.-10checkВы не ввели ни одного поддерживаемого знака

Ниже приведены скриншоты всех проверок. Результат первой тестовой выборки представлен на рисунке 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 #"justify">.Научная библиотека естественнонаучных изданий #"justify">4.Герберт Шилдт. Полный справочник по С# Пер. с англ. - М. : Издательский дом "Вильяме", 2004. - 752 с. : ил. - Парал. тит. англ.

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

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

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

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


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

Больше работ по теме:

КОНТАКТНЫЙ EMAIL: [email protected]

Скачать реферат © 2017 | Пользовательское соглашение

Скачать      Реферат

ПРОФЕССИОНАЛЬНАЯ ПОМОЩЬ СТУДЕНТАМ