Реферат: Методические указания к курсовой работе для специальностей 220100 Вычислительные машины, комплексы

Министерство образования Российской Федерации Владивостокский государственный университет экономики и сервиса
__________________________________________________



В.М. Гриняк


Алгоритмизация и программирование. Структуры и алгоритмы компьютерной обработки данных Методические указания к курсовой работе для специальностей 220100 "Вычислительные машины, комплексы, системы и сети", 071900 "Информационные системы и технологии", 351500 "Математическое обеспечение и администрирование информационных систем"





_________________________________________________

ВГУЭС Владивосток, 2004

ББК 32.88


Гриняк В.М.
^ Алгоритмизация и программирование. Структуры и алгоритмы компьютерной обработки данных
Методические указания к курсовой работе. – Владивосток: Изд-во ВГУЭС, 2004.


Методические указания к курсовой работе по дисциплине "Алгоритмизация и программирование. Структуры и алгоритмы компьютерной обработки данных" составлены в соответствии с требованиями Государственного образовательного стандарта высшего профессионального образования Российской Федерации.

Предназначены для студентов специальностей 220100 "Вычислительные машины, комплексы, системы и сети", 071900 "Информационные системы и технологии" и 351500 "Математическое обеспечение и администрирование информационных систем".


Составитель: Гриняк В.М., ст. преподаватель кафедры информационных систем и компьютерных технологий


Утверждена на заседании кафедры ИСКТ 01.02.2004 г., протокол № 5.


Рекомендована к изданию методическим советом института информационных технологий и технических систем ВГУЭС _____ 2004 г., протокол №__


ББК 32.88

© Издательство Владивостокского

государственного университета

экономики и сервиса, 2004
ВВЕДЕНИЕ

Целью курсовой работы является закрепление основ и углубление знаний приемов программирования на алгорит­мических языках высокого уровня, получение практических на­выков в создании программного продукта, отработка приёмов разработки основных алгоритмов программирования.


^ ТЕМАТИКА КУРСОВЫХ РАБОТ

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


^ Перечень тем курсовых работ:


1. Разработать приложение, представляющее собой простой графический редактор, реализующий следующие пользовательские функции:

загрузка изображения из файла или создание «нового» графического образа;

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

«отмена» последнего изменения изображения;

сохранение изображения в файл стандартного графического формата (например, *.bmp).


2. Разработать приложение, предназначенное для демонстрации работы алгоритма пузырьковой сортировки, реализующее следующие функции:

загрузка из файла исходного массива чисел;

пошаговое выполнение алгоритма (пользователь нажимает клавишу «далее»);

на каждом шаге алгоритма - отображение текста (или блок-схемы) алгоритма с выделением выполняемого в настоящий момент шага;

на каждом шаге алгоритма - отображение состояния сортируемого массива;

при завершении сортировки выдачу сообщения пользователю, что сортировка завершена.


3. Разработать приложение, предназначенное для демонстрации работы алгоритма сортировки вставками, реализующее следующие функции:

загрузка из файла исходного массива чисел;

пошаговое выполнение алгоритма (пользователь нажимает клавишу «далее»);

на каждом шаге алгоритма - отображение текста (или блок-схемы) алгоритма с выделением выполняемого в настоящий момент шага;

на каждом шаге алгоритма - отображение состояния сортируемого массива;

при завершении сортировки выдачу сообщения пользователю, что сортировка завершена.


4. Разработать приложение, предназначенное для демонстрации работы алгоритма сортировки Флойда, реализующее следующие функции:

загрузка из файла исходного массива чисел;

пошаговое выполнение алгоритма (пользователь нажимает клавишу «далее»);

на каждом шаге алгоритма - отображение текста (или блок-схемы) алгоритма с выделением выполняемого в настоящий момент шага;

на каждом шаге алгоритма - отображение состояния сортируемого массива;

при завершении сортировки выдачу сообщения пользователю, что сортировка завершена.


5. Разработать приложение «робот в лабиринте», реализующее следующие функции:

загрузку из файла конфигурации лабиринта, отражение лабиринта на экране;

установку первоначального положения робота в лабиринте;

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


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


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


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


9. Разработать приложение типа «звёздное небо». Программа должна отображать «мерцающие» звёзды по типу «одна звезда появилась – одна звезда погасла», так, что общее количество звёзд остаётся постоянным. Цвет вновь появляющихся звёзд должен выбираться случайным образом. Должна быть предусмотрена возможность регулировки количества «звёзд» на экране и частоты их «мерцания».


10. Разработать приложение для демонстрации видов графиков основных алгебраических функций: y = ax^2 + bx + c, y = ax^3 + bx^2 + cx +d, y = a*sin x + b, y = a*cos x + b, y= a* tg x + b, y = a*log nx + b, y = ax+ b. Графики должны «красиво» отображаться на осях координат с возможностью регулирования пользователем коэффициентов a, b, c, d, n и масштаба.


11. Разработать приложение типа «наполни из бутылки три стакана». Пользователь должен иметь возможность «включать» и «отключать» наполнение каждого из трех стаканов и видеть, сколько воды в каждом стакане и сколько осталось в бутылке. После того, как вода в бутылке закончилась, пользователю выдается сообщение, удалось или не удалось ему поделить воду «поровну».


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


13. Дано множество значений скалярной величины x (см. список). Проанализировать множество значений и выделить из него 4 кластера. Результатом работы являются найденные значения центров кластеров и принадлежащие им элементы данных.

-2 3 1 4 -2

-3 1 0 -2 0

18 15 11 14 19

14 16 19 12 15

31 32 32 26 33

31 33 26 27 31

51 51 46 52 51

48 51 46 46 50


14. Дано множество значений векторной величины x – точек на плоскости (см. список). Проанализировать множество значений и выделить из него 3 кластера. Результатом работы являются найденные значения центров кластеров и принадлежащие им элементы данных.

X Y

-1 4

-2 0

2 -4

4 -2

4 0

-2 4

0 4

-1 0

2 3

-2 -4

-3 -1

0 -4

-4 -4

3 3

3 2

14 7

15 11

12 14

13 14

11 12

13 14

13 8

19 10

12 7

17 12

17 14

13 10

14 14

19 11

18 9

29 10

30 13

27 12

33 9

30 6

27 10

33 13

26 12

34 13

27 6

28 10

27 6

32 7

32 7

27 10


15. Дано множество значений векторной величины x – точек в пространстве (см. список). Проанализировать множество значений и выделить из него 2 кластера. Результатом работы являются найденные значения центров кластеров и принадлежащие им элементы данных.

X Y Z

1 -1 0

-2 -4 4

0 4 4

1 -2 4

-1 -1 -3

4 3 0

4 -4 0

-3 -2 3

-3 -2 2

-3 -2 1

4 3 -4

1 -2 -3

3 -3 -3

3 -2 1

2 -1 -4

4 2 3

2 4 1

-3 -4 -4

2 -4 -4

0 0 0

18 9 11

17 11 10

11 8 11

15 13 11

19 6 8

19 8 13

11 12 10

11 7 10

15 9 8

16 12 12

16 11 11

11 14 10

18 13 6

16 6 7

16 8 14

14 7 7

16 9 14

18 12 7

12 14 9

12 8 12


16. Разработать 2 функции, переводящие последовательность символов в целое и вещественное число, либо возвращающие 0 в случае невозможности процедуры преобразования. При разработке алгоритма использовать встроенные функции преобразования типа atoi(), atof(), StrToInt(), StrToFloat() и т.п. нельзя. Создать программу-оболочку, демонстрирующую работу этих функций.


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


18. Разработать функцию – генератор простых чисел, воспользовавшись третьей формулой Вилланса. Создать программу-оболочку, красиво демонстрирующую работу этой функции.


19. Разработать функцию – генератор простых чисел, воспользовавшись четвертой формулой Вилланса. Создать программу-оболочку, красиво демонстрирующую работу этой функции.


20. Разработать функцию – генератор простых чисел, воспользовавшись формулой Вормелла. Создать программу-оболочку, красиво демонстрирующую работу этой функции.


^ ОСНОВНЫЕ ТРЕБОВАНИЯ К РАБОТАМ


Подготовленная курсовая работа должна содержать:

набор программ;

пояснительную записку.

Пояснительная записка к курсовой работе должна быть набрана в редакторе типа MS WORD 12 шрифтом через 1.5 интервала. Допускается предоставление пояснительной записки как в напечатанном, так и в электронном варианте. Название курсовой работы должно кратко отражать её суть (например, «Разработка программного модуля для работы со структурами данных типа …» или «Сравнение эффективности различных алгоритмов сортировки»).


Пояснительная записка должна включать: введение (0.5-1 стр.), постановку задачи, описание решения задачи и заключение (0.5-1 стр.).

Во введении основное внимание должно быть уделено неформальному описанию проблемной области в контексте темы курсовой работы.

Постановка задачи должна включать формальную постановку задачи.

Описание решения задачи должно содержать:

сведения о структуре используемого информационного и программного обеспечения;

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

Далее приводятся спецификации (основные свойства и правила использования) разработанного программного продукта. Указанные спецификации и описания программ должны, как правило, выглядеть следующим образом:


-----------------------------

Программа myprogram состоит из следующих модулей: myunit1, myunit2, myunit3 ….

Модуль myunit1 содержит описание функции void main();

Модуль myunit2 содержит описание функций int sorted(char * a, int n), int search(char* a, int n, char x);

Модуль myunit3 содержит описание функций ….

Функция int sorted(char * a, int n) производит сортировку массива методом пузырьковой сортировки и возвращает число сделанных при этом сравнений, параметр char * a – указатель на сортируемый массив целых чисел, параметр int n – длина сортируемого массива.

Функция int search(char* a, int n, char x)производит ….

----------------------------


Необходимо составить также краткое руководство пользователя.

В заключении к работе должны быть сформулированы основные результаты и выводы.

В конце отчета приводится список использованной литературы. Пример оформления ссылок см. в файле со стандартами.


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

Все тексты программ должны быть снабжены подробными комментариями.


СПИСОК ЛИТЕРАТУРЫ


Лекции по курсу «Алгоритмизация и программирование. Структуры и алгоритмы компьютерной обработки данных».

Б.Н. Иванов Дискретная математика. Алгоритмы и программы: Учеб. пособие. – Владивосток: Изд-во ДВГТУ, 2000.

Генри С. Уоррен Алгоритмические трюки для программистов. – М.: Изд. дом «Вильямс», 2007.
еще рефераты
Еще работы по разное