Организация проектирования и защита проекта

Курсовое проектирование по курсу "Системное про­граммирование" выполняется в соответствии с учебным планом в 4-м семестре и состоит из этапов, которые сведены в табл. 6.1.

Таблица 6.1

№ этапа Содержание выполняемых работ Период (в нед.)
Выдача заданий 2-я нед.
Ознакомление с литературными источниками, анализ и выбор метода решения поставленной задачи   3-4 нед.
Разработка алгоритмов решения, выбор системных средств решения задач курсового проектирования   5-6 нед.
Проектирование приложения 7-11 нед.
Отладка и тестирование приложения 12-14 нед.
Оформление пояснительной записки 15 нед.
Защита курсового проекта 16-17 нед.

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

Защита курсового проекта осуществляется на кафедре в присутствии комиссии из числа преподавателей и сотрудников кафедры. По материалам курсового проекта необходимо подготовить доклад на 8-10 мин., в котором необходимо отразить тему и актуальность решаемой задачи, обосновать выбор технического решения с учетом экономических требований, провести краткий сравнительный анализ других возможных методов решения задачи, основанных на современных достижениях в данной области программного обеспечения. Необходимо также подробнее остановиться на ключевых вопросах решаемой задачи, подчеркнуть эффективные технические решения. После доклада необходимо ответить на ряд вопросов членов комиссии как по теме курсового проекта, так и на более общие вопросы, касающиеся самостоятельности выполнения курсового проекта и эрудированности студентов в области использования программного обеспечения.

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

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

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

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

1. Бек Л. Введение в системное программирование. -М.: Мир,1968.-440 с.

2. Зелковиц И., Шоу А., Геннон Дж. Принципы разработки программного обеспечения. - М.: Мир, 1962. - 368 с.

3. Д.Ван Тассол. Стиль, разработка, эффективность, отладка и испытание программ. - М.: Мир, 1985. - 332 с.

4. М. Эйбраш. Оптимизация кода исходных текстов программ для микропроцессоров семейства 80х86 //Журнал д-ра Добба. -1991. - № 2. - С.42-49.

5. Синев Л. Как создать оконный интерфейс //Компьютер Пресс. - 1991. - № I. - С.16-33.

6. Майерс Г. Искусство тестирования программ. - М.: Финансы и статистика, 1982. - 176 с.

7. Абель П. Язык ассемблера для IВМ РС и программирования. -М.: Высш.юк.,1992. - 447 с.

8. Страуструп Б. Язык программирования С++: В 2-х кн. -К.: Диасофт, 1993.

9.. Буч Г. Объективно-ориентированное проектирование с примерами применения. - К.: Диалектика., 1992. - 528 с.

10. Чижов А.А. Системные программные средства ПЭВМ. -М.: Финансы и статистика, 1990. - 360 с.

11. Боэм Б.У. Инженерное проектирование программного обеспе­чения. - М.: Радио и связь, 1905. - 512 с..

12. Гантер Р. Методы управления проектированием программного обеспечения. - М.: Мир, 1981. - 392 с.

13. Коутс Р., Влейминк И. Интерфейс "Человек-компьютер". -М.: Мир, 1990. - 502,с.

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

15. ДСТУ 3008-95.

16. Петзольд Ч. Программирование под Windows 95. В двух книгах: BHV - Санкт - Петербург, 1997, silt.

17. Мешков А., Тихомиров У. Visual C ++ MFC. Программирование под Windows NT and Windows 95: В двух книгах. - : BHV - Санкт - Петербург, 1997., silt.

18. Tompson Н. Secrets of programming the three-dimensional diagrams for Windows 95., BHV - St.-Petersburg, 1997., silt.1997. - 352p.

19. Black, Ulysses. TCP/IP & Related Protocols, Second Edition. McGraw-Hill, 1994.

СОДЕРЖАНИЕ

Общие положения

1. Цели и задачи курсового проектирования . . . . . . . . . . . . . . . . . . . . . . . . .

2. Тематика курсовых проектов . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

3. Структура и содержание курсового проекта . . . . . . . . . . . . . . . . . . . . . .

4. Методические указания по выполнению курсового проекта . . . . . . . . .

5. Требования к оформлению курсового проекта. . . . . . . . . . . . . . . . . . . . .

6. Организация проектирования и защита проекта . . . . . . . . . . . . . . . . . . .

Список литературы . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

Приложение 1

Задания к курсовому проектированию по курсу "Системное программирование для WINDOWS" на 2006-2007 учебный год

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

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

· чтение/запись/воспроизведение файлов битовых образов *.bmp;

· масштабирование выбранного изображения;

· инверсию цветов изображения;

· перевод изображения в монохромный вид и в вид "градации серого";

· поворот изображения на задаваемый угол.

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

· ввод элементарных векторных примитивов (линия, прямоугольник, эллипс, ломаная линия, текст) и т.п.

· сохранение/чтение векторного изображения в метафайлы (*.wmf).

· выбор цвета рисования;

· масштабирование изображения;

· поворот изображения на задаваемый угол.

3. Разработать приложение "Калькулятор" со следующими характеристиками:

· два возможных вида калькулятора – научный и обычный;

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

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

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

· формат файла для хранения табличных функций;

· окно работы с табличными функциями с возможностями чтения/записи файла, редактирования таблиц;

· возможность отображения графиков функций;

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

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

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

· реализовать возможность сохранения и чтения параметров диаграммы в файл;

· отображение диаграммы на экране;

· экспорт диаграммы в файл формата *.bmp.

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

· иконки;

· меню;

· текст;

· диалоговые окна.

Ресурсы должны импортироваться в Microsoft Visual C++.

7. Написать программу-проводник, которая позволяет выполнять следующие действия с файлами:

· просматривать содержимое дисков и каталогов;

· копировать файлы из одного каталога (диска) в другой;

· изменять имена фалов.

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

· просматривать содержимое дисков и каталогов;

· получать подробную информацию о файлах (размер, тип, дата последнего изменения);

· удалять файлы с диска.

9. Написать игру "Крестики-нолики" на безграничном поле. В игру могут играть два человека, которые поочередно ставят крестики и нолики. Выигрывает тот, кто выстроит подряд пять ноликов или пять крестиков. Поле игры содержит постоянное число клеток и изменяет масштаб отображения при изменении размеров окна. Игрок может выбирать цвет игровой метки.

10. Написать игру «Ханойские башни». Игра состоит из круглой подставки с тремя стержнями. На стержнях нанизаны диски различных диаметров. На каждом стержне диски сложены в стопку по возрастанию диаметра: никогда ни один диск не кладется на другой диск меньшего размера. Перекладывая диски по одному согласно вышепреведенному правилу, добиться того, чтобы все диски оказались на одном, указанном стержне. Программа должна обеспечивать возможность перекладывания дисков, контроль правильности ходов и счет времени выполнения.

11. Написать игру "Тетрис". Скорость падения фигур устанавливается при помощи таймера. При переходе с уровня на уровень скорость увеличивается. Программа должна вести учет набранных игроком очков.

12. Написать игру "Сима". На игровом поле появляется определенное число точек, расположенных случайным образом (>=6). Поочередно два играка соединяют прямыми линиями две еще не соединенные точки. Линии двух игроков отличаются. Проигрывает тот, кто первым построит треугольник из своих собственных линий.

13. Написать программу «Мозаика» На клеточном поле пользователь может заполнять пустоты выбранным в окне палитры цветом (16 доступных цветов). Пользователь может менять палитру цветов, при этом изменяются палитра уже созданного рисунка. Обеспечить возможность записи и чтения рисунка с диска.

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

15. Написать программу – лабиринт. В клиенской области приложения нарисован лабиринт. С помошью клавиш клавиатуры пользователь передвигает фишку через неограниченные лабиринтом области. Разработать формат файла для хранения новых уровней лабиринта.

16. Написать программу-игру «Змея». Змея двигается по полю, собирая объекты, увеличивающие количество очков. Со временем тело змеи удлиняется. Змея не должна пересикать свое тело и объекты типа «стена».

17. Написать MDI приложение, позволяющее просматривать текстовые файлы и файлы формата rtf. Приложение должно давать возможность одновременного просмотра нескольких файлов, а также возможность получения информации о файле.

18. Разработать программу «Часы». Пользователь может изменять размеры часов, а также их вид (обычный и цифровой), выбирать цвет фона и цвет элементов часов (цифр – для цифровых и стрелок – для обычных часов).

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

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

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

22. Создать адресную книгу. Программа должна позволять вводить Ф.И.О. абонента, домашний и рабочий адрес, телефоны, и дополнительную текстовую информацию. Информация запоминается на диске в виде внешнего файла. Программа позволяет просматривать элементы базы данных, а также осуществлять поиск по фамилии, телефону и адресу.

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

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

25. Разработать программу-игру типа "Арканоид". Игрок с помощью клавиатуры или мыши управляет площадкой, которая отбивает мяч. Мяч отражается от стенок поля и площадки игрока. Если игрок не отбивает мяч, он теряется. Игрок может менять скорость полета мяча.

26. Разработать программу “Японский кроссворд”. Игрок имеет возможность создавать новый кроссворд, после чего программа сохраняет его на диске. Игрок может загрузить игру, сохранить ее и прочитать в любое время.

27. Разработать программу «Органайзер». Пользователь программы имеет следующие возможности:

- вывод календаря на любой месяц;

- фиксация за определенной датой события (текстовых заметок);

- установка будильника на определенную дату и время с выдачей текстового сообщения о событии (массив событий).

- записную книжку для хранения телефонов.

28. Написать программу «сапер». На поле размером NxM компьютер случайным образом расставляет X мин. Пользователь поочередно задает номер ячейки а компьютер выдает ему количество мин, находящихся в соседних ячейках. Если и игрок попал в ячейку, где находится мина, то он проиграл и игра начинается сначала. Считается, что игрок выиграл, если он открыл все пустые ячейки.

29. Написать программу «морской бой» на поле 10х10. На поле можно разместить 4 однопалубных, 3 двухпалубных, 2 трехпалубных и 1 четырех палубный корабль. Программа случайным образом размещает корабли, после чего игрок совершает выстрелы в виде пары чисел (номер строки и номер столбца). Компьютер сообщает: убит корабль, ранен или мимо. После того, как все корабли уничтожены, компьютер выдает сообщение об окончании игры и сообщает число ходов.

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

31. Разработать демонстрационную программу клеточного автомата "жизнь". Экран разбивается на клеточное поле. Каждая клетка может быть в двух состояниях: пустая и содержащая "организм" (Х). Колония "организмов" развивается во времени следующим образом: если пустая клетка имеет по соседству 2 или 3 "организма", то в следующий момент времени в ней появляется новый "организм"; если занятая клетка имеет более 4 соседей, то в следующий момент времени она "умирает" (становиться пустой). Организовать начальное заполнение поля и просмотр развития колонии клеток во времени.

32. Написать игру "карточный пасьянс". В качестве колоды карт использовать системную cards.dll. В качестве пасьянса взять любой существующий.

33. Написать программу-игру в шашки. Реализовать графический интерфейс игры двух человек. Каждый игрок делает ход по очереди, при помощи мыши перемещая шашку. Если ход сделан неправильно, программа автоматически возвращает шашку на прежнее место.

34. Написать программу, которая выдает основные сведения о компьютере: тип процессора, количество ОЗУ, тип и объем винчестера, логических дисков винчестера, параметры видео-карты и режима монитора, количество цветов, версию установленной операционной системы, имя компьютера и IP-адрес, список установленных принтеров. В программе можно выбрать список необходимой информации и вывести его на экран или в текстовый файл.

35. Написать программу, позволяющую обмениваться текстовыми сообщениями. Программа запускается на одном компьютере несколько раз, но каждая имеет свое собственное "имя". Сообщение может быть послано одной конкретной программе из запущенных или всем (широковещательный режим). Первая из запущенных программ управляет всеми остальными. Предусмотреть синхронизацию программ.

ПРИЛОЖЕНИЕ 2

Титульный лист курсовой работы

Наши рекомендации