Автор: Пользователь скрыл имя, 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. На екран виводиться головне вікно програми.
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 Мб.
КІТ-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.
КІТ-10А.10015-01 81 01
Текст програми написано на мові низького рівня Асемблер з використанням інтегрованого середовища masm32 v 10.0.
ВИСНОВКИ
Розроблене в ході курсового проектування ПЗ працює в середовищі Windows seven із застосуванням API-функцій, які дозволяють керувати файлами.
ДЖЕРЕЛА, ВИКОРИСТАНІ В РОЗРОБЦІ
1. Рисований О.М. Системне програмування: підручник / О.М. Рисований – Х.: Слово, 2009. – 648 с.
2. Рисований О.М. Системне
програмування. Основи асемблер
3. Кравець В.О. Системне програмування. Програмування на мові асемблера: навч. посіб. / В.О.Кравець, О.М. Рисований. – Харків : НТУ “ХПІ”, 2007. – 448 с.
4. Рогожина С.І. Системне програмування та операційні системи. Частина II: навч. посіб. / С.І. Рогожина С.І., О.М. Рисований, В.М. Федорченко. – Х. : ХУПС, 2007. – 200 с.
5. Рисований О.М. Цифрові пристрої і мікропроцесори. Архітектура і програмне забезпечення: навч. посіб. / О.М. Рисований, М.В. Грушенко. – Х. : ХУПС, 2005. – 384 с.
6. Щупак Ю.А.
Win32 API. Эффективная разработка
7. Несвижский
В. Программирование
МІНІСТЕРСТВО ОСВІТИ ТА НАУКИ УКРЇНИ
Національний технічний університет
«ХАРКІВСЬКИЙ ПОЛІТЕХНІЧНИЙ ІНСТИТУТ»
Кафедра обчислювальної техніки та програмування
ЗАТВЕРДЖУЮ
Завідувач кафедри ОТП
_______________ / Домнін Ф.А. /
“____” _____________ 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\
include\masm32\include\user32.
include\masm32\include\
include\masm32\include\
includelib\masm32\lib\user32.
includelib\masm32\lib\
includelib\masm32\lib\shell32.
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+
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 ; якщо є повідомлення про знищення вікна
Информация о работе Разработка программы копирования и удаления файлов