Выбор темы КУРСОВОЙ РАБОТЫ




МЕТОДИЧЕСКОЕ пособие

Требования к выполнению курсовых работ

По дисциплине «Программирование»

Составитель: Т.В. Лаврухина

для студентов направления

230100 – Информатика и вычислительная техника

(Вычислительные машины, комплексы, системы и сети)

 

Липецк 2011

УДК 381.3

ББК 74.480.276.4р30

Л 136

 

Т. В. Лаврухина. Методическое пособие. Требования к выполнению курсовых работ по дисциплине «Программирование» для студентов 2 курса направления 230100 – Информатика и вычислительная техника / составитель Т. В. Лаврухина: ЛФ МИКТ, 2011. – 40 с.

 

 

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

Методическое пособие предназначено для студентов направления 230100 «Информатика и вычислительная техника».

 

 

Рецензент: доцент, кандидат технических наук Ю.А. Кондрашин (ФГБОУ ВПО «Липецкий государственный педагогический университет»)

 

 

© Т. В. Лаврухина

© Издательство ЛФ МИКТ, 2011

введение

 

Курсовая работа предусмотрена рабочим учебным планом для студентов направления 230100 – Информатика и вычислительная техника, выполняется в ходе изучения дисциплины “Программирование ”. Курсовая работа является самостоятельной работой студента, позволяет оценить качество знаний и отражает приобретенные студентом практические навыки, а также способствует:

• закреплению, углублению и обобщению знаний, полученных студентами в процессе изучения лекционных курсов по дисциплине «Программирование»;

• развитию умений и навыков, полученных при выполнении лабораторных работ;

• применению этих знаний, умений и навыков к решению конкретных задач;

• развитию навыков работы со специальной литературой и разработки программного обеспечения.

Целью курсовой работы (КР) является углубление знаний и расширение навыков по разработке алгоритмов и их реализации на персональном компьютере.

Курсовая работа позволяет расширить объем знаний студентов в области программирования и создать реальную основу использования своих знаний для решения на ЭВМ задач по другим дисциплинам и в своей дальнейшей практической деятельности.

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

 

Выбор темы КУРСОВОЙ РАБОТЫ

 

Тема назначается руководителем курсовой работы и утверждается на заседании кафедры.

Перед студентом ставится задача разработать программу на языке С++ с целью решения конкретной задачи. Результатом решения является:

а) пояснительная записка, составленная с учетом требования стандартов ЕСПД;

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

Разработанный алгоритм должен быть оформлен в виде блок-схемы, отвечающей принципам структурного программирования. Структурное программирование - методология разработки программного обеспечения, предложенная в 70-х года XX века Дейкстрой и разработанная и дополненная Виртом. В соответствии с данной методологией любая программа представляет собой структуру, построенную из трёх типов базовых конструкций:

последовательное исполнение — однократное выполнение операций в том порядке, в котором они записаны в тексте программы;

ветвление — однократное выполнение одной из двух или более операций, в зависимости от выполнения некоторого заданного условия;

цикл — многократное исполнение одной и той же операции до тех пор, пока выполняется некоторое заданное условие (условие продолжения цикла.

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

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

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

При выполнении курсовой работы студент должен:

· разработать структуры данных и алгоритмы;

· реализовать функции и основную программу;

· разработать тесты и выполнить тестирование программы;

· оформить пояснительную записку и приложения.

Задание курсовой работы состоит из трех частей, приведенных ниже.

Часть 1. Массивы

1. Дана действительная квадратная матрица порядка 2n. Получить новую матрицу, переставляя ее блоки размером n x n: а) крест-накрест; б) по часовой стрелке (левый верхний блок становится правым верхним, правый верхний – правым нижним и т.д.).

2. Составить программу транспонирования целочисленной матрицы.

3. Составить программу, которая заполняет квадратную матрицу порядка n натуральными числами 1, 2, 3, … n2, записывая их в нее «по спирали».

Например, для n =5 получаем следующую матрицу:

1 2 3 4 5

16 17 18 19 6

15 24 25 20 7

14 23 22 21 8

13 12 11 10 9

4. Дана действительная квадратная матрица порядка N (N – нечетное), все элементы которой различны. Найти наибольший элемент среди стоящих на главной и побочной диагоналях и поменять его местами с элементом, стоящим на пересечении этих диагоналей.

5. Разработать проект, который позволяет сортировать заданный линейный массив целых чисел различными методами, например, методом линейной сортировки, пузырька, Шелла и др. Предусмотреть использование не менее трех методов.

6. Элемент матрицы называется седловой точкой, если он является наименьшим в своей строке и одновременно наибольшим в своем столбце или, наоборот, является наибольшим в своей строке и наименьшим в своем столбце. Для заданной матрицы размером (N x M) определить индексы всех ее седловых точек.

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

8. Дана вещественная матрица размером (N x M). Переставляя ее строки и столбцы, добиться того, чтобы наибольший элемент (или один из них) оказался в левом верхнем углу.

9. В таблице размером (N x N), где N 20, клетки заполнены цифрами случайным образом. Найти маршрут из клетки (1,1) в клетку (N,N), удовлетворяющий следующим условиям: 1) любые две последовательные клетки в маршруте имеют общую сторону; 2) количество клеток маршрута минимально; 3) сумма цифр в клетках маршрута максимальна.

10. Разработать проект, который обеспечивает выполнение операций сложения, вычитания и умножения над матрицами целых чисел. Выбор выполняемой операции осуществляет пользователь.

11. Разработать проект, который позволяет сортировать строковый массив (например, содержащий компьютерные термины) по алфавиту. Обеспечить сортировку внутри группы строк, начинающихся на одну и ту же букву (например, строка, содержащая слово ПРИНТЕР должна предшествовать строке, содержащей слово ПРОГРАММА).

12. Из массива удалить самую длинную цепочку четных элементов. Пример, из массива A [8]: 4 1 4 2 1 2 4 6 должен получиться массив A [5]: 4 1 4 2 1 (самая длинная цепочка четных чисел включает элементы с 6 по 8: 2 4 6).

13. Из массива A удалить те элементы, которые встречаются и в массиве A и в массиве B по крайней мере по 2 раза. Пример, массив A [8]: 3 3 4 5 2 3 5 9, массив B [7]: 1 2 3 4 5 2 5. По 2 раза в обоих массивах встречается только элемент, равный 5. Массив A после удаления примет вид: A [6]: 3 3 4 2 3 9.

14. Из массива A удалить те цепочки четных элементов, в которых есть хотя бы один элемент из массива B. Пример, массив A [9]: 3 2 4 5 2 3 2 6 5, массив B [6]: 1 3 4 7 8 9. Массив A после удаления примет вид: A [7]: 3 5 2 3 2 6 5.

 

Часть 2. Строковые данные и текстовые файлы

 

1. Разработать программу, которая осуществляет в текстовом файле поиск заданных слов. Слова последовательно вводятся с клавиатуры. Для каждого слова должно определяться количество вхождений и номера строк текста. Если указанное слово в файле отсутствует, то программа должна выводить соответствующее сообщение.

2. Даны два текстовых файла f1 и f2. Файл f1 содержит произвольный текст. Слова в тексте разделены пробелами и знаками препинания. Файл f2 содержит не более 30 слов, которые разделены запятыми. Эти слова образуют пары: каждое второе является синонимом первого. Заменить в файле те слова, которые можно, их синонимами. Результат поместить в новый файл.

3. Дан текстовый файл. Напечатать в алфавитном порядке все слова из заданного файла, имеющие длину n.

4. Дан файл, содержащий текст на русском языке. Подсчитать количество слов, начинающихся и заканчивающихся на одну и ту же букву и выдать эти буквы с указанием соответствующего количества слов.

5. Файл содержит текст на русском языке. Составить в алфавитном порядке список всех слов, встречающихся в тексте, и количество этих слов.

6. Дан файл, содержащий текст на русском языке. Найти слова, встречающиеся в каждом предложении, или сообщить, что таких слов нет.

7. Дан файл, содержащий текст на русском языке. В предложениях некоторые из слов записаны подряд. Получить в новом файле отредактированный текст, в котором удалены повторные вхождения слов в предложение.

8. Написать программу, которая позволяет зашифровывать и расшифровывать с помощью «шифра Цезаря» сообщение, написанное на русском языке. Этот шифр реализует следующее преобразование текста: каждая буква исходного текста заменяется третьей после нее буквой в алфавите, который считается написанным по кругу.

9. Написать программу, которая позволяет зашифровывать и расшифровывать сообщение с помощью «шифра перестановки». Этот шифр меняет местами две соседние буквы.

10. Создать проект «Русско-английский и англо-русский словарь», который обеспечивает перевод слов, хранящихся в файле данных.

11. Дан текстовый файл. Переписать его текст в новый файл таким образом, чтобы каждое предложение начиналось с новой строки и между словами осталось только по одному пробелу.

12. Текст программы на С++ хранится в файле на диске. Составить программу обработки текста программы: 1) подсчитать, какие ключевые слова С++ и в каком количестве использованы в обрабатываемом тексте; 2) составить перечень имен простых переменных, используемых в левой части оператора присваивания.

13. Текст программы на С++ хранится в файле на диске. Составить программу обработки текста программы: 1) определить максимальную степень вложенности циклов в программе; 2) определить общее количество строк и количество символов, отличных от пробела; 3) удалить из текста программы все комментарии.

14. Текст программы на С++ хранится в файле на диске. Составить программу обработки текста программы: 1) первые буквы служебных слов сделать заглавными; 2) текст комментария заменить на номер комментария по порядку.

15. Создать программу, анализирующую правильность записи арифметического выражения с точки зрения синтаксиса С++. Арифметическое выражение задается строковой переменной и вводится с клавиатуры компьютера.

16. Текст программы на С++ хранится в файле на диске. Распечатать на экране текст программы таким образом, чтобы в каждой строке размещался только один оператор. Организовать смещение операторов относительно операторных скобок, как это принято в С++.

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

18. Разработать программу “Выравнивание”. Исходная информация: текст, записанный в текстовом файле. Программа выводит этот текст с выравниванием по краям. Текст выводится без переносов слов. Параметры абзаца задаются в диалоговом режиме.

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

20. Составить программу, определяющую наличие неописанных идентификаторов в тексте программы на С++. Текст программы хранится в файле на диске.



Поделиться:




Поиск по сайту

©2015-2024 poisk-ru.ru
Все права принадлежать их авторам. Данный сайт не претендует на авторства, а предоставляет бесплатное использование.
Дата создания страницы: 2016-08-20 Нарушение авторских прав и Нарушение персональных данных


Поиск по сайту: