Курсовая   работа   по   дисциплине   «Программирование   на   языке   высокого   уровня»




Скачать 25.16 Kb.
PDF просмотр
НазваниеКурсовая   работа   по   дисциплине   «Программирование   на   языке   высокого   уровня»
Дата конвертации03.10.2012
Размер25.16 Kb.
ТипКурсовая
Федеральное агентство связи 
ГОУ ВПО «Сибирский государственный университет телекоммуникаций и информатики» 
Кафедра вычислительных систем 
Курсовая работа по дисциплине 
«Программирование на языке высокого уровня» 
семестр 2 
2010/2011 учебный год 
Преподаватели
Старший преподаватель Кафедры ВС – Поляков Артём Юрьевич 
Доцент Кафедры ВС – Молдованова Ольга Владимировна 
 
ТРЕБОВАНИЯ К КУРСОВЫМ РАБОТАМ 
 
Требования к курсовым работам 
1.  Все программы реализуются на языке Си. 
2.  Необходима проверка всех входных данных на корректность. В случае ошибки должно выда-
ваться  сообщение,  поясняющее  суть  ошибки  для  пользователя.  Далее  программа  должна  за-
вершаться с ненулевым кодом. 
3.  Для сдачи курсового проекта необходимо подготовить отчетвключающий приведенные 
ниже пункты
1)  Титульный лист, оформленный как в шаблоне для лабораторных работ. Вместо строки 
"Лабораторная  работа"  "Курсовой  проект".  В  поле  название  пишется  название  раздела 
задания к которому относится ваш вариант; 
2)  Задание — содержит текст задания; 
3)  Анализ  задачи,  приводится  развернутый  анализ  задачи,  описываются  методы  и  алго-
ритмы  решения  поставленной  задачи  (особенно  важные  фрагменты  представляются 
блок-схемами  или  псевдокодом).  Если  используются  известные  алгоритмы  (кодирова-
ния, архивации, поиска) для них также необходимо привести описание и привести при-
мер их работы; 
4)  Тестовые данные: максимально полный набор тестовых данных демонстрирующий ра-
боту  разработанного  ПО  на  различных  данных  (в  том  числе  некорректных).  Данный 
раздел должен присутствовать обязательно
5)  Листинг программы, раздел содержит исходные коды разработанного ПО. При оформ-
лении можно использовать 8 кегль шрифта. 
4.  Для отличной оценки за курсовой проект должны быть выполнены следующие условия
1)  Разработанный  программный  комплекс  должен  быть  сформирован  в  дистрибутив,  со-
держащий  исходные  коды  ПО,  систему  сборки  ПО  (набор  Makefile-файлов)  и  необхо-
димую документацию; 
2)  Для  хранения  наборов  данных  заранее  неизвестного  размера  необходимо  использо-
вать списки. 
 

ЗАДАНИЯ НА КУРСОВУЮ РАБОТУ 
 
РАЗДЕЛ 1. РАЗРАБОТКА БИБЛИОТЕКИ СОРТИРОВОК. 
Необходимо реализовать в подпрограммах предусмотренные вариантом алгоритмы сортировки. 
Подпрограммы  выносятся  в  отдельную  библиотеку,  которая  компилируется  как  динамическая  биб-
лиотека.  Также  необходимо  разработать  демонстрационную  программу,  использующую  созданную 
библиотеку.  Алгоритмы  сортировок  выбираются  в  соответствии  с  вариантом  задания  на  курсовой 
проект по таблице 1. 
 
Таблица
Вариант 
Алгоритмы сортировок 

Сортировка методом пузырька, быстрая сортировка 

Сортировка вставками, пирамидальная сортировка. 

Сортировка Шелла, блочная сортировка. 
 
Для создания динамических библиотек использовать: http://firststeps.ru/linux/general1.html. 
 
Примечание: задания данного раздела имеют сниженную сложность, оценка не выше 3 (удовле-
творительно). 

РАЗДЕЛ 2. РАЗРАБОТКА УТИЛИТЫ КОМАНДНОЙ СТРОКИ 
Разработать программную  утилиту командной строки в соответствии с вариантом задания. Все 
входные данные передаются через аргументы командной строки (с использованием аргументов функ-
ции main). Использование системного вызова system запрещено, допустимо использовать только сис-
темные вызовы ОС GNU\Linux. 
 

Вариант 
Задание 
Разработать  интерпретатор  скриптов  (ИС)  -  script_interp.  Команда  script_interp 
принимает  в  качестве  входных  данных  имя файла,  содержащего  скрипт. Скрипт  состоит 

из  операторов  ввода/вывода  (read/print)  и  циклических  конструкций  (while  do).  Данные 
примитивы  разрабатываются  и  реализуются  в  ИС  самостоятельно.  ИС  последовательно 
проходит по скрипту и выполняет его программу. 
Разработать калькулятор для командной строки — expr_stud, выполняющий вычис-
ление арифметического выражения, переданного в качестве входных данных. 
Арифметическое  выражение  записывается  следующим  образом:  (ApB),  где  A  –  ле-
вый  операнд,  В-  правый  операнд,  p  –  арифметическая  операция.  A  и  B  –  вещественные 

числа, p = + | – | * | /. Пример: ( ( ( (1.1-2) +3) * (2.5*2) ) + 10) 
Если  выражение  содержит  ошибки  –  необходимо  вывести  сообщение  об  ошибке. 
Иначе – результат вычисления выражения. 
Пример: expr_stud "((3*2)-(1+3))" должна вывести 2. 
Разработать  ПО  для  форматирования  (расстановки  табуляций)  программы  на  языке 
Си: format_stud. Команда format_stud принимает в качестве входных данных имя файла, 

содержащего программу на языке Си. Текст программы форматируется в соответствии с 
одним из существующих стилей кодирования (например Linux kernel coding style). 
Разработать  ПО  анализа  программ  на  языке  Си:  analyse_stud.  Входными  данными 
команды  analyse_stud  является  имя  файла,  содержащего  программу  на  языке  Си.  Во 

входной программе выполняется поиск всех функций, описанных в программе, и для каж-
дой из них выполняется подсчет количества ее вызовов. 
Реализовать систему проверки целостности файлов. В данную систему входит 2 ко-
манды: gen_intergity и check_integrity. Задача данного программного комплекса в созда-
нии  базы  данных  целостности  (выполняется  с  помощью  gen_integrity)  и  последующей 
проверке целостности директории (с помощью check_integrity). 
gen_integrity  –  создает  БД  целостности.  В  качестве  параметров  ей  передаются:  имя 
сканируемой директории и имя файла, где сохраняется БД целостности. 

check_integrity – проверяет указанную директорию на целостность в соответствии с 
указанной БД целостности. При обнаружении нарушений целостности – сообщает пользо-
вателю. 
Для генерации хеш кодов MD5 рекомендуется использовать исходные коды, распо-
ложенные  на  сайте  Кафедры  ВС  (http://csc.sibsutis.ru/files/File/pavu/MD5.tar.bz2)  или  реа-
лизацию  в  библиотеке  OpenSSL  (описание  ее  использования  расположено  по  адресу: 
http://www.firststeps.ru/linux/r.php?18. 
 

РАЗДЕЛ 3. ПОЛНОТЕКСТОВЫЙ ПОИСК ПО ШАБЛОНУ 
Полнотекстовый  поиск  —  поиск  документа  в  базе  данных  текстов  на  основании  содержимого 
этих  документов,  а  также  совокупность  методов  оптимизации  этого  процесса.  Необходимо  разрабо-
тать ПО выполняющее полнотекстовый поиск строк по шаблону в файлах, находящихся в указанной 
директории. Если некоторая строка S с номером N в файле FILE подходит по шаблону поиска, то на 
стандартный вывод (дисплей) выводится сообщение в следующем формате: 
FILE (N): S 
Имя  директории    и  шаблон  передаются  в  качестве  аргументов  командной  строки.  В  шаблоне 
обязательно предусмотреть следующие элементы: 
1) точное соответствие (например "abcd" => поиск в файле подстроки "abcd"); 
2) любой символ (один) - в команде grep это "."; 
3) любая последовательность символов - в команде grep ".*"; 
4) экранирование служебных символов (в выше приведенных примерах – "*","."). 
 
Для  поиска  точных  соответствий  необходимо  использовать  алгоритм  соответствующий 
варианту
 
Вариант 
Задание 

Алгоритм Рабина-Карпа поиска строк в подстроке 
10 
Алгоритм Бойера-Мура поиска строк в подстроке 
11 
Алгоритм Кнута-Морриса-Пратта 
 
Пример. Пусть задан следующий шаблон: 
"H.llo.*ld" 
И дан файл some_text_file.txt (единственный в директории dir) содержащий следующие 4 строки: 
Hello world 
Hello is a word 
I say Hello to this world! 
Merry christmas 
Hallo world 
Шаблону удовлетворяют строки 1,3 и 5. Вызов команды поиска должен выглядит следующим 
образом: 
command "H.llo.*ld" dir 
Результат работы должен быть следующим: 
some_text_file.txt (1): Hello world 
some_text_file.txt (3): I say Hello to this world! 
some_text_file.txt (5): Hallo world 

РАЗДЕЛ 4. ПОМЕХОУСТОЙЧИВОЕ КОДИРОВАНИЕ 
Необходимо реализовать систему помехоустойчивой передачи данных через ненадежный канал 
связи. Канал связи имитируется. Алгоритм кодирования/декодирования определяется вариантом. 
Процесс передачи данных выглядит следующим образом: 
1) Команда  code_message  кодирует  сообщение  из  файла,  имя  которого  передается  ей  как  аргу-
мент командной строки. Закодированное сообщение записывается в выходной файл с именем channel
2) Команда  noise_emulation  вносит  помеху  в  указанный  бит  сообщения  в  channel  (также  аргу-
менты ком. Строки). Указанный бит инвертируется (заменяется на противоположный). Даная команда 
может быть вызвана несколько раз для имитации нескольких ошибок.  
3) Команда decode_message считывает сообщение из файла channel и декодирует его. 
 
 
Вариант 
Задание 
12 
Код Хэмминга с устранением одного замещения. 
13 
Код Рида-Соломона 
14 
Коды CRC (cyclic redundancy check — циклическая избыточная проверка) 
 

РАЗДЕЛ 5. СЖАТИЕ ДАННЫХ 
Алгоритм сжатия определяется вариантом. Команда compress_stud принимают в качестве аргу-
ментов командной строки: 
1) 
Режим работы: сжатие (c - compress), распаковка (d - decompress) 
2) 
Имя  входного  файла  (  в  режиме  сжатия  это  исходный  файл,  в  режиме  распаковки  — 
сжатый) 
Имя выходного файла (в режиме сжатия это сжатый файл, в режиме распаковки — исходный) 
 
Вариант 
Задание 
15 
Алгоритм Шенона-Фано (Shannon-Fano) 
16 
Коды Хаффмана (Huffman) 
17 
Алгоритм Зива-Лемпела (Ziv-Lempel) LZ77 
18 
Алгоритм Зива-Лемпела (Ziv-Lempel) LZSS 
19 
Алгоритм Зива-Лемпела (Ziv-Lempel) LZ78 
 


Похожие:

Курсовая   работа   по   дисциплине   «Программирование   на   языке   высокого   уровня» iconРабочая программа по курсу “Программирование на языках высокого уровня” Факультет экономический
Целью данной учебной дисциплины является изучение основных принципов программирования, обучение основам языков высокого уровня Паскаль...
Курсовая   работа   по   дисциплине   «Программирование   на   языке   высокого   уровня» iconМетодические указания по выполнению курсовой работы по дисциплине «структуры и алгоритмы обработки данных»
Курсовая работа по дисциплине "Структуры и алгоритмы обработки данных" предполагает закрепление полученных теоретических знаний по...
Курсовая   работа   по   дисциплине   «Программирование   на   языке   высокого   уровня» iconУчебно-методический комплекс по дисциплине «Программирование на языках высокого уровня (яву)»
Учебно-методический комплекс (умк) составлен на основании гос впо и учебного плана Улгту специальности (направления) 23010165 «Вычислительные...
Курсовая   работа   по   дисциплине   «Программирование   на   языке   высокого   уровня» iconКурсовая работа по дисциплине «Программирование для Интернета»
В данной работе разрабатывается пример клиент-серверного приложения на основе технологии сокетов. Приложение хранит данные о клиентах...
Курсовая   работа   по   дисциплине   «Программирование   на   языке   высокого   уровня» iconКурсовая   работа   по   учебной   дисциплине   является   одним   из 
Курсовая работа выполняется студентом на третьем курсе по любой  из изучаемых дисциплин
Курсовая   работа   по   дисциплине   «Программирование   на   языке   высокого   уровня» iconКурсовая работа по дисциплине «Компьютерная графика»
Данная курсовая работа посвящена планировке и разработке бдау (Базе Данных Арбитражного Управляющего, работающей «в веб браузере»)...
Курсовая   работа   по   дисциплине   «Программирование   на   языке   высокого   уровня» iconКурсовая работа по дисциплине

Курсовая   работа   по   дисциплине   «Программирование   на   языке   высокого   уровня» icon1 Работа в среде Visual Studio. Net 200 Часть II. Программирование на vb – первый уровень 200
Работа с мышью и клавиатурой 201 Часть III. Программирование на vb второй уровень 201
Курсовая   работа   по   дисциплине   «Программирование   на   языке   высокого   уровня» iconКурсовая работа по дисциплине: «Информатика»

Курсовая   работа   по   дисциплине   «Программирование   на   языке   высокого   уровня» iconКурсовая работа по дисциплине: «Информатика»

Разместите кнопку на своём сайте:
TopReferat


База данных защищена авторским правом ©topreferat.znate.ru 2012
обратиться к администрации
ТопРеферат
Главная страница