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

Автор: Пользователь скрыл имя, 24 Декабря 2012 в 00:04, курсовая работа

Описание работы

Курсовий проект присвячений створенню програми, яка створює папку під назвою «х» та копіює всі файли по шляху C:\masm32\bin з розширенням *.asm. Вона являє собою найпростіший приклад, здатний показати, що демонстрація деяких функцій роботи з файлами є актуальною для застосування мови програмування «Асемблер».

Содержание

ВСТУП 3
1 ПІДСТАВА ДЛЯ РОЗРОБКИ 3
2 ПРИЗНАЧЕННЯ РОЗРОБКИ 3
3 ВИМОГИ ДО ПРОГРАМИ 3
3.1 Вимоги до функціональних характеристик 3
3.2 Вимоги до надійності 3
3.3 Вимоги до інформаційної та програмної сумісності 4
3.4 Вимоги до маркування та упаковки 4
3.5 Вимоги до транспортування та зберігання 4
4 ВИМОГИ ДО ПРОГРАМНОЇ ДОКУМЕНТАЦIЇ 4
5 СТАДIЇ I ЕТАПИ РОЗРОБКИ 5
6 ПОРЯДОК КОНТРОЛЮ И ПРИЙМАННЯ 5

Работа содержит 1 файл

Курсовий проект.doc

— 210.50 Кб (Скачать)

 

Робота програми здійснюється таким чином:

1. На екран  виводиться головне вікно програми.

2. Оператор в меню обирає дію.

3. Здійснюється процедура відповідно з вибіром оператора. В залежності від обраного режиму викликається відповідна процедура, що реалізує обраний режим:

– копіювання;

      • видалення;
      • закриття вікна;

 

Якщо обирається режим закінчення роботи, то здійснюється вихід із програми.

Вигляд вікна головного меню наведено на рисунку 2.1.

 

Рис. 2.1 Головне меню

 

 

 

 

2.2.1 Розробка алгоритму (за замовчуванням)

 

Алгоритм копіювання полягає в наступному:

– відкривається  вікно;

 

 

 

 

 

 

 

 

 

 

- 6 -

КІТ-10А.10015-01 81 01

 

–створюємо окрему структуру для функції копіювання;

Копіювання за замовчуванням відповідає гілка коду:

 

_SHFILEOPSTRUCT struc

     hwnd dd ?

     wFunc dd ?

     pFrom dd ?

     pTo dd ?

     fFlags dd ?

     fAnyOperationsAborted dd ?

     hNameMappings dd ?

     IpszProgressTitle dd ?

     _SHFILEOPSTRUCT ends

     File db "c:\masm32\bin\*.asm",0,0

     Dir db "c:\x",0

     shf _SHFILEOPSTRUCT <0, FO_COPY, File, Dir, FOF_FILESONLY,0,0,0>

– створюємо  ще одну структуру для функції видалення;

 

_SHFILEOPSTRUCT1 struc

     hwnd dd ?

     wFunc dd ?

     pFrom dd ?

     pTo dd ?

     fFlags dd ?

     fAnyOperationsAborted dd ?

     hNameMappings dd ?

     IpszProgressTitle dd ?

     _SHFILEOPSTRUCT1 ends

     File1 db "c:\x\*",0,0

     Dir1 db "c:\x",0

     shf1 _SHFILEOPSTRUCT1 <0, FO_DELETE, File1, Dir1, FOF_FILESONLY,0,0>

–створюємо  саму функцію для запрацювання першої структури.

invoke SHFileOperation, addr shf

 

–і відповідно другої

invoke SHFileOperation, addr shf1

 

 

 

 

 

 

- 7 -

КІТ-10А.10015-01 81 01

 

 

Фрагмент файлу ресурсів створення головного меню для вибору дій:

#define IDM_HELLO   1

#define IDM_EXIT   2

#define IDM_ABOUT  3

#define IDM_FUNK   4

#define IDM_FUNK1   5

IDI_ICON ICON DISCARDABLE MOVEABLE LOADONCALL "kursach.ico"

 

FirstMenu MENU {

POPUP "Меню"{

           MENUITEM "Копировать",IDM_FUNK

           MENUITEM "Удалить",IDM_FUNK1

           MENUITEM SEPARATOR

           MENUITEM "Выход",IDM_EXIT

        }

POPUP "Справка"{

          MENUITEM "О программе",IDM_HELLO

         MENUITEM "Об авторе",IDM_ABOUT

        }

}

 

Наведені алгоритми  реалізовані на мові низького рівня  Асемблер в інтегрованому середовищі masm32. Також були налагоджені в OllyDbg. Текст програми kursach має обсяг 4 кб. Обсяг файлу kursov.exe, отриманого в результаті компіляції, складає 2,19 Мб.

 

 

 

 

 

 

 

 

 

 

                                                            - 8 -

КІТ-10А.10015-01 81 01

 

2.2.4 Розробка  алгоритму повідомлення про програму

 

Ця процедура  створена за допомогою вікна повідомлення MessageBox. Коли натискаємо на пункт меню Cправка а у вигляді повідомлення отримуємо потрібну інформацію. Повідомлення створено за допомогою функції MessageBox, параметри якої описані у директиві визначення даних data.

Гілка програмного коду має вигляд:

.IF ax==IDM_HELLO

       invoke MessageBox,NULL,ADDR Hello_string, OFFSET AppName,MB_OK  ; створення та відображення повідомлення

       .ELSEIF ax==IDM_ABOUT

       invoke MessageBox,NULL,ADDR About_string,OFFSET AppName, MB_OK

       

При виконанні цього фрагменту виводяться спрощені вікна, яке наведено на рисунку 2.2 та 2.3 .

 

                  Рис.2.2 Спрощене вікно

 

       

         Рис.2.3 Спрощене вікно

 

2.3 Вибір складу  технічних i програмних засобів

 

Функціонування  програмного продукту забезпечується стандартною конфігурацією IBM-сумісної ПЕОМ з такими характеристиками:

– CPU-Intel 80286/287 i вище;

– накопичувач  на жорсткому магнітному диску;

– відеоадаптер EGA/VGA;

– накопичувач  на гнучких магнітних дисках.

Програмне забезпечення, що розробляється, орієнтовано на функціонування під керуванням операційної системи Windows seven.

                                                     - 9 -

КІТ-10А.10015-01 81 01

 

Текст програми написано на мові низького рівня Асемблер з використанням інтегрованого середовища masm32 v 10.0.

 

 

ВИСНОВКИ

 

Розроблене в ході курсового проектування ПЗ працює в середовищі Windows seven із застосуванням API-функцій, які дозволяють керувати файлами.

 

 

 

ДЖЕРЕЛА, ВИКОРИСТАНІ  В РОЗРОБЦІ

 

1. Рисований  О.М. Системне програмування: підручник / О.М. Рисований  – Х.: Слово, 2009. –  648 с.

2. Рисований О.М. Системне  програмування. Основи асемблера під Win32 API: навч. посіб. / О.М. Рисований. – Х.: Сучасний Друк, 2008. – 552 с.

3. Кравець В.О. Системне програмування. Програмування на мові асемблера: навч. посіб. / В.О.Кравець, О.М. Рисований. – Харків : НТУ “ХПІ”, 2007. – 448 с.

4. Рогожина С.І. Системне програмування та операційні системи. Частина II: навч. посіб. / С.І. Рогожина С.І., О.М. Рисований, В.М. Федорченко. –  Х. : ХУПС, 2007. –  200 с.

5. Рисований О.М. Цифрові пристрої і мікропроцесори. Архітектура і програмне забезпечення: навч. посіб. / О.М. Рисований, М.В. Грушенко. – Х. : ХУПС, 2005. – 384 с.

6. Щупак Ю.А. Win32 API. Эффективная разработка приложений / Ю.А. Щупак. – СПб. : Питер, 2007. – 572 с.

7. Несвижский  В. Программирование аппаратных  средств в Windows / В. Несвижский. – СПб. : БХВ-Петербург, 2004. – 880 с.

 

 

 

 

МІНІСТЕРСТВО  ОСВІТИ ТА НАУКИ УКРЇНИ

Національний  технічний університет

«ХАРКІВСЬКИЙ ПОЛІТЕХНІЧНИЙ ІНСТИТУТ»

Кафедра  обчислювальної техніки та програмування

 

ЗАТВЕРДЖУЮ

Завідувач кафедри  ОТП

_______________ / Домнін  Ф.А. /

“____” _____________ 2011  р.

 

 

 

РОЗРОБКА ПРОГРАМИ КОПІЮВАННЯ ТА ВИДАЛЕННЯ ФАЙЛІВ

 

Текст програми

 

АРКУШ ЗАТВЕРДЖЕННЯ

 

 КІТ-10А.10015-01 12 01

 

 

 

 

 

 

 

 

Розробники

 

Керівник проекту

доц. каф. ОТП

____________  к.т.н., доц. Рисований О.М.

 

Виконавець

студент групи  КІТ-10А

________________  Репринцев О.Г.

“____” _____________ 2011 р.

 

 

 

 

 

Харків 2011

 

 

     ЗАТВЕРДЖЕНО

КІТ-10А.10015-01 12 01

 

 

 

 

 

 

 

 

 

 

 

РОЗРОБКА ПРОГРАМИ КОПІЮВАННЯ ТА ВИДАЛЕННЯ ФАЙЛІВ

 

Текст програми

 

КІТ-10А.10015-01 12 01

Аркушів 8

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Харків 2011

 

- 2 -

КІТ-10А.10015-01 12 01

 

АНОТАЦІЯ

 

В даному документі  міститься текст програми kursach, яка здійснює копіювання та видалення файлів, а також реалізує функціональні можливості (повідомлення про автора, рису, повідомлення про програму, вихід з програми).

 

АННОТАЦИЯ

 

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

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

- 3 -

КІТ-10А.10015

 

ЗМІСТ

 

1 Головна програма kursach.asm  4

2 Файл ресурсів kursach.rс   7

3 Командний bat-файл   7

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

- 4 –

КІТ-10А.10015-01 12 01

 

1 Головна програма SaR

 

.686

.model flat, stdcall

option casemap:none

include\masm32\include\windows.inc

include\masm32\include\user32.inc

include\masm32\include\kernel32.inc

include\masm32\include\shell32.inc

includelib\masm32\lib\user32.lib

includelib\masm32\lib\kernel32.lib

includelib\masm32\lib\shell32.lib

 

IDM_HELLO equ 1

IDM_EXIT equ 2

IDM_ABOUT equ 3

IDM_FUNK equ 4

IDM_FUNK1 equ 5

.data

     ClassName db "SimpleWinClass",0

     AppName db "SaR",0

     MenuName db "FirstMenu",0

     Hello_string db "Эта программа создана для  копирования и",10,13

     str1 db "удаления копии файлов в  папке 'х' с форматом *.asm.",0

     About_string db "Автор: Репринцев О.Г.",10,13

     srt2 db "e-mail: Alex-cr17@mail.ru",0

     wc WNDCLASSEX <>

     msg MSG <>

     hwnd HWND ?

     hlnstance HINSTANCE ?

    

     _SHFILEOPSTRUCT struc

     hwnd dd ?

     wFunc dd ?

     pFrom dd ?

     pTo dd ?

     fFlags dd ?

     fAnyOperationsAborted dd ?

     hNameMappings dd ?

     IpszProgressTitle dd ?

     _SHFILEOPSTRUCT ends

     File db "c:\masm32\bin\*.asm",0,0

     Dir db "c:\x",0

     shf _SHFILEOPSTRUCT <0, FO_COPY, File, Dir, FOF_FILESONLY,0,0,0>

      _SHFILEOPSTRUCT1 struc

     hwnd dd ?

     wFunc dd ?

     pFrom dd ?

     pTo dd ?

- 5 –

КІТ-10А.10015-01 12 01

 

     fFlags dd ?

     fAnyOperationsAborted dd ?

     hNameMappings dd ?

     IpszProgressTitle dd ?

     _SHFILEOPSTRUCT1 ends

     File1 db "c:\x\*",0,0

     Dir1 db "c:\x",0

     shf1 _SHFILEOPSTRUCT1 <0, FO_DELETE, File1, Dir1, FOF_FILESONLY,0,0>

 

.code                                  ; директива початку сегмента  програми

     start:                        

       invoke GetModuleHandle,NULL     ; отримання  дискриптора програми

       mov hlnstance,eax               ; збереження дескриптора програми

       mov wc.cbSize,SIZEOF WNDCLASSEX    ; кільксть  байтів структури 

       mov wc.style, CS_HREDRAW or CS_VREDRAW    ; стиль та поведінка вікна

       mov wc.lpfnWndProc, OFFSET WndProc      ; адреса  процедури WndProc

       mov wc.cbClsExtra,NULL    ; кількість байтів  для структури

       mov wc.cbWndExtra,NULL    ; кількість байтів  для додаткових структур

       push hlnstance    ; перезапис через  стек

       pop wc.hInstance  ; формування поля дескрипторе

       mov wc.hbrBackground,COLOR_WINDOW+2  ; колір вікна

       mov wc.lpszMenuName,OFFSET MenuName  ; ім'я ресурсу вікна

       mov wc.lpszClassName,OFFSET ClassName ; ім'я класу

       invoke LoadIcon,NULL,IDI_APPLICATION  ; ресурс піктограми

       mov wc.hIcon,eax      ; дескриптор великої піктограми

       mov wc.hIconSm,eax ; дескриптор маленького віконця

       invoke LoadCursor,NULL,IDC_IBEAM  ; ресурс курсора

       mov wc.hCursor,eax 

       invoke RegisterClassEx,ADDR wc  ; функція реєстру класу вікна

       invoke CreateWindowEx, NULL, ADDR ClassName, ADDR AppName,WS_OVERLAPPEDWINDOW, 3, 3,200,56, NULL,0,hlnstance,0

       mov hwnd,eax   

       invoke ShowWindow, hwnd,SW_SHOW  ; видимість вікна

       .WHILE TRUE                      ; поки істинне то

       invoke GetMessage, ADDR msg,NULL,0,0  ; читання повідомлення

       or eax,eax                       ; формування ознак

       jz Quit

       invoke DispatchMessage,ADDR msg   ; відправка на обслуговування

       .ENDW

       Quit:

       mov eax,msg.wParam

       invoke ExitProcess,eax

       WndProc proc hWnd:HWND, uMsg:UINT, wParam:WPARAM,IParam:LPARAM

       .IF uMsg==WM_DESTROY            ; якщо є повідомлення про знищення вікна

Информация о работе Разработка программы копирования и удаления файлов