48990 (Системное программирование для операционных систем)

2016-07-30СтудИзба

Описание файла

Документ из архива "Системное программирование для операционных систем", который расположен в категории "". Всё это находится в предмете "информатика" из 1 семестр, которые можно найти в файловом архиве . Не смотря на прямую связь этого архива с , его также можно найти и в других разделах. Архив можно найти в разделе "курсовые/домашние работы", в предмете "информатика, программирование" в общих файлах.

Онлайн просмотр документа "48990"

Текст из документа "48990"

Федеральное агентство по образованию

Государственное образовательное учреждение высшего профессионального образования

«ПЕНЗЕНСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ»

Кафедра «Информационная безопасность систем и технологий»

УТВЕРЖДАЮ

Зав. кафедрой ИБСТ

______________ С.Л. Зефиров

ОТЧЕТ

О КУРСОВОМ ПРОЕКТЕ

«Системное программирование для операционных систем»

Руководитель КП Н.А.Егорова

Исполнитель КП П.А. Пивоваров

Нормоконтролер Т.В. Щербакова

Пенза, 2007

Реферат

Пояснительная записка содержит 39 с., 5 рис., 2 источника, 2 приложения.

Алгоритм, ДОКУМЕНТ, ПРИЛОЖЕНИЕ, ФАЙЛ, МАСТЕР, ОБЪЕКТ.

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

Требования к программе:

- программа должна иметь значок в System Tray, при закрытии ее главного окна программа должна оставаться в оперативной памяти, но соответствующая кнопка из панели задач должна быть удалена;

- при щелчке мышью на значке программы в System Tray должно вызываться всплывающее меню с командами для показа ее главного окна, и для ее закрытия (выгрузки из памяти);

- программа должна иметь возможность смены контролируемого каталога;

- программа должна иметь список имен файлов – исключений, а также средство для редактирования этого списка;

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



Содержание

Реферат

Нормативные ссылки

Введение

1 Структура основной программы

2 Программная реализация алгоритма

3 Исходный текст программы приведен в приложении Б.

3 Функциональные возможности программы

4 Руководство по использованию программы

Заключение

Список использованных источников

Приложение Б (ОБЯЗАТЕЛЬНОЕ) Листинги программы

Нормативные ссылки

В настоящем отчете использованы ссылки на следующие стандарты:

- ГОСТ 1.5 – 93 Государственная система стандартизации РФ. Общие требования к построению, изложению, оформлению и содержанию стандартов.

- ГОСТ 2.105 – 95 Единая система конструкторской документации.

- ГОСТ 2.301 – 68 ЕСКД Форматы.

- ГОСТ 7.1 – 84 Система стандартов по информации, библиотечному и издательскому делу. Библиографическое описание документа. Общие требования и правила составления.

- ГОСТ 7.32 – 2001 Система стандартов по информации, библиотечному, издательскому делу. Отчёт о научно – исследовательской работе.


Введение

В настоящее время для подавляющего числа пользователей компьютер – это не роскошь, а средство работы с информацией, объем которой с каждым годом удваивается. Интернет, видео, музыка, документы гипертекста и так далее — все это служит для представления информации в нужном нам виде, обеспечивая тем самым довольно быстрый и удобный доступ к ней. А для создания всего этого используются языки программирования различного уровня. Например, пакет Microsoft Visual Studio. NET поддерживает следующие языки программирования: Visual Basic, Visual C++, Visual С#, Visual J#. Работая с языком Visual C++, в ваших руках оказывается мощный, полезный и широко распространенный инструмент. При его помощи можно получить в распоряжение довольно сильную и удобную систему создания приложений для операционных систем семейства Windows. С его помощью созданы такие продукты, как Excel и Access. Этот язык также применяется при разработке управленческих информационных систем и систем целевого назначения, используемых для анализа деятельности предприятий и принятия решений в сфере управления бизнесом. И, конечно же, целые армии хакеров и не только хакеров используют C++ для создания инструментов, утилит, игр и шедевров мультимедиа. Знания языка C++, позволяют создавать не просто приложения, а приложения, работающие в разных операционных системах. Возможности этого языка практически не ограничены.

Для создания удобного интерфейса программы под Windows, удобней использовать объектно-ориентированный язык программирования. Именно поэтому для реализации курсового проекта используется язык Microsoft Visual C++ 6.0. Автоматизированное создание приложений включено в компилятор Microsoft Visual C++ 6.0 и называется MFC AppWizard. MFC AppWizard создает тексты приложений только с использованием библиотеки классов MFC (Microsoft Foundation Class library). Таким образом, изучив язык C++ и библиотеку MFC, можно создавать свои приложения. Поэтому, используя средства автоматизированного создания приложений, можно сократить время написания довольно сложных программ. Так, при знании всех необходимых функций библиотеки MFC и WinAPI для написания программы по заданию курсового проекта потребуется не больше пары минут. При этом вручную придётся написать лишь несколько вызовов функций, а всё остальное сделает MFC AppWizard, используя возможности ClassWizard.

Суть задачи, поставленная в данном курсовом проекте, состоит в написании программы, которая должна осуществлять поиск одинаковых документов (по имени, размеру).

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


  1. Структура основной программы

При запуске программы на экран выводится диалоговое окно, на котором заданы поля для введения необходимых данных для поиска, поле для введения пути, кнопка «Скрыть окно», поля для вывода результата поиска.

Описания функций модуля FMain:

Имя процедуры

Определение, назначение, выполняемые функции,

используемые параметры

TGlobalList::At

int __fastcall TGlobalList::At(int Index)

Это метод списка строк TGlobalList, осуществляет доступ к свойству-массиву Objects, интерпретируя его элементы как тип (int)

TNameList::At

TIntArray * __fastcall TNameList::At(int Index)

Это метод списка строк TNameList, осуществляет доступ к свойству-массиву Objects, интерпретируя его элементы как тип (TIntArray *)

TVerDirectory::TVerDirectory

TVerDirectory::TVerDirectory(TStrings * fExNames, AnsiString fPath, TDirThread * aOwner)

Это конструктор класса отчета. В качестве параметров принимает указатель на список строк-имен файлов исключений, путь к контролируемому каталогу, и указатель на родительский поток

TVerDirectory::~TVerDirectory

TVerDirectory::~TVerDirectory(void)

Это деструктор класса отчета. Выполняет действия по удалению объектов-полей класса

TVerDirectory::Clear

void __fastcall TVerDirectory::Clear(void)

Этот метод класса отчета предназначен для сброса отчета в исходное состояние – выполняется очищение всех подготовленных списков для отчета (для списка ExNames удаляются только прицепленные массивы номеров каталогов, но не сами строки)

TVerDirectory::Fill

void __fastcall TVerDirectory::Fill(void)

Главный метод класса отчета для проверки контролируемых каталогов и подготовки отчета. Если проверка была прервана в связи с изменением состава файлов (взведен DirectoryNever) - проверка начинается сначала. Если проверка была прервана в связи с завершением родительского потока - выход из функции.

TVerDirectory::WorkFile

bool __fastcall TVerDirectory::WorkFile(int PathNum,AnsiString Name)

Проверка-регистрация в отчете файла (по имени и номеру подкаталога). При изменении состава файлов(взведен DirectoryNever) или при завершении родительского потока - досрочный выход с результатом - false

TVerDirectory::WorkDir

bool __fastcall TVerDirectory::WorkDir(AnsiString Path)

Проверка-регистрация в отчете каталога (а также его содержимого, для подкаталогов - рекурсивные вызовы). При изменении состава файлов(взведен DirectoryNever) или при завершении родительского потока - досрочный выход с результатом - false

TVerDirectory::SetNameList

void __fastcall TVerDirectory::SetNameList(TStrings * DestList)

Метод класса отчета для формировки списка файлов-дубликатов в DestList

TVerDirectory::SetExNames

void __fastcall TVerDirectory::SetExNames(TStrings * DestList)

Метод класса отчета для формировки списка файлов-исключений в DestList

TVerDirectory::SetDirList

void __fastcall TVerDirectory::SetDirList(int NameNum,TStrings * DestList)

Метод класса отчета для формировки в DestList списка путей расположения файла номер NameNum (в списке одноименных файлов)

TVerDirectory::SetDirListEx

void __fastcall TVerDirectory::SetDirListEx(int NameNum,TStrings * DestList)

Метод класса отчета для формировки в DestList списка путей расположения файла номер NameNum (в списке файлов- исключений)

TVerDirectory::SetEx

bool __fastcall TVerDirectory::SetEx(int Index)

Метод класса отчета для переноса файла-дубликата из списка одноименных файлов в список файлов-исключений. Index – индекс файла-дубликата в списке одноименных файлов

TVerDirectory::ResetEx

bool __fastcall TVerDirectory::ResetEx(int Index)

Метод класса отчета для переноса имени файла из списка файлов-исключений в список одноименных файлов. Если файл с данным именем отсутствует в контролируемом каталоге, или присутствует в нем в единственном числе – пользователю в соответствующем сообщении предлагается просто удалить это имя из списка исключений. Index – индекс файла в списке файлов-исключений.

TDirThread::CheckStep

void __fastcall TDirThread::CheckStep(void)

Метод потока TDirThread для включения мигания надписи "Запущена проверка"

TDirThread::SetLists

void __fastcall TDirThread::SetLists(void)

Этот метод потока TDirThread передает подготовленный отчет главному окну программы (с открытием и активизацией главного окна)

TDirThread::Execute

void __fastcall TDirThread::Execute()

Это главная функция потока проверки файлов TDirThread. Первую проверку выполняет безусловно, последующие проверки - по взводу события NeverEvent (от потока контроля файлов TNotifyThread)

TNotifyThread::Execute

void __fastcall TNotifyThread::Execute()

Это главная функция потока автоматического контроля файлов каталогов TNotifyThread (переименование, добавление, удаление файлов) работает через механизм FindFirstChangeNotification - FindNextChangeNotification. Предусмотрен механизм завершения потока - по взводу события NeverEvent.

TFForm::TFForm

__fastcall TFForm::TFForm(TComponent* Owner)

Это конструктор формы TFForm

TFForm::NameBoxClick

void __fastcall TFForm::NameBoxClick(TObject *Sender)

Это обработчик выбора элемента списка NameBox (одноименные файлы). Обновляет содержимое списка путей расположения выбранного файла.

TFForm::ExBoxClick

void __fastcall TFForm::ExBoxClick(TObject *Sender)

Это обработчик выбора элемента списка ExBox (файлы-исключения). Обновляет содержимое списка путей расположения выбранного файла.

TFForm::CallThreads

void __fastcall TFForm::CallThreads(void)

Это метод формы для создания и запуска потоков проверки и контроля файлов каталогов

TFForm::StopThreads

void __fastcall TFForm::StopThreads(void)

Это метод формы для остановки и удаления потоков проверки и контроля файлов каталогов

TFForm::FormActivate

void __fastcall TFForm::FormActivate(TObject *Sender)

Обработчик OnActivate формы (работает только при запуске программы). Регистрирует значок в System Tray, инициализирует переменные, загружает из файла «FileNames.inf» (если он есть) путь к контролируемому каталогу и список файлов-исключений, и запускает потоки контроля и проверки.

TFForm::WMShellMess

void __fastcall TFForm::WMShellMess(TMessage &Message)

Обработчик сообщения WM_SHELLMESS от значка в System Tray - показывает всплывающее меню при щелчке мышью на значке в System Tray

TFForm::ShowMyWin

void __fastcall TFForm::ShowMyWin(TMessage &Message)

Обработчик сообщения (WM_USER+2) от второй копии приложения - для открытия и показа главного окна

TFForm::N1Click

void __fastcall TFForm::N1Click(TObject *Sender)

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

TFForm::FormClose

void __fastcall TFForm::FormClose(TObject *Sender, TCloseAction &Action)

Обработчик OnClose (при закрытии) формы. При попытке закратия главного окна пиктограммой – только скрывает окно, а при выходе из программы (AppClose=true) – перед закрытием выполняет действия по освобождению памяти и занятых ресурсов, а также сохраняет параметры (контролируемый каталог и список исключений) в файл «FileNames.inf».

TFForm::N2Click

void __fastcall TFForm::N2Click(TObject *Sender)

Обработчик пуккта всплывающего меню "Закрыть программу", взводит признак AppClose и закрывает главное окно

TFForm::Button1Click

void __fastcall TFForm::Button1Click(TObject *Sender)

Обработчик кнопки "Скрыть окно" - скрывает главное окно

TFForm::Timer1Timer

void __fastcall TFForm::Timer1Timer(TObject *Sender)

Обработчик таймера - осуществляет мигание надписи "Запущена проверка..."

TFForm::AddDirButtonClick

void __fastcall TFForm::AddDirButtonClick(TObject *Sender)

Обработчик кнопки AddDirButton - открывает окно SDForm для смены контролируемого каталога, и перезапускает потоки

TFForm::SetExButtonClick

void __fastcall TFForm::SetExButtonClick(TObject *Sender)

Обработчик кнопки SetExButton (стрелка вниз) - передает файл из списка одноименных в список исключений

TFForm::ResetExButtonClick

void __fastcall TFForm::ResetExButtonClick(TObject *Sender)

Обработчик кнопки ResetExButton (стрелка верх) - передает файл из списка исключений в список одноименных файлов или удаляет файл из списка исключений


  1. Программная реализация алгоритма

При создании программы необходимо запустить среду программирования Microsoft Visual C++ 6.0.

Для использования MFC AppWizard необходимо выполнить следующие действия: в главном меню выбирается пункт File и подпункт New. В появившемся диалоговом окне нужно перейти на вкладку Project и выбрать MFCAppWizard. Затем в поле Project name нужно указать имя проекта (в данном курсовом проекте имя Crazzyff) и нажать кнопку Ok. Далее появится диалоговое окно первого шага MFC AppWizard Step1. В нём нужно указать тип создаваемого приложения Dialog based и нажать кнопку Next. На следующем шаге MFC AppWizard Step2 флажки на пунктах About box и 3D controls.В следующем окне MFC AppWizard Step3 требуется поставить переключатель на тип проекта MFC Standard и нажать кнопку Next. На четвёртом шаге можно просмотреть создаваемые классы и нажать кнопку Finish. Далее в окне New Project Information нужно нажать кнопку Ok. После этого проект будет создан и появится окно созданного проекта. В этом окне будут присутствовать следующие элементы: кнопки Ok и Cancel и статический текст. С помощью мыши можно изменить размер окна. Также можно переместить статический текст на требуемую позицию.

Свежие статьи
Популярно сейчас
Зачем заказывать выполнение своего задания, если оно уже было выполнено много много раз? Его можно просто купить или даже скачать бесплатно на СтудИзбе. Найдите нужный учебный материал у нас!
Ответы на популярные вопросы
Да! Наши авторы собирают и выкладывают те работы, которые сдаются в Вашем учебном заведении ежегодно и уже проверены преподавателями.
Да! У нас любой человек может выложить любую учебную работу и зарабатывать на её продажах! Но каждый учебный материал публикуется только после тщательной проверки администрацией.
Вернём деньги! А если быть более точными, то автору даётся немного времени на исправление, а если не исправит или выйдет время, то вернём деньги в полном объёме!
Да! На равне с готовыми студенческими работами у нас продаются услуги. Цены на услуги видны сразу, то есть Вам нужно только указать параметры и сразу можно оплачивать.
Отзывы студентов
Ставлю 10/10
Все нравится, очень удобный сайт, помогает в учебе. Кроме этого, можно заработать самому, выставляя готовые учебные материалы на продажу здесь. Рейтинги и отзывы на преподавателей очень помогают сориентироваться в начале нового семестра. Спасибо за такую функцию. Ставлю максимальную оценку.
Лучшая платформа для успешной сдачи сессии
Познакомился со СтудИзбой благодаря своему другу, очень нравится интерфейс, количество доступных файлов, цена, в общем, все прекрасно. Даже сам продаю какие-то свои работы.
Студизба ван лав ❤
Очень офигенный сайт для студентов. Много полезных учебных материалов. Пользуюсь студизбой с октября 2021 года. Серьёзных нареканий нет. Хотелось бы, что бы ввели подписочную модель и сделали материалы дешевле 300 рублей в рамках подписки бесплатными.
Отличный сайт
Лично меня всё устраивает - и покупка, и продажа; и цены, и возможность предпросмотра куска файла, и обилие бесплатных файлов (в подборках по авторам, читай, ВУЗам и факультетам). Есть определённые баги, но всё решаемо, да и администраторы реагируют в течение суток.
Маленький отзыв о большом помощнике!
Студизба спасает в те моменты, когда сроки горят, а работ накопилось достаточно. Довольно удобный сайт с простой навигацией и огромным количеством материалов.
Студ. Изба как крупнейший сборник работ для студентов
Тут дофига бывает всего полезного. Печально, что бывают предметы по которым даже одного бесплатного решения нет, но это скорее вопрос к студентам. В остальном всё здорово.
Спасательный островок
Если уже не успеваешь разобраться или застрял на каком-то задание поможет тебе быстро и недорого решить твою проблему.
Всё и так отлично
Всё очень удобно. Особенно круто, что есть система бонусов и можно выводить остатки денег. Очень много качественных бесплатных файлов.
Отзыв о системе "Студизба"
Отличная платформа для распространения работ, востребованных студентами. Хорошо налаженная и качественная работа сайта, огромная база заданий и аудитория.
Отличный помощник
Отличный сайт с кучей полезных файлов, позволяющий найти много методичек / учебников / отзывов о вузах и преподователях.
Отлично помогает студентам в любой момент для решения трудных и незамедлительных задач
Хотелось бы больше конкретной информации о преподавателях. А так в принципе хороший сайт, всегда им пользуюсь и ни разу не было желания прекратить. Хороший сайт для помощи студентам, удобный и приятный интерфейс. Из недостатков можно выделить только отсутствия небольшого количества файлов.
Спасибо за шикарный сайт
Великолепный сайт на котором студент за не большие деньги может найти помощь с дз, проектами курсовыми, лабораторными, а также узнать отзывы на преподавателей и бесплатно скачать пособия.
Популярные преподаватели
Нашёл ошибку?
Или хочешь предложить что-то улучшить на этой странице? Напиши об этом и получи бонус!
Бонус рассчитывается индивидуально в каждом случае и может быть в виде баллов или бесплатной услуги от студизбы.
Предложить исправление
Добавляйте материалы
и зарабатывайте!
Продажи идут автоматически
5140
Авторов
на СтудИзбе
441
Средний доход
с одного платного файла
Обучение Подробнее