1 Курсовая работа по дисциплине «Операционные системы» (для студентов 4 курса) В ходе курсового проектирования каждый студент должен разработать программное обеспечение в соответствии со своим вариантом задания (последняя цифра номера зачетной книжки) и написать пояснительную записку, содержащую подробное описание разработанного ПО и процесса его создания. Требования к программному продукту: Язык программирования – С++ (С#) с использованием API функций Win 32 Среда разработки – Visual C++, C++ Builder, C# и др. Интерфейс – оконное приложение, содержащее стандартные элементы управления (меню, кнопки, панели и т.п.) Для всех приложений необходимо выполнить структурную обработку исключений (SEH). Содержание отчета В отчете студент должен в краткой и ясной форме грамотно и аргументировано изложить идеи и существо своей работы, привести результаты работы программы, сделать конкретные выводы. При написании отчета студент обязан делать ссылки на автора и источник, откуда он заимствует материал. Отчет должен содержать следующие структурные части: титульный лист; задание на разработку; содержание; условные обозначения, символы и сокращения; введение; основную часть; заключение; библиографический список; приложение (с программными кодами). Краткая характеристика структурных частей отчета Задание на разработку. На отдельном листе подробно формулируется задача, приводятся основные требования к разработке. Содержание. В содержании указываются наименования всех разделов, параграфов, пунктов и номера страниц, на которых размещается начало материала. Условные обозначения, символы и сокращения. Перечень выполняется на отдельном листе. Условные обозначения, символы и сокращения располагаются в алфавитном порядке столбиком: слева – условное обозначение, справа – его детальная расшифровка. В перечень включаются условные обозначения и символы, повторяющиеся в тексте более трех раз. Остальные расшифровываются в тексте при первом упоминании. Введение. Краткая оценка современного состояния решаемой проблемы. Общие сведения по данному вопросу (1 – 1,5 стр.). Основная часть содержит следующие главы: Анализ поставленной задачи и формирование требований. В этой главе следует определить: к какому виду системного программного обеспечения относится разрабатываемый программный продукт, 2 указать существующие известные аналоги (если есть), обращая особое внимание на подобные программы, входящие в состав ОС. Также рассмотреть коммерческие аналоги и свободнораспространяемое ПО. Сравнить эти программы по функциональности, определить достоинства и недостатки. сформулировать основные требования к создаваемой программе, в том числе следует предусмотреть требования к безопасности (например, возможность регистрации в системе). Примечания: 1.одним из основных требований к интерфейсу программы должна быть его интерактивность, т.е. недопустимо все сведения размещать на одной экранной форме; 2.рекомендуется перечень функциональных требований формировать с помощью создания Use Case (прецедента использования); 3.для формирования требований к информационному обеспечению рекомендуется использование ER-диаграмм. Метод решения. В этой главе рассматриваются возможные методы решения поставленной задачи, проводится сравнительный анализ этих методов и выбор наиболее подходящего. Затем детально описывается выбранный метод решения. В ходе решения следует разделить задачу на отдельные подзадачи (этапы) и описать каждую из них отдельно. Взаимодействие отдельных подзадач следует иллюстрировать блок-схемой или структурной схемой (или и тем и другим в зависимости от сложности и объема задания). Описание программы. В этой главе подробно описывается процесс реализации алгоритма на языке программирования. Программа должна иметь модульный принцип построения. В данной главе указывается назначение каждой подпрограммы (функции), особенности ее реализации, список используемых идентификаторов (основных) с краткими комментариями. Решение практически всех предложенных задач предполагает использование API-функций Windows. Для всех использованных APIфункций следует привести их полное описание: назначение, особенности применения в различных ситуациях (если таковые имеются); возвращаемый результат; параметры с указанием типа, назначения, возможных значений - для флагов и т.д. Необходимо привести описание всех основных используемых классов (рекомендуется использование для этой цели диаграмм классов) Рекомендуется выделить те фрагменты программы, которые наиболее удачны, по мнению автора, а также те, при работе над которыми автор столкнулся с наибольшими трудностями: в чем заключались трудности, как они были преодолены. Руководство пользователя. Эта глава должна содержать исчерпывающую информацию для того, чтобы пользователь смог инсталлировать и использовать данный программный продукт. Это, во-первых, аппаратно-системные требования к компьютеру, во-вторых, описание возможностей пакета, в-третьих, инструкция по его эксплуатации. Результаты разработки. Приводятся и анализируются результаты работы программы. Если результаты работы достаточно разнообразны в зависимости от исходных данных, то их удобно оформить в виде таблицы. Результаты должны быть подробно прокомментированы. Кроме того, на основании исследования этих результатов необходимо дать рекомендации по использованию предложенного программного продукта. Заключение. Краткие выводы о результатах выполненной работы, оформленные в виде нумерованных абзацев (достоинства и недостатки программного продукта). 3 Варианты заданий для курсового проектирования Разработать программу для поиска файлов по различным признакам (аналог поисковой системы, встроенной в Windows). Необходимо реализовать все возможности поиска, предусмотренные в стандартной поисковой системе. 2. Разработать программу DiskInfo, выдающую полную информацию о дисках, имеющихся на данном компьютере: наличие FDD, CD; объем HDD, логические диски: размер, объем занятого и свободного пространства на каждом из них, серийный номер, размер кластера, кол-во секторов, размер сектора. Предусмотреть возможность управления некоторыми из этих ресурсов (например, выдвигать и задвигать платформу для CD и т.п.). 3. Разработать программу SystemInfo, выдающую полную информацию о данном компьютере: частоту процессора, объем оперативной памяти, наличие портов ввода-вывода, дисководов, мыши, клавиатуры; системный каталог и каталог Windows. Предусмотреть возможность управления некоторыми из этих ресурсов (например, отключать и подключать мышь, переназначать программно кнопки мыши, управление дисководами и т.п.) 4. Разработать программу VideoManager, позволяющую получить информацию и управлять настройками видеосистемы данного компьютера (разрешение монитора, количество цветов и т.п.). 5. Разработать программу FileInfo, выдающую полную информацию о заданном файле: тип, папка, имя, размер, временные характеристики, атрибуты; для текстовых файлов статистические данные (кол-во слов, кол-во строк, кол-во абзацев, кол-во символов с пробелами, кол-во слов без пробелов). Предусмотреть возможность изменения атрибутов файлов, а также копирование, переименование и перемещение файла. 6. Разработать программу «Пользовательская оболочка», выполняющую основные действия с файлами и каталогами. Для выбора действий использовать служебные клавиши (F1, F2, и т.д.), командную строку или меню, панель инструментов. (Аналог Norton Commander). 7. Разработать программу Task Manager, т.е. приложение, выводящее информацию о запущенных в данный момент процессах. 8. Разработать программу, выдающую сведения о состоянии основной памяти: определять состояние адресного пространства: передана ли по этому адресу физическая память и доступен ли он для операций чтения или записи; сообщать о состоянии системной памяти и виртуального адресного пространства в том или ином процессе. 9. Разработать программу, демонстрирующую возможности создания и управление параметрами окна некоторого приложения, в том числе изменять форму и размеры окна, цвет и тип линий рамки и т.д. (должна быть изучена функция, рисующая окно). 10. Поиск файлов, дублирующих друг друга, но находящихся в разных каталогах. Следует найти файлы с одинаковыми именами, затем сравнить их содержимое и предложить пользователю возможность удаления файлов дубликатов. 1. Список рекомендуемой литературы 1. Вильямс А. Системное программирование в Windows 2000 для профессионалов – СПБ: Питер, 2001. – 624 с. 2. Харт Джонсон М.Системное программирование в среде Win32 , 2-е изд. : Пер. с англ.: - М. : Издательский дом «Вильямс», 2001. – 464 с. 3. Рихтер Дж. Windows для профессионалов: создание эффективных Win32-приложений с учетом специфики 64-разрядной версии Windows / Пер. с англ. – 4-е изд. –СПб: Питер; М.: Издательско-торговый дом «Русская редакция», 2003. – 752 с. 4. Мешков А., Тихомиров Ю. Visual C++ и MFC. СПб.: БХВ – Петербург, 2002. – 1040 с. (или более ранние издания этих же авторов) 5. Румянцев П.В. Азбука программирования в Win32 API. М.: Горячая линия – Телеком, 2001. – 312 с. 6. Румянцев П.В. Работа с файлами в Win32 API. М.: Горячая линия – Телеком, 2002. – 216 с. 7. Ганеев Р.М. Проектирование интерфейса пользователя средствами Win 32 API. – М.: Горячая линия – Телеком, 2001. – 336 с. 8. Гордеев А.В., Молчанов А.Ю. Системное программное обеспечение. СПб.: Питер, 2002. – 736 с. Примечание: по согласованию с преподавателем для разработки в ходе курсового проектирования могут быть взяты другие темы, имеющие отношение к операционным системам или системным программам